【Azure Purview】 Azure Synapse パイプラインを Lineage 表示させる

# はじめに

Azure Purview にはリソース間でのデータの遷移を視覚化・表示する Lineage という機能があります。Lineage は当初は Azure Data Factory や Azure Data Share といった限られたサービスのみが対象とされていましたが、現在では Azure 以外も含めた様々なサービスに対応しています。

本記事では、現在対応しているサービスの中から Azure Synapse のパイプラインを Lineage 表示させてみたいと思います。Azure Synapse パイプラインは Azure Data Factory の ETL 処理を Azure Synapse Analytics 上で使えるようにしたものですが、Azure Purview 活用という観点で見たときにどのような違いがあるかを中心に解説していきたいと思います。

## 対象読者

Azure Purview を使い Azure Data Factory の Lineage 表示を実施した経験のある方が対象となります。まだご経験の無い方は以下ドキュメントを参考にイメージを持っていただけると、Azure Synapse パイプラインでの特徴や相違点が理解しやすいかと思われます。

参考: [Azure Data Factory と Azure Purview を接続する方法](https://docs.microsoft.com/ja-jp/azure/purview/how-to-link-azure-data-factory)

## Synapse ワークスペースからの Azure Purview アカウント接続

まずはじめに以下手順に従い、Synapse ワークスペースから Azure Purview アカウントへの接続設定を実施します。

参考: [クイックスタート: Synapse ワークスペースを Azure Purview アカウントに接続する](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/catalog-and-governance/quickstart-connect-azure-purview)

以下のように、状態列で正常に接続できていることが確認できれば OK です。
![20211101_purview_synapse_01_connect.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/777c419e-0ee8-1a7b-57aa-73fba9b6ba1e.jpeg)

## Azure Synapse パイプラインの定義

次に、Lineage 表示させるパイプライン処理を定義します。今回はシンプルな例として、Copy アクティビティを使い ADLS Gen2 上にある CSV ファイルを同一リソース内の別階層にコピーする処理を定義してみます。

この辺りを掘り下げて書いていくと長くなるため詳細は割愛しますが、Synapse Studio で Linked Service、データセット、アクティビティ、パイプラインを順次定義していきます。具体的な手順は以下をご参照ください。(コピー先が専用 SQL プールであることを除けば、大枠の手順は同じです。)

参考: [クイックスタート: コピー アクティビティを使用してデータを専用 SQL プールに読み込む](https://docs.microsoft.com/ja-jp/azure/synapse-analytics/quickstart-copy-activity-load-sql-pool)

## Azure Synapse パイプラインの実行

定義した Azure Synapse パイプラインを実行します。パイプラインが終了すると、Monitor ハブの実行結果から系列の状態も確認できます。
![20211101_purview_synapse_02_copy.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/c11426b3-6a5a-c21b-dd2b-f2b02c414b9e.jpeg)

## Lineage の表示確認

パイプライン実行により Lineage の情報が Azure Purview と連携され検索・表示できるようになります。まずは Purview Studio で表示を確認してみます。以下のように、実行したパイプラインの Lineage が表示されていることがわかります。
![20211101_purview_synapse_03_lineagepurview.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/2ceb8997-a8e5-d53e-cf8f-d5461a48d567.jpeg)

また、同様の結果を Synapse Studio からも確認することができます。画面上部の検索窓から「Purview」を選択し検索キーワードを入力します。Synapse Studio に統合される形で Purview Studio と同様の Lineage が表示されることが確認できます。
![20211101_purview_synapse_04_lineagesynapse.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/8fe1af6d-8be3-573f-f021-36b8a2ec751c.jpeg)
![20211101_purview_synapse_05_lineagesynapse.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/fbbe4db6-1626-1a31-263d-e72c5f018660.jpeg)
![20211101_purview_synapse_06_lineagesynapse.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685288/19d0b887-ac8b-069d-d61e-ed5cb19ae955.jpeg)

ちなみに、 Azure Data Factory の Lineage には「Open in Azure Data Factory」という Data Factory の管理画面へのリンクがついているのですが、Synapse パイプラインの Lineage にはそれがありません。これは、Azure Synapse Analytics の場合はパイプラインと Lineage の両方を Synapse Studio という同一の UI で内容確認できるためではないかと考えられます。

## まとめ

今回は Azure Synapse Analytics と Azure Purview を連携させ、Synapse パイプラインを Lineage 表示させてみました。Azure Purview のプレビュー発表直後の段階では Lineage を活用するためには Azure Data Factory が欠かせませんでしたが、現在では Synapse パイプラインの ETL 処理も十分に活用できることがお分かりいただけたかと思います。

Azure Synapse Analytics には様々な機能が含まれており、類似サービス(Synapse Spark Pool と Azure Databricks/Synapse パイプラインと Azure Data Factory など)との比較や使い分けがしばしば話題になります。機能面の細かな差異は Microsoft Docs にまとまっていますが、それに加えて**各機能を Azure Synapse Analytics に寄せられれば Synapse Studio のユーザーインターフェースで各作業や処理を統一できる**という点は、生産性の観点から注目に値するポイントではないかと思います。