Azure Purview : スキャンした資産の検索

今回は以下 4 つのチュートリアルにある内容を見ていきます。

- [チュートリアルの資産を検索する](https://docs.microsoft.com/ja-jp/azure/purview/tutorial-asset-search)
- [資産の参照とデータ系列の表示](https://docs.microsoft.com/ja-jp/azure/purview/tutorial-browse-and-view-lineage)
- [リソース セット、詳細、スキーマ、分類](https://docs.microsoft.com/ja-jp/azure/purview/tutorial-schemas-and-classifications)
- [用語集の用語を作成してインポートする](https://docs.microsoft.com/ja-jp/azure/purview/tutorial-import-create-glossary-terms)

# 資産の検索

検索は [Azure Purview Studio](https://web.purview.azure.com/) のホーム画面で行えます。では早速検索してみましょう、

1\. 検索バーに「contoso」と入力。履歴やサジェスチョンが表示される。また登録済ソースの数や、スキャンされた資産の数も表示されていることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/c777c386-8ed7-a40d-c2e4-f39b3d406e9b.png)

2\. 検索を実行すると結果の一覧と、資産の種類や分類が表示される。分類はルールに基づき、スキャン実行時に自動的に付与される。ここでは Azure Blob Storage でフィルターを実行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/626dd6a6-3428-7b7f-45d1-d0798b0c6d35.png)

3\. 検索結果より「Contoso_Liability_{N}.ssv」を開く。階層構造の情報やパスなどが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/2c35571e-6d3a-bf0d-864e-44c33fa03ad4.png)

4\. Lineage タブをクリック。Data Factory のアクティビティで Azure Data Lake Gen2 にコピーされていることが分かる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/7327a6f8-8fa5-2157-d113-b7fe081b2579.png)

5\.「TestCopyPipeline」をクリック。ここからこの資産に移動することも、Data Factory を開くことも可能。「Open in Azure Data Factory」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/35e48c97-da37-fb8a-0b0f-a40fa4f94a12.png)

6\. Data Factory Studio が開き、該当のパイプラインが表示されることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/a0d581bf-9e44-1e61-d562-24a7426a276c.png)

7\. Azure Purview Studio に戻り、「Switch to asset」をクリックし、TestCopyPipeline 資産に移動。このパイプラインに関連する系列が表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/bda1164a-9d04-caa8-ff26-298ecbe8d05d.png)

スキャンされた資産はそれ自体の情報も付与されますが、系列 (Lineage) や分類などの情報も自動で生成されます。

# 連絡先の付与

自動で付与されない情報は手動で付与できます。ここでは連絡先を登録してみます。

1\.「Contacts」タブをクリック。連絡先がないことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/9a6ebe52-aa4a-4a54-0f02-f7f89628fea5.png)

2\.「Edit」をクリックして、Experts や Owners にユーザーを追加。ユーザー情報は Azure AD から取得される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/7286f6c1-1051-e07a-70d9-7ee834644286.png)

3\.「Save」をクリック。元の画面で情報が更新されていることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/8681baf5-8ec4-ef70-373d-9df33e5efbe8.png)

連絡先を資産に登録することで、アクセス権設定の依頼やデータの中身の確認も容易になりそうです。

# リソース セット

次に先ほどの資産で **N** と表示されていた点について見ていきます。
Synapse などで大規模データの処理を行う場合、通常 1 つのテーブルの情報は複数のファイルに分割して保存されます。しかしデータカタログの観点からは、これは 1 つの資産であるため、Azure Purview はこのようなデータを [リソースセット](https://docs.microsoft.com/ja-jp/azure/purview/concept-resource-sets) として管理します。

実際にその様子を確認していきます。また今回はキーワードで検索するのではなく、資産の一覧から情報を取得してみます。

1\. ホーム画面より「Browse assets」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/e6469e34-6c39-8cc3-7a21-c6279c81ff21.png)

2\. 一覧より「Azure Blob Storage」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ec470218-feef-d2f0-e1d1-b257f1499607.png)

3\. スクリプトで作成された blob を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ce8c400a-3a23-5bd1-ca0b-8186f53ef1b6.png)

4\. 階層を展開して情報を確認。実際の blob の階層とは異なり、starter1 直下にファイルが表示されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/41bf596e-bbc0-0ef4-44a9-85c8a79361f9.png)

5\.「Contoso_AccountsReceivable_{N}.ssv」をクリックして開き、qualifiedName を確認。日付のパターンで同一スキーマファイルを認識していることが分かる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/5f3398e2-bae4-6d1e-ab8e-a5df5e75c7ac.png)

ここでファイル名に使われている **N** については、[リソースセットパターン](https://docs.microsoft.com/ja-jp/azure/purview/concept-resource-sets#built-in-resource-set-patterns) と言い、Azure Purview がスキャン時に自動で複数のファイルを同じ資産として認識する機能で使われます。

## リソースセットの仕組みや制限

公式ドキュメントに、詳細があります。
[Azure Purview がリソース セットを検出する方法](https://docs.microsoft.com/ja-jp/azure/purview/concept-resource-sets#how-azure-purview-detects-resource-sets)

現在のところ、Azure BLOB、ADLS Gen1、ADLS Gen2 のファイルで、Parquet や JSON、CSV などが対象になるようです。

# スキーマ

スキーマを認識できるファイルの場合、スキーマ情報および、列に対する分類が付与されます。以下の例では email 列が「Email Address」に分類されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ea7622ec-1227-92cd-4945-e2b04262820c.png)

またスキーマに誤りがある場合、「Edit」から情報を修正することが可能です。

1\.「Edit」をクリックして編集画面を表示。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/074bb85d-5024-0cb7-1480-c745b52c0e95.png)

2\.「ZipCode」列の分類で、「U.S. Zip Codes」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/31ffffd4-728c-4888-933e-f9525a314892.png)

3\.「Save」をクリックして情報が反映されたことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/2ac84b5e-6c98-2d99-b8d3-787655e8d57d.png)

尚、上記画面にも表示されているとおり、手動でスキーマを編集した場合、今後のスキャンによって自動的に更新されなくなります。

# 用語

自動で付与される分類の他に、Azure Purview では用語を登録して利用することができます。用語は資産に紐づけることができ、分類や管理に役立ちます。

## 用語の作成と資産への追加

1\. メニューより「Glossary」をクリック。用語がまだ登録されていない事を確認。New term」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/2fb31dfc-6cb8-5a16-6593-e6dc401ec79d.png)

2\. テンプレートは System default しかないため、そのまま「Continue」をクリック。名前と説明に任意の値をいれて「Create」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/82e2a186-73fc-a043-7387-33abf5707a5e.png)

3\. 用語一覧で表示されることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/1067a0ee-5087-cbfd-dc34-a92a722767c6.png)

4\. 画面上部の検索バーより「cash flow」で検索を行い、表示された結果から任意のレコードを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/3a5d730b-b3d2-cf53-cc66-d4bb3cd279c2.png)

5\.「Edit」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/0c89c2c0-3e0c-4780-f543-1cb6d46317d7.png)

6\. Glossary より作成した Financial を選択。「Save」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/875d1b40-310f-93ae-19cc-af0a07405272.png)

7\. もう一度「cash flow」で検索。Glossary に結果が表示され、フィルターできることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/fa7b7966-3f52-df52-948e-12f9383a6722.png)

## 用語の一括インポート

用語は CSV から一括でインポートすることもできます。またここではカスタムのテンプレートを作成して使用します。

1\. スターターキットにある「StarterKitTerms.csv」を Excel で開き、Expert や Stewards 欄にある値を削除。

2\. Glossary より「Import terms」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/e125c58f-68ba-8346-d252-8ec80811804a.png)

3\.「System default」テンプレートが選択された状態で「Continue」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/43e24556-5b64-8919-8e08-95cb9ca3d04d.png)

4\. 編集した StarterKitTerms.csv」をアップロード。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/239b7882-faa7-7652-d865-9bb2ba657a1c.png)

5\. 用語がインポートされたことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/4c2be369-78ba-be59-156e-94c2a1592638.png)

チュートリアルにはテンプレートのカスタマイズも紹介されているので、興味があればそちらも試してみてください。

# データの検索との違い

個人的に大きな勘違いをしていたのは、Purview はデータソースの情報を検索できるのであり、データそのものを検索できるわけではないという点です。

例えば顧客テーブルに具体的な顧客名が入っているとしても、その顧客名で検索が行えるわけではありません。あくまでデータソース（資産）のメタデータや、データを解析して分類した結果が検索できます。

より資産を発見しやすくするためには、付加情報を手動でうまくつけていく必要もあると思うので、情報の中身や組織の性質なども含めて運用は検討していく必要があります。

次回は Power BI をソースとして追加していきます

[次の記事へ](https://qiita.com/kenakamu/items/a2ca89831642591b0cac)
[前の記事へ](https://qiita.com/kenakamu/items/ed4ea30d40be1f5ae53b)