Azure Purview でオープンデータ管理～ ADLS Gen2 データの登録とスキャン、検索編～

# はじめに

2020 年末に Azure Purview が発表され、一部地域でプレビュー提供開始されました。Azure Purview はデータガバナンスサービスであり、クラウド上で増え続けるデータを効率的に管理したいというユーザーの課題解決に役立つサービスといえます。

個人的に非常に注目しているサービスなのですが、サービスの特性からいって実際にデータを取り扱ってみないとその魅力が伝わりづらいのではないかという気がしています。そこで、本記事ではオープンデータである ODPT のバス情報を題材として Azure Purview を使い、どのような管理ができるのかを見ていきたいと思います。

## ODPT:公共交通オープンデータセンター

ODPT(公共交通オープンデータセンター)とは、公共交通オープンデータ協議会に参画する交通事業者のデータを、一般の開発者や ICT ベンダー等にワンストップで提供する機関です。

参考: [公共交通オープンデータセンター](https://www.odpt.org/)

組織名にある通り、扱うデータは電車やバスといった公共交通機関に関するものです。先日話題になった Google マップへの電車の位置情報表示でも、ODPT のデータが使われています。

利用の手続きは簡単で、開発者サイトへユーザー登録した後にユーザーごとに払い出されるアクセストークンを使用することでデータを取得することができます。

## 利用データの選定と ADLS Gen2 への配置

ODPT にあるデータの中から、今回はバスに関する情報を使用します。国内の主要なバス会社からデータが提供されていますが、今回はサンプルとして東急バス/京王バス/小田急バスのデータをピックアップしてみます。

各社はバスの経路情報や時刻表を JSON 形式で管理しているため、ODPT のカタログサイトでそれらを取得した後に、 Azure Purview のデータソースとする ADLS Gen2 にアップロードしておきます。

参考: [ODPT カタログサイト](https://ckan.odpt.org/dataset)

Azure Purview のデータソースとしては Azure Synapse Analytics や Power BI、オンプレの SQL Server など様々なものが選べますが、今回はデータレイクとして ADLS Gen2 に格納し、今後その他のサービスと連携させていくシナリオとします。

## データソースの作成

ここからいよいよ、Azure Purview を使っていきます。まずは、データソースを作成します。以降の作業は、基本的に Purview Studio から行います。

「Sources」ハブで「Register」-「Azure Data lake Storage Gen2」を選択。
![20210210_purview_gen2_01_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/317735bc-bf0a-2d15-606d-4e0c97deaf99.jpeg)

バスデータを格納した ADLS Gen2 の情報を選択し、登録。
![20210210_purview_gen2_02_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/c7d0886e-c328-70b4-6adc-9365985b31f6.jpeg)

画面上でも登録されたことが確認できます。
![20210210_purview_gen2_03_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/b0218cbf-5c5e-00c6-9c5d-7f3e2f9c5ad6.jpeg)

## スキャン

先ほどの画面で「Start scan」をクリックし、スキャンを実行します。
![20210210_purview_gen2_04_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/ba8f3e6f-8a2c-0fa9-92d7-9a98da20b6ba.jpeg)

本稿では説明は割愛しますが、Gen2 に対するマネージドサービス ID は事前に作成済とします。
![20210210_purview_gen2_05_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/a1ca5fdf-afa7-ab1c-8c4a-1d9aba951156.jpeg)

アップロードした 3 社のデータ計 11 ファイルを対象とします。
![20210210_purview_gen2_06_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/45ebcbe9-3ec5-2d31-168e-3e4e565330a8.jpeg)

デフォルトの Scan ルールを使います。
![20210210_purview_gen2_07_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/9fc88258-e590-4c60-5f13-0e2a74ea3479.jpeg)

今回は「Once」を選択して、1 回だけスキャンします。
![20210210_purview_gen2_08_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/35d03eac-7f4e-03b0-2e5e-7ccd61106350.jpeg)

設定は以上です。いよいよ、スキャン実行です。
![20210210_purview_gen2_09_source.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/5c96253b-1643-9fb3-06ff-f7fa947e8efc.jpeg)

## スキャン結果の確認

「Sources」ハブから「Map view」で表示を切り替え、「view details」をクリックすると、スキャンの状況が確認できます。
![20210210_purview_gen2_10_result.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/776266e9-270e-3a93-b777-671a841018e1.jpeg)

しばらく待つと status が「Completed」になり、assets が登録されたことがわかります。
![20210210_purview_gen2_11_scan.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/1abfcfbd-4689-8a13-ac30-72311018cea0.jpeg)

## 検索

スキャンした資産を検索してみます。画面上部の検索ボックスで試しに「keio」と入力すると、京王バスの 4 つのファイルが suggestion されます。
![20210210_purview_gen2_12_scan.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/b830a583-8e6e-7d89-7975-d88df73a92b2.jpeg)

そのまま検索すると、4 つの JSON ファイルが結果として表示されます。Asset type として ADLS Gen2 もあることがわかります。
![20210210_purview_gen2_13_scan.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/e35e9b91-dbf0-5ca9-f366-42efa7c0ad51.jpeg)

検索結果からファイルをクリックすると、詳細が表示されます。shceme タブでは JSON ファイルからスキーマ定義が読み取られていることがわかります。
![20210210_purview_gen2_14_scankeio.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/5ade5ee7-3e53-9b00-1abb-8675a7fb3bd1.jpeg)

次に東急バスの検索結果です。京王バスと同様の結果が出力されますが、こちらでは Classification も出てきます。この辺りの違いは、次回以降の記事で詳しく見ていきたいと思います。![20210210_purview_gen2_15_scantokyu.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/d1d6b965-997e-d615-2e74-f0c9f2c33783.jpeg)

shceme タブの情報は京王バスのものと全く同じです。画面ショットは割愛しますが小田急バスも同様でしたので、各社が業界標準のフォーマットに則りデータを作成していることがわかります。
![20210210_purview_gen2_16_scantokyu.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/7d76179c-3110-9464-9d45-44c243703418.jpeg)

## まとめ

今回は ODPT のオープンデータを通して Azure Purview への登録とスキャン、検索を実施してみました。Purview にはこの他にも Classification や Lineage など豊富な管理機能が用意されていますので、今回使用したバス会社のデータを元にユースケースを広げ、記事として投稿し続けていきたいと思います。