NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Microsoft Purview Lineage 機能を使ってETL プロセスをトレースする

この記事は「NEXTSCAPE Advent Calendar 2022」の2日目です。

qiita.com

 

こんにちは、クライアントビジネス推進部の島田です。

まずは、、サッカー日本代表W杯決勝トーナメント進出、おめでとうございます!!今日は既に応援でほとんどの体力を使ってしまいました。このままサッカーについて語りたいような気もしていますが、今日はちょっとだけ別の話をしたいと思います。

 

今年はAzure Synapse Analytics (以下、Synapase Analytics) というMicrosoft のデータ分析用のプラットフォームを用いてデータと戯れることの多かった1年でした。

learn.microsoft.com

Synapase Analytics にはSynapse Pipeline というETLツールがあるのですが、ETLツールの保守をしていると処理が複雑になってきて「このデータソースどうやって作ったんだっけ?」がすぐに出てこないことが多くなってしまいました。そんなときに試してみたMicrosoft Purview (以下、Purview ) のLineage機能が便利だったので紹介したいと思います。

Lineage(リネージュ)機能とは

Lineage(リネージュ)というのは、日本語で「血統・系譜」のような意味を持つ単語ですが、まさに「データの系図=このファイルのこの列は、データソースAの列1とデータソースBの列3から派生したもの」を作ってくれる機能です。(下図参照)

Microsoft Purview リネージュ機能

Lineage を使うと何が嬉しいのか

例えば、以下のような利点があります。

  1. 変更しようとしている処理がどのデータセットに影響するかが把握しやすい
  2. Output データを起点にデータの成り立ちが一目瞭然

ETL プロセスが複雑になってくると、いきなり詳細処理を追っていくのではなく、このようにおおまかなデータの系図を俯瞰して見るべき箇所を素早く特定した上で修正等を行えるようになると担当者のストレスもかなり軽減されるかなと思います。

Lineage を使うための準備

まずは準備です。Lineage 自体はSynapse Analytics 以外にも様々なサービスに対応しているものですが、今回はSynapse Analytics との接続をするための手順を説明します。

おおまかに分けると、以下のステップになります。

  1. Purview アカウントの作成
  2. Synapse Analytics ワークスペースとPurview アカウントの接続
  3. Synapse Pipeline の実行

1. Purview アカウントの作成

Azure のリソースを作成する一般的な手順でPurview アカウントも作成することができます。

リソース作成(1)

作成時のパラメータとしてはネットワーク環境をどうするかくらいです。作成後にはMicrosoft Purview ガバナンスポータルという画面から操作をすることがほとんどになると思いますが、ガバナンスポータルの説明は以下のドキュメントが詳しいです。

learn.microsoft.com

2. Azure Synapse Analytics ワークスペースでPurview アカウントへの接続

Purview アカウントができたら、Lineage 機能を使いたいPipeline があるSynapse Analytics ワークスペースとPurview アカウントを接続します。Synapse Analytics Studioを開き、[Manage] -> [Microsoft Purview] -> [Purview アカウントに接続] をクリックします。

purview アカウントに接続(1)

作成したPurview アカウントを選択し、[適用] をクリックします。

purview アカウントに接続(2)

この操作に必要な権限は以下のドキュメントに記載されていましたが、Purview アカウントに対して必要なロールがあいまいだったので、参考までに本検証時の操作アカウントが持っていたロールを記載しておきます。

learn.microsoft.com

  • Purview アカウントのroot コレクションに対する以下のロール
    • コレクション管理者
    • データ ソース管理者
    • データ キュレーター
    • データ共有共同作成者
    • データ閲覧者
    • ワークフロー管理者

またPurview アカウント作成時にプライベートなネットワーク環境を選択している場合は、以下の手順を参照する必要があるようです。(今回は未検証)

learn.microsoft.com

Purview アカウントとの接続が確立されると、Synapse Pipeline を実行したときにLineage の情報がSynapse Analytics からPurview アカウントへ送信されるようになるのですが、そのためにはSynapase Analytics のManaged Identityが「データ キュレーター」ロールに割り当てられている必要があります。接続時の操作アカウントに「コレクション管理者」のロールが割り当てられていると自動で追加してくれますが、念のため確認しておきます。Microsoft Purview ガバナンスポータルを開き、[Data map] -> [Collections] -> [{ルートコレクション名}] -> [Role assignments] タブをクリックするとロールを確認できます。

接続後のPurview アカウントのロール割当

3. Synapse Pipeline の実行

実際にPipeline のLineage 情報をPurview アカウントに送るために、一度Pipeline を実行します。実行結果画面に「系列の状態」という項目が表示され、クリックすると「成功」と表示されます。

系列の状態

Lineage を見てみる

さて、ここまでの手順でSynpase Pipeline で実行しているETL プロセスのデータのLineageを見ることができるようになりました。

パイプライン実行後、Microsoft Purview ガバナンスポータルで、[Data catalog] -> [Browse] -> [By source type] -> [Azure Synapase Analytics] をクリックします。

データリネージュにアクセスする(1)

接続済みのSynpase Analytics ワークスペースが表示されるので、クリックします。

データリネージュにアクセスする(2)

実行したPipeline の一覧とその中のData flowが表示されます。

データリネージュにアクセスする(3)

Lineage を表示したいデータに関連するData flowをクリックして、[Lineage] をクリックします。

データリネージュにアクセスする(4)

Lineage が表示されます。表示したいData flowの処理だけではなく、その前の処理まで表示されていることが確認できます。

データリネージュ(1)

さらに、データの成り立ちを確認したいデータ項目を左ペインの「Output Datasets Columns」項目から選択すると、Lineage にもそのデータ項目がそれ以前のデータセットのどのデータ項目から生成されているかが反映されます。処理をしているPipeline に遷移するナビゲーションも用意されているので、ここからより詳細の処理を確認するのも楽にできます。

データリネージュ(2)

まとめ

今回は「Synapse Pipeline でのLineage」をご紹介しました。少しの設定で簡単に利用できメンテナンスのストレス軽減に役立つと思います。

Lineage はPower BI(可視化レイヤー)のサービスとも接続できるので、可視化レイヤーから一気通貫で見れるようにできるかも試してみたいと思っています。またPurview はLineage 機能以外にも沢山のデータガバナンス機能があるので、それ自体も今後検証していきたいです。