データリネージとは?ソースから利用までのデータ追跡を解説
データリネージとは、生のソースから最終的なレポートやモデルまで、データがプラットフォーム全体でどこから来てどのように移動し変換されるかを示すマップです。
ダッシュボード上の数値がおかしく見えるとき、最初の疑問は「これはどこから来たのか?」です。データリネージはそれに答えます。すべての変換を通じてデータの経路を追跡するため、任意のテーブルやメトリクスをどのソースとステップが生成したのかを正確に確認できます。
データリネージとは何か
データリネージとは、システム内を流れるデータの文書化されたフローです。どのソースがどのテーブルに供給し、それらの間でどの変換が実行され、どのレポートやモデルが結果を消費するか。通常、datasetとそれらをつなぐステップのグラフとして表示されます。
なぜ重要か
リネージは信頼性、デバッグ、コンプライアンスを支えます。データがおかしく見えるとき、リネージは確認すべきupstreamのステップを示します。ソースを廃止する必要があるとき、リネージはそれに依存するすべてを示します。規制対応では、リネージが機密データの出所と行き先を証明します。
どのように取得されるか
リネージは、変換コードとクエリを解析することで自動的に取得する(dbt、OpenLineage)ことも、orchestratorが各ステップを実行しながら記録することもできます。結果は、プラットフォームの変化に応じて更新される列レベルまたはテーブルレベルのリネージです。
リネージとCI
CIでは、リネージが何をテストするかの範囲を絞るのに役立ちます。モデルが変更されたら、そのdownstreamにあるものすべてをbuildしてテストし、それ以外は行わないことで、高速で安全なpull requestチェックを実現します。
# Build only the changed model and its descendants
steps:
- run: dbt build --select state:modified+ --target ciLatchkeyノート
リネージで範囲を絞ったCIのjobはプラットフォームの影響を受けた部分のみに触れるため、軽量に保たれます。Latchkeyでは、何が変わったかを検出するtoolchainとartifactをcacheすることで、これらの絞り込まれたrunが素早く開始し、auto-retryが一時的なwarehouseの不具合をカバーします。
重要なポイント
- データリネージは、データがどこから来てソースから最終利用までどう変換されるかをマッピングする。
- upstreamとdownstreamの依存関係を示すことで、信頼性、デバッグ、廃止、コンプライアンスを支える。
- CIでは、リネージがbuildを変更されたモデルとその子孫に絞り込み、高速で安全なチェックを実現する。