0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Purview におけるリネージュの誤解とデータソース別の留意事項まとめ

Posted at

監査やコンプライアンス対応、データ品質向上などの観点から、データがどこから来てどのように加工されて利用されているのかを可視化する データリネージュ はますます重要になっています。Microsoft Purview は Azure 環境など広範囲なデータソースからリネージュ情報を統合できる強力なデータガバナンス・プラットフォームです。しかし、現時点 (2025年11月) では Purview のリネージュ機能は万能ではなく、時折その機能に関する誤解や過度の期待を耳にすることがあります。本記事では Q&A 形式 で主要な誤解を取り上げ、留意すべきポイントをデータソース別に説明します。

TL;DR

  • Purview は、主に Azure Data Factory(Copy/DataFlow/SSIS)、Azure Synapse Analytics(Copy/Data Flow)、Databricks Unity Catalog(Managed Delta テーブル)、Microsoft Fabric/Power BI のアイテム、および一部のリレーショナルデータベースなどのサポート対象サービスからデータリネージュを収集します。
  • 自動的なリネージュ取得は特定のアクティビティまたはソースに限定されており、カスタムスクリプト、クエリ、非対応ツールのリネージュは Apache Atlas や Purview の REST API を利用して手動で登録する必要があります。
  • データソースごとに機能と制限が異なります。ADF や Synapse はテーブルレベルのリネージュに対応しますが変換処理の詳細は追跡できません。Databricks は Managed Delta テーブルのみ、Fabric アイテム(特定の Power BI エンティティを除く)では列レベルの詳細が取得できません。SQL/Oracle データベースは構造的なリネージュを提供しますが、ストアドプロシージャやクエリのリネージュは含まれません。SAP、Teradata、MySQL、PostgreSQL などその他のソースもテーブル/ビュー単位に限定されます。
  • リネージュを確実に取得するには、Purview との接続設定、スキャナの構成、および適切な権限設定が不可欠です。サポートされる範囲を事前に検証し、自動取得ができない場合には手動やカスタム連携を利用してください。

Q1. Purview はどんなデータ操作でも自動でリネージュを捕捉できる?

A1. いいえ、Purview が自動収集できるのは特定のシステムやアクティビティに限定されます。

  • 代表的なサポート対象として、Azure Data Factory (ADF)Azure Synapse AnalyticsAirflowPower BI 等があります。これらのシステムはデータコピーやデータフローなどのパイプライン実行時に構造・操作・実行履歴のメタデータを収集し、Purview に送信します。たとえば ADF の Copy / Data Flow / Execute SSIS の各アクティビティは Purview と連携し、データがソースからシンクへ移動した情報を自動的に記録します。

  • 一方で下記のような留意点があります。

    • 任意の SQL クエリやシェルスクリプトによるデータ変換、カスタムツールでのデータ処理など、Purview がネイティブに統合していない操作は、自動的に取得できません。
    • こうした場合、Apache Atlas ベースの REST API を利用した 手動リネージュ登録 が必要です。リネージュに重要なプロセスや列の関係を自分で定義し、Purview に書き込むことで可視化できます。

具体例

  • ADF の Copy アクティビティ:Azure Blob から Azure SQL Database にファイルをコピーした際、Copy アクティビティのソース (Blob) とシンク (SQL テーブル) の関係が Purview に自動登録されます。ただし列ごとの変換情報や複雑なデータフローの分岐は含まれません。
  • Power BI:Power BI レポートで利用しているデータセットは Purview に取り込まれ、レポート→データセット→データソースまでの流れが表示されます。これにより各ビジュアルのデータの出所が追跡できます。
  • カスタム Python スクリプトでのモデリング処理:Purview はこのような独自処理のリネージュを自動検知しないため、Apache Atlas のプロセスエンティティを作成し、入力ファイルと出力テーブルを関連付ける必要があります。

Q2. リネージュはどのデータストア/サービスでも取得できる?

A2. 対応しているデータソースや機能はサービスごとに異なり、未サポートの範囲が存在します。

Purview のリネージュ取得はデータ処理システム・データストレージ・BI ツールなどそれぞれのプラットフォームで実装されており、サポート範囲や制限が異なります。以下に主なデータソース別の詳細を示します(2025年10月時点)。

1. Azure Data Factory (ADF) / Azure Synapse Analytics

  • 対応アクティビティ:Copy、Data Flow、Execute SSIS の3種類のパイプライン活動がサポートされ、パイプライン実行時にソース・シンクや基本的な変換情報を Purview に送信します。
  • 制限
    • Data Flow ではソースとシンクの関係は取得できますが、マッピングや集計など途中の変換操作の可視化は現時点で対応していません。
    • Copy アクティビティでも一部のデータフォーマット(ADLS Gen1 Binary形式・ファイル圧縮設定など)や処理オプションではリネージュが取得できない場合があります。
    • Synapse 連携では、SQL 返却コンポーネントのリネージュ (SQLトランスフォーム操作の中身) や LakeHouse DB/Workspace DB のテーブルは未対応です。
    • Self-hosted Integration Runtime を使用する場合、特定のバージョン以上のランタイムが必要で、場合によってはバージョン 5.10 以上が必要です。

2. Azure Databricks / Unity Catalog

  • Databricks 内の Unity Catalog に保存された Managed Delta テーブル のみ表レベルのリネージュを Pull できます。ただし Purview のスキャナが Databricks Unity Catalog 用の API に接続し、lineage extraction オプションを有効化しておく必要があります。
  • 制限
    • 外部テーブル(ADLS 上のパスに定義されたテーブル)は Purview ではリネージュを取得できず、Databricks 内では確認可能であっても Purview に取り込めません。
    • Databricks ノートブックの実行や Pipeline/Jobs からの lineage event トリガーが必要で、対話型クエリのみではデータが送られません。

3. Microsoft Fabric / Power BI

  • Fabric ワークスペースや Power BI のデータセット・レポートのリネージュを Purview へ取り込んで可視化できます。
  • 制限
    • Power BI 以外の Fabric アイテムはアイテムレベル(例:Lakehouse、Warehouse など)までのリネージュで、サブアイテム(テーブルなど)の追跡は未対応。
    • クロスワークスペースでのリネージュや外部ソースを含むステップは表示されません。

4. Azure SQL Database / Azure SQL Managed Instance / Synapse Dedicated SQL Pool

  • テーブルやビューの構造・リレーションを Purview に取り込み、ADF/Synapse が生成する Copy や Data Flow の実行時にソース・シンク関係をリネージュとして可視化します。
  • 制限
    • ストアドプロシージャや動的クエリの内部処理は Purview が現在対応していません。また、Temporal Table など一部の機能は未対応です。
    • リネージュはあくまでテーブル・ビュー間のデータフローであり、プロシージャは手動登録または外部ツールを介した連携が必要です。

5. その他の一般的なデータストア

  • Azure Data Lake Storage (ADLS Gen1/Gen2)、Azure Blob Storage:ADF や Synapse の Copy/Data Flow のソース・シンクとして使われる場合はリネージュ取得が可能です。ただし Binary 形式や圧縮設定などのオプション適用時にはサポート対象外です。
  • SAP / Oracle / Hive / Teradata / Azure Database for MySQL/ PostgreSQL/ MariaDB など:Synapse や ADF から Copy/Data Flow 活動を通じてテーブル・ビュー間のリネージュが取得できますが、クエリやストアドプロシージャには未対応である点が共通する制限です。

データソース別リネージュ機能比較

データソース/サービス 自動リネージュ対象 列レベルサポート 主な制限・前提条件
Azure Data Factory Copy, DataFlow, SSISによるソース→シンクの移動 ✕ (Dataflowの詳細変換は未対応) 未サポートフォーマット (ADLS Gen1のBinary等) や圧縮オプションではリネージュ生成不可。ADFとPurviewのリンク設定が必要
Azure Synapse Analytics (SQL/Integrations) Copy, Data Flow 活動。Synapseパイプライン実行後にソース・シンクを取り込み ✕ (Dataflowはソースとシンクの関係のみ) Synapse Tables (Lakehouse DB/Workspace DB) や transformation ステップは未対応。Self-hosted IRはバージョン5.9.7885.3+が必要
Azure Databricks (Unity Catalog) Managed Deltaテーブルの表レベル lineage (Unity Catalog API経由) ✕ (列レベル不可能) UC専用スキャナとAPI設定が必須。外部テーブル(ADLSパス上のテーブル)は対象外。ノートブック実行やDLT/Jobsからの lineage 発行が必要
Microsoft Fabric Power BI レポート/データセット/ダッシュボードなどのアイテムレベル lineage 一部BIで列レベル可 (Power BI Datasets/Reports) Lakehouseテーブルの列レベル lineage未対応。外部 datasource やCross-workspace lineageは未サポート
Azure SQL Database/Managed Instance/Synapse Dedicated Pool テーブル・ビューのメタデータ、ADF/SynapseからのCopy/DataFlow実行でのソース・シンクの流れ ✕ (ストアド・関数・クエリは未対応) ストアドプロシージャの内部ロジックは自動取得不可。db_owner権限やMaster Keyが必要な場合あり
その他(SAP, Teradata, Azure Database for PostgreSQL/MySQL etc.) ADFやSynapseのCopy/DataFlowからソース・シンクのリネージュを取得 多くの場合テーブル/ビュー単位のリネージュのみ。変換やプロシージャ/クエリへの対応は未実装

凡例:〇=機能あり,✕=未サポート


Q3. リネージュ取得のために具体的に何をすればいい?

A3. Purview とデータシステムの適切な連携設定・実行ステップが欠かせません。

  1. 対象システムと連携する – Azure Portal 上で Purview アカウントを作成し、Data Factory や Synapse、Databricks などのソースと接続する設定を行います。Oracle の場合は self-hosted integration runtime の準備と JDBC ドライバのセットアップが必要です。
  2. リネージュ収集を有効化したパイプライン/ジョブを実行 – ADF では Copy/DataFlow/SSIS 活動を含むパイプラインを作成して実行し、reportLineageToPurviewのステータスが succeeded であることを確認します。Synapse も同様に Copy/DataFlow 活動付きパイプラインを実行し、Lineage status ボタンで状況を確認できます。
  3. Purview portal で確認 – Purview Studio で対象のデータ資産を検索し、Lineage タブでリネージュグラフを確認します。Power BI や Fabric のリネージュは、データセットやレポートを選んで Lineage タブを表示することで把握できます。
  4. リネージュが取得できない場合の対処法 – サポート範囲内かを確認し、前提条件(IR バージョンや権限)を満たしているかをチェックします。Databricks の場合は Unity Catalog API や Scanner 設定を確認し、管理対象の Delta テーブルで作業しているか確認します。ストアドプロシージャやクエリのリネージュは現状自動取得不可のため、Atlas API を使って手動で登録することを検討します。

具体例

  • Synapse から ADLS へのコピー:Synapse Pipeline で Azure SQL Database から ADLS Gen2 へコピーすると、Purview はコピー元テーブル (Azure SQL) とコピー先フォルダ (ADLS) の関係を表示します。制限として、Binary形式でのコピーやファイル圧縮を指定するとリネージュは取得されません。

  • Databricks ノートブックから Delta テーブル生成:Databricks のノートブックで CSV ファイルを読み込み、その内容を Unity Catalog の Managed Delta テーブルにロードした場合、ジョブ単位で lineage metadata が生成され、正しく設定された Purview では Managed Delta テーブルの出所 (CSV ファイル) とテーブルの関係が表示されます。ただし、UC 外部テーブルの場合や外部 ADLS データを直接使った場合は表示されません。

  • Power BI レポート:Power BI サービスで作成したレポートやダッシュボードを Purview でスキャンすると、使用しているデータセットやデータフロー、さらに背後のデータソースまでリネージュを閲覧できます。そのリネージュから、レポートで表示される数値がどのテーブルから計算されているかを追跡できます。


まとめ

Microsoft Purview のリネージュ機能は、データの出所や利用経路を把握する上で不可欠ですが、「すべて自動で取得できる」わけではなく、対応範囲や制約を理解したうえで運用設定や手動登録が必要 です。特にストアドプロシージャやカスタムクエリ、外部テーブルの変換などは自動ではカバーされないことがあるため、API や追加のツールを用いた補完が求められます。データベース管理者、データエンジニア、開発者は、利用するデータソースやワークフローの詳細に応じて Purview の最新ドキュメントを参照し、要件に合わせたリネージュ管理を設計するのが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?