tracing-downstream-lineage について
データエンジニアやアナリスト向けに、テーブルやDAGの変更前に影響を調べるデータリネージスキルです。依存関係の把握、リスク評価、関係者の特定を支援します。
主な機能
- 01テーブルとDAGの直接利用元を特定
- 02下流依存関係を再帰的に追跡
- 03影響の重要度を分類
- 04スキーマとデータ変更のリスク評価
- 05所有者と関係者の特定
活用シーン
- 01列名変更の影響を見積もる
- 02テーブルの廃止や削除を計画
- 03変更前に通知するチームを特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ astronomer/ agents --skill tracing-downstream-lineageインストール後、Claude Code で/tracing-downstream-lineageを入力して読み込まれたか確認します。
詳細
下流リネージ:影響
重要な問いに答えます。「これを変更すると、何が壊れますか?」
変更を加える前に、影響範囲を把握するためにこれを使用してください。
影響分析
ステップ 1:直接の利用者を特定する
この対象から読み取るすべてのものを見つけます。
テーブルの場合:
-
DAG のソースコードを検索する:このテーブルを SELECT する DAG を探します
af dags listを使用して、すべての DAG を取得しますaf dags source <dag_id>を使用して、テーブル参照を検索します- 次を探します:
FROM target_table、JOIN target_table
-
依存ビューを確認する:
-- Snowflake SELECT * FROM information_schema.view_table_usage WHERE table_name = '<target_table>' -- Or check SHOW VIEWS and search definitions -
BI ツールの接続を探す:
- ダッシュボードはテーブルに直接クエリすることがよくあります
- テーブル名の一般的な BI パターン(rpt_、dashboard_)を確認します
Astro の場合
Astro で実行している場合、Astro UI の Lineage タブでは、DAG とデータセットをまたぐ依存関係グラフを視覚的に確認できるため、下流への影響分析を迅速に行えます。特定のデータセットを利用する DAG とその現在のステータスが表示されるため、ソースコードを手動で検索する必要性が減ります。
DAG の場合:
- DAG が生成するものを確認する:
af dags source <dag_id>を使用して出力テーブルを探します - 次に、それらのテーブルの利用者を追跡する(再帰的に)
ステップ 2:依存関係ツリーを作成する
下流への影響全体をマッピングします。
SOURCE: fct.orders
|
+-- TABLE: agg.daily_sales --> Dashboard: Executive KPIs
| |
| +-- TABLE: rpt.monthly_summary --> Email: Monthly Report
|
+-- TABLE: ml.order_features --> Model: Demand Forecasting
|
+-- DIRECT: Looker Dashboard "Sales Overview"
ステップ 3:重要度で分類する
重大(本番環境に支障が出る):
- 本番環境のダッシュボード
- 顧客向けアプリケーション
- 経営幹部向けの自動レポート
- 本番環境の ML モデル
- 規制/コンプライアンスレポート
高(重大な問題が発生する):
- 社内業務用ダッシュボード
- アナリストのワークフロー
- データサイエンスの実験
- 下流の ETL ジョブ
中(不便が生じる):
- アドホック分析用テーブル
- 開発/ステージング環境のコピー
- 履歴アーカイブ
低(影響は最小限):
- 非推奨のテーブル
- 未使用のデータセット
- テストデータ
ステップ 4:変更リスクを評価する
提案された変更について、次を評価します。
スキーマ変更(列の追加/削除/名前変更):
- どの下流クエリが機能しなくなりますか?
- 新しい列を取得する SELECT * パターンはありますか?
- 変更する列を参照している変換はどれですか?
データ変更(値、量、タイミング):
- 下流の集計は引き続き有効ですか?
- 問題につながる NULL 処理の前提はありますか?
- タイミングの変更は SLA に影響しますか?
削除/非推奨化:
- 依存関係ツリー全体を先に移行する必要があります
- すべての関係者への連絡が必要です
ステップ 5:関係者を特定する
下流アセットの所有者を特定します。
- DAG の所有者:DAG 定義の
ownersフィールドを確認します - ダッシュボードの所有者:通常は BI ツールのメタデータにあります
- チームの所有権:チーム名のパターンやドキュメントを探します
出力:影響レポート
概要
「fct.orders を変更すると、X 個のテーブル、Y 個の DAG、Z 個のダッシュボードに影響します」
影響図
+--> [agg.daily_sales] --> [Executive Dashboard]
|
[fct.orders] -------+--> [rpt.order_details] --> [Ops Team Email]
|
+--> [ml.features] --> [Demand Model]
詳細な影響
| 下流 | 種類 | 重要度 | 所有者 | 備考 |
|---|---|---|---|---|
| agg.daily_sales | テーブル | 重大 | data-eng | 1 時間ごとに更新 |
| Executive Dashboard | ダッシュボード | 重大 | analytics | CEO が毎日閲覧 |
| ml.order_features | テーブル | 高 | ml-team | 毎週再トレーニング |
リスク評価
| 変更の種類 | リスクレベル | 緩和策 |
|---|---|---|
| 列の追加 | 低 | 対応不要 |
| 列名の変更 | 高 | 3 つの DAG と 2 つのダッシュボードを更新 |
| 列の削除 | 重大 | 完全な移行計画が必要 |
| データ型の変更 | 中 | 下流の集計をテスト |
推奨アクション
変更を加える前に:
- 所有者に通知する:@data-eng、@analytics、@ml-team
- 下流の DAG を更新する:
transform_daily_sales - ダッシュボードをテストする:Executive KPIs
- 影響の少ない時間帯に変更を予定する
関連スキル
- データの由来を追跡する:tracing-upstream-lineage スキル
- 下流の鮮度を確認する:checking-freshness スキル
- 壊れた DAG をデバッグする:debugging-dags スキル
- リネージの手動アノテーションを追加する:annotating-task-lineage スキル
- カスタムリネージ抽出器を構築する:creating-openlineage-extractors スキル
コメント
Markdown 対応