クラウドエンジニアブログ

Azure におけるデータガバナンス (Azure Purview 触ってみた) ~実践編~

human05

古林

みなさまこんにちは。クラウドアーキテクトの卵です。

みなさまお元気でしょうか。ちょっと前ですが、私はリモートワークになって初めて風邪を引いてしまいました (熱は出ていません&今は元気です!) 。ちょっと室内が暑いなぁと思い、薄着で寝たのがダメだったようです。
本当に久しぶりに病院に行ったのですが、その病院の受付に『熱がある場合は電話予約をお願いします』と張り紙があったのを見て、「初動って大事だなぁ… (=熱が出る前に早めに病院に行ってよかった…) 」と思いました。
みなさまも、お身体だけはお大事に!




1. はじめに (前回のおさらい)

前回のブログで、Azure Purview の概要や主要機能を紹介しました。

< Azure Purview の主要機能 (再掲) >

左右にスクロールしてご覧ください。

カテゴリ 主要機能 概要
管理 Data Map
  • メタデータのスキャン実施。
  • 100 以上の組み込み分類 (= スキャンルール) 。カスタム分類を作成することも可能。
  • Microsoft 365 の Microsoft Information Protection (MPI) の秘密度レベルをサポート
検索 Data Catalog
  • データの検索、参照。
  • ビジネス用語集とワークフローの参照。
  • Mデータソース、所有者、変換、ライフサイクル等のデータリネージの参照
分析 Data Insights
  • データ資産、スキャン、用語集、分類、秘密度レベルのラベルを分析。

今回は Azure Purview の主要機能のうちの「管理」部分である、Data Map を利用し、デモ環境にあるデータを実際にスキャンしてみました。Azure 上でデータを保有するリソースの代表格 (?) である、SQL Database と Azure Data Lake Storage Gen2 (ADLS Gen2) をスキャンしてみたので、本ブログにやり方をまとめたいと思います。
(本当はオンプレミス環境等もスキャンしてみたかったのですが、手頃な環境が無かった& 勝手にスキャンするのも憚られたため、手持ちの環境でこぢんまりとやってみました。)

<デモ環境>

Azure Purview の作成~スキャン実行までの流れは、大きく分けて以下の 3 点になります。

<Azure Purview 作成・設定順>
① Purview アカウント
② データソースの登録
③ スキャンの作成と実行

上記の他にも、権限周りの設定が多かったように見受けられました。Azure Purview は統合データ ガバナンス サービスであるため、権限もそれなりに高い権限が必要となります。
本ブログでは権限についてはあまり深く触れませんが、下記 ※前提事項※ にある URL に設定方法が載っていますので、参考にしてみてください。

※前提事項※



2. Purview アカウントの作成準備

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備 ★←イマココ
  3. Purview アカウントの作成
  4. データソースの登録 (SQL Database)
  5. データソースの登録 (ADLS Gen2)
  6. スキャンの作成と実行 (SQL Database)
  7. スキャンの作成と実行 (ADLS Gen2)
  8. おわりに

さて、早速 Purview アカウントを作成しましょう!・・・と言いたいところですが、その前に Purview アカウントを作成するサブスクリプションの設定を確認する必要があります。サブスクリプションで利用できるプロバイダー (= Azure リソース) に、Azure Purview が含まれているかどうかを確認します。

※私が Azure Purview アカウントを作成した時点では、サブスクリプションで利用できるプロバイダー (= Azure リソース) に、Azure Purview が含まれていませんでした。
  (まだプレビュー機能だからかもしれませんが・・・)

1) Azure ポータルより、「サブスクリプション」をクリックします。

2) Azure Purview を実行するサブスクリプションをクリックします。
※サブスクリプションの管理はアクセス許可が必要となります。
※黒塗りで隠れていますが、サブスクリプション名にリンクが張られています。

3) 「リソースプロバイダー」をクリックします。

4)「リソースプロバイダー」をクリックすると、選択したサブスクリプションで利用できるプロバイダー (= Azure リソース) が表示されます。ここで、以下 3 つのリソース プロバイダーをすべて検索して登録する必要があります。

<必要なリソース プロバイダー>
  • Microsoft.Purview
  • Microsoft.Storage
  • Microsoft.EventHub

検索して「Registered」と表示されていたら、登録されているのでそのままで OK です。
「NotRegistered」と表示されていたら、登録が必要となります。

<登録されている場合>
<登録が必要な場合>

5) 登録したいプロバイダーをクリックすると、上部にある「登録」が有効になります。の状態で「登録」をクリックします。これで必要なリソース プロバイダーが登録されます。
※下図は「登録」をクリックした後の画面です。

6) ~オプション~
5) で「登録」をクリックしても、「更新」をクリックすると「NotRegistered」に戻ってしまう場合があります。どうやら Azure ポータル上では、すぐに結果が反映されない場合があるようです。その場合、PowerShell で確認してみると良いです。

【参考:Azure リソース プロバイダーと種類 # Azure PowerShell】
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/management/resource-providers-and-types#azure-powershell

上記コマンドを実行し、結果が「Registered」と表示されていたら、登録されています。 もし「Registered」となっていなかった場合、権限やポリシーを疑ってみるのがいいかもしれません。

<実行コマンド>
<実行結果>

ここまでがサブスクリプションの設定を確認・設定できていなかった場合の再設定方法となります。これで Azure Purview アカウントを作成する準備ができました。



3. Purview アカウントの作成

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備
  3. Purview アカウントの作成 ★←イマココ
  4. データソースの登録 (SQL Database)
  5. データソースの登録 (ADLS Gen2)
  6. スキャンの作成と実行 (SQL Database)
  7. スキャンの作成と実行 (ADLS Gen2)
  8. おわりに

Purview アカウントとは、Azure Purview の基となるリソースです。
Purview アカウントから「Purview Studio」という管理用ポータル画面を開き、データソースの管理を行います。

1) Azure ポータルより「すべてのサービス」をクリックし、「Purview アカウント」で検索後、「Purview アカウント」をクリックします。

2) 「追加」をクリックします。

3) 以下を入力して「次へ:ネットワーク」をクリックします。

<Purview アカウントの作成 基本タブ 入力値>

左右にスクロールしてご覧ください。

基本タブ 入力値
サブスクリプション Azure Purview を作成するサブスクリプションを選択。
リソースグループ Azure Purview を作成するリソースグループを選択。
Purview アカウント名 Purview アカウントを特定する名前。他の Purview アカウント名と重複しないようにすること。
※Purview アカウント名は 3 ~ 63 の文字数が必要。
※名前に使用できるのは、文字、数字、ハイフン (-) だけ。
※名前の最初と最後の文字は、文字か数字にすること。
場所 Azure Purview を使うリージョンを選択。
※検証時には、まだ日本リージョンがありませんでした。

検証時に選択可能であったリージョンは以下でした。

4) ネットワーク接続の設定を実施後、「次へ:構成」をクリックします。今回はデフォルトのままにします。

「プライベート エンドポイント」を選択すると、既存のプライベート エンドポイントを選択、または、新規作成できます。プライベート エンドポイントに対応しているので、セキュリティ的にも安心ですね。
(今回は検証なので使ってませんが・・・)

5) 以下を選択して「次へ:タグ」をクリックします。ここもデフォルトの構成にします。
「カタログ」と「データ分析情報」はグレーアウトになっており、操作できませんでした (プレビュー機能だからかもしれませんが・・・)

この「構成」の内容でAzure Purview の料金が変わるようです。
(2021 年 5 月 31 日まで 4 容量ユニットが無料となっていたので、早速検証しなければ!と思ったのは内緒。)
【参考:Azure Purview プレビュー の価格】
https://azure.microsoft.com/ja-jp/pricing/details/azure-purview/

6) 必要であればタグをつけて「次へ:確認および作成」をクリックします。
~余談~
タグはできるだけルールを決めて付与しておいた方が、請求時等に可視化しやすいのでお勧めします。

7) 画面上部に「検証に成功しました」と表示されていたら、「作成」をクリックします。
これで Purview アカウントが作成されます。

8) 以下のような画面が出ると、Azure Purview アカウント作成完了です。




4. データソースの登録 (SQL Database)

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備
  3. Purview アカウントの作成
  4. データソースの登録 (SQL Database) ★←イマココ
  5. データソースの登録 (ADLS Gen2)
  6. スキャンの作成と実行 (SQL Database)
  7. スキャンの作成と実行 (ADLS Gen2)
  8. おわりに

Azure Purview アカウントを作成したので、スキャンを行いたいデータソースを登録していきましょう。
※前述の ※前提事項※ に記載の内容を実施後、この後の操作を行っております。

なお、今回、SQL Database 側で準備したデータは、SQL Database 作成時に選択したサンプル DB (AdventureWorksLT) です。

1) Azure ポータルより Purview アカウントを選択し、「Purview Studio を開く」をクリックします。別タブで Purview Studio が開きます。

2) Purview Studio の左にある「Sources」をクリックするか、画面中ほどの「Register Sources」をクリックします。
※下図は左のバーを広げた状態です。デフォルトでは、左のバーは隠れています。

3) 「Register」をクリックします。

4) 登録したいデータソースの種類を選択します。ここでは、SQL Database を登録してみます。Azure SQL Database を選択し、「Continue」をクリックします。

5) 以下を入力・選択し、「Register」をクリックします。

<Register sources (Azure SQL Database) 入力値>

左右にスクロールしてご覧ください。

Register sources 入力値
Name データソースの名前を入力。
Azure Subscription 登録したいデータソースのあるサブスクリプションを選択。
Server Name SQL Database のサーバー名を選択。
Endpoint SQL Database のサーバー名 (フルネーム) 。
Server Name を選択すると自動で入力される。
Select a Collection Azure Purview のコレクションを選択。
※Azure Purview では「コレクション」というまとまりごとにデータソースを管理できます。

6) これでデータソースとして SQL Database が登録されました。




5. データソースの登録 (ADLS Gen2)

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備
  3. Purview アカウントの作成
  4. データソースの登録 (SQL Database)
  5. データソースの登録 (ADLS Gen2) ★←イマココ
  6. スキャンの作成と実行 (SQL Database)
  7. スキャンの作成と実行 (ADLS Gen2)
  8. おわりに

SQL Database の登録と同じように、Azure Data Lake Storage Gen2 (ADLS Gen2) の登録も実施してみましょう。
※前述の ※前提事項※ に記載の内容を実施後、この後の操作を行っております。

今回、ADLS Gen2 側で準備したデータは、サンプルの CSV と Office ドキュメントです。

1) SQL Database の登録の流れと同じく、Purview Studio で左にある「Sources」をクリックするか、画面中ほどの「Register Sources」をクリック → 「Register」をクリック後、Azure Data Lake Storage Gen2 を選択し、「Continue」をクリックします。

2) 以下を入力・選択し、「Register」をクリックします。

<Register sources (Azure Data Lake Storage Gen2) 入力値>

左右にスクロールしてご覧ください。

Register sources 入力値
Name データソースの名前を入力。
Azure Subscription 登録したいデータソースのあるサブスクリプションを選択。
Storage Account Name ADLS Gen2 のストレージ名を選択。
Endpoint ADLS Gen2 のURL。
Server Name を選択すると自動で入力される。
Select a Collection Azure Purview のコレクションを選択。
※Azure Purview では「コレクション」というまとまりごとにデータソースを管理できます。

3) これでデータソースとして ADLS Gen2 が登録されました。

4) ~オプション~
画面上部の「Table View」をクリックすると、一覧形式で表示されます。
(デフォルトでは「Map View」となっているようです)




6. スキャンの作成と実行 (SQL Database)

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備
  3. Purview アカウントの作成
  4. データソースの登録 (SQL Database)
  5. データソースの登録 (ADLS Gen2)
  6. スキャンの作成と実行 (SQL Database) ★←イマココ
  7. スキャンの作成と実行 (ADLS Gen2)
  8. おわりに

スキャンの準備は整ったので、いよいよスキャン実施です。ここでは、先ほど「4. データソースの登録 (SQL Database)」で作成したデータソースに対してスキャンを実行します。

1) Purview Studio の左にある「Sources」をクリックします。
Map View の場合、スキャンしたいデータソースの「View Detail」をクリックします。
Table View の場合、データソース名のリンクをクリックしてください。
※下図は Map View の場合です。

※鉛筆マークの隣の「New Scan」のマークをクリックしても OK です。
その場合、3) の画面に遷移します。

2) 「New scan」をクリックします。

3) 以下の情報を入力・選択し、「Test Connection」をクリックします。
「Connection successful」と表示されたら、「Continue」をクリックします。
※もし「Test Connection」に失敗した場合、認証周りを見直してみるのが良いです。

<Scan (Azure SQL Database) 入力値>

左右にスクロールしてご覧ください。

Scan 入力値
Name スキャンの名前を入力。
Connect via integration runtime 統合ランタイムを選択。
※今回 Azure 上のデータソースをスキャンするので、デフォルトの Azure AutoResolveIntegrationRuntime を選択。
Server endpoint SQL Database のサーバー名 (フルネーム) 。
自動で入力される。
Database selection method スキャン対象の SQL Database を選択。
サブスクリプションから or 手動入力を選択可能。
Database name スキャン対象のデータベースを選択。
Credential ソース認証用の資格情報を選択。
※今回 Purview マネージド ID を使うので「Purview MSI」を選択。

4) 3) で選択したデータベースのテーブルの一覧が出てくるので、対象のテーブルを選択し「Continue」をクリックします。

5) スキャンルールを設定し、「Continue」をクリックします。
※今回はデフォルトルールのみでスキャンします。
※スキャンルールを追加、もしくは、独自で設定したい場合は、画面上部の「New Scan rule set」をクリックしてください。

6) スキャンのトリガールールを設定し、「Continue」をクリックします。
今回は即座にスキャンを開始したいため、「Once (一回限り) 」で実行します。

「Recuring」を選択すると、いろいろとスケジュール実行ができるようです。
スキャン開始日時、スキャン実行日時等の日時を指定する際は UTC での指定になるため、日本時間に合わせる場合は 9 時間プラスすることをお忘れなく。

7) 内容を確認し、「Save and Run」をクリックします。
6) で「Once (一回限り) 」を選択したので、「Save and Run」をクリック後すぐにスキャンが実行されます。

<スキャン開始直後>

<スキャン中>
最新のステータスを確認したい場合は、画面上部にある「Refresh」をクリックしてください。

<スキャン完了>
スキャンが問題無く完了すると、ステータスが以下のような表示になります。
※サンプル DB の内容で 5 分程度かかりました。本番システム等にスキャンする場合は、稼働の少ない夜間に実施するのが良いかもしれません。

スキャン結果は Purview Studio の左にある「Insights」→「Scans」をクリックしても確認できます。

8) スキャンが完了したので、スキャン内容を確認してみましょう。
Purview Studio の左にある「Home」→「Browse assets」をクリックします。

9) 「Browse assets」では、スキャンを実行したリソースが表示されます。

10) 「Azure SQL Database」をクリックすると、下図のようにスキャンしたデータベース、スキーマ、テーブルが表示されます。

11) スキャンしたテーブルの詳細を確認することもできます。10) でテーブル名のリンクをクリックすると、下図のような画面が表示されます。
「Overview」では、テーブルの概要が確認できます。

「Schema」では、テーブルの詳細が確認できます。

「Lineage」にはまだ何もありません。「Lineage」では、データの履歴 (各データがどこから派生して、どのように加工されているのか、等) を一覧化できます。ここには Azure Data Factory から連携された際に表示されます。

「Contacts」は、データの専門家とデータの所有者を表示します。最初は何も入っていません。後述する「Edit」で追記する内容となります。

「Related」は、データの紐づきを表示します。

12) 画面上部の「Edit」をクリックすると、スキャン情報の追記・修正等ができます。
※追記・修正できる内容は「Overview」「Schema」「Contacts」のみです。

「Overview」では、テーブル全体に関わる情報を編集できます。
※編集後、下にある「Save」ボタンをクリックするのをお忘れなく!

「Schema」では、テーブル列に関する情報を編集できます。
※編集後、下にある「Save」ボタンをクリックするのをお忘れなく!

「Contacts」では、Experts (専門家) とOwners (所有者) の編集ができます。

<Experts (専門家) とOwners (所有者) について>
Experts:専門家は、多くの場合、さまざまな事業分野または部門のビジネスプロセスまたは対象分野の専門家です。
Owners:所有者は多くの場合、特定のデータ領域に対するガバナンスまたはビジネスプロセスを定義する上級管理職またはビジネス領域の所有者です。

※編集後、下にある「Save」ボタンをクリックするのをお忘れなく!




7. スキャンの作成と実行 (ADLS Gen2)

<目次>
  1. はじめに (前回のおさらい)
  2. Purview アカウントの作成準備
  3. Purview アカウントの作成
  4. データソースの登録 (SQL Database)
  5. データソースの登録 (ADLS Gen2)
  6. スキャンの作成と実行 (SQL Database)
  7. スキャンの作成と実行 (ADLS Gen2) ★←イマココ
  8. おわりに

SQL Database に続いて、Azure Data Lake Storage Gen2 にもスキャンを実施してみましょう。「5. データソースの登録 (ADLS Gen2) 」で作成したデータソースに対してスキャンを実行します。
基本的な流れは、前述した「スキャンの作成と実行 (SQL Database) 」と同様です。

1) 「5. データソースの登録 (ADLS Gen2) 」で作成したデータソースを選択し、「New scan」をクリック後、以下の情報を入力・選択し、「Test Connection」をクリックします。
「Connection successful」と表示されたら、「Continue」をクリックします。
※もし「Test Connection」に失敗した場合、認証周りを見直してみるのが良いです。

<Scan (ADLS Gen2) 入力値>

左右にスクロールしてご覧ください。

Scan 入力値
Name スキャンの名前を入力。
Connect via integration runtime 統合ランタイムを選択。
※今回 Azure 上のデータソースをスキャンするので、デフォルトの Azure AutoResolveIntegrationRuntime を選択
Credential ソース認証用の資格情報を選択。
※今回はアカウントキーを作成しています。

2) 1) で選択したストレージアカウントの階層構造が出てくるので、対象を選択し「Continue」をクリックします。

3) スキャンルールを設定し、「Continue」をクリックします。
※今回はデフォルトルールのみでスキャンします。
※スキャンルールを追加、もしくは、独自で設定したい場合は、画面上部の「New Scan rule set」をクリックしてください。

4) スキャンのトリガールールを設定し、「Continue」をクリックします。
今回は即座にスキャンを開始したいため、「Once (一回限り) 」で実行します。
※スケジュール実行したい場合は「Recuring」を選択してください。

5) 内容を確認し、「Save and Run」をクリックします。
4) で「Once (一回限り)」を選択したので、「Save and Run」をクリック後すぐにスキャンが実行されます。

スキャンが問題無く完了すると、ステータスが以下のような表示になります。
※ADLS Gen2 内の 5 ファイルに対し、4 ~ 5 分程度かかりました。データベースと同じく、本番運用ではアクセスの少ない時間帯に実施した方が良いかもしれません。

6) スキャンが完了したので、スキャン内容を確認してみましょう。
Purview Studio の左にある「Home」→「Browse assets」をクリックします。スキャンした ADLS Gen2 が追加されています。
データベースと同様、リソースをクリックして詳細を閲覧・編集することができます。

ここで「あれ?」と思われた方もいるかと思いますが、上図の通り、ADLS Gen2 をスキャンすると「Azure Data Lake Storage Gen2」と「Azure Storage Account」の両方のリソースが表示されます。それぞれ詳細を確認すると、今回スキャンしたストレージ (ADLS Gen2) が両方のリソースに登録されています。

これは私見ですが、Azure Purview 内でリソースのタグ付けをしており、リソースのタグごとに表示しているのかと思われます。元々、ADLS Gen2 もストレージアカウントの一種なので、ストレージ全体と ADLS Gen2 とで分類しているのは不思議ではないです。
(とは言え、最初はビックリしましたが。。。)

<ベン図で書くとこんな感じ>



8. おわりに

今回は Azure Purview を作成し、スキャンするまでの流れをご紹介しました。
前準備や権限の設定は必要となりますが、Azure Purview の作成 → スキャンまでの操作は簡単だということがお分かりいただけたかと思います。

今回は Azure SQL Database Azure Data Lake Storage Gen2 を指定してスキャンしましたが、例えば「このリソースグループ内の Azure リソースを全て一括で登録したい」というようなことも実現可能です。
実際に業務で利用することを考えると、既に Azure のヘビーユーザーであるお客様の環境に対して、1 つ 1 つ手で登録するのはちょっと現実的では無いため、一括登録できる機能も備わっている点は個人的にかなりポイントが高いです。

【参考:Azure Purview で複数のソースを登録してスキャンする】
https://docs.microsoft.com/ja-jp/azure/purview/register-scan-azure-multiple-sources

「概念や操作方法は何となく分かったけど、ビジネスのどういう課題に対して有効なの?」と思われる方もいらっしゃるかもしれません。この問いに関しては、Microsoft の Docs に答え (の一端) が記載されています。

【参考:主要なシナリオを特定する】
https://docs.microsoft.com/ja-jp/azure/purview/deployment-best-practices#identify-key-scenarios

昨今ですと、上記シナリオの中でも「わかりやすいユーザー エクスペリエンスでデータ資産を管理する」についてお客様から問い合わせが多かったです。「社内のデータを一元管理したい」というご相談より、お客様がデータガバナンスについて関心を持たれているのを感じます。

データガバナンスという観点はこれからどんどん求められてくると (個人的には) 思っていますので、正式リリースが待ち遠しいです!

最後までお読みいただき、ありがとうございました!

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録