mcpField
T
tracing-downstream-lineage

tracing-downstream-lineage

github.com/astronomerデータ・データベース4571.0k 回インストール3 週間前に更新
リポジトリ

tracing-downstream-lineage について

データエンジニアやアナリスト向けに、テーブルやDAGの変更前に影響を調べるデータリネージスキルです。依存関係の把握、リスク評価、関係者の特定を支援します。

主な機能

  1. 01テーブルとDAGの直接利用元を特定
  2. 02下流依存関係を再帰的に追跡
  3. 03影響の重要度を分類
  4. 04スキーマとデータ変更のリスク評価
  5. 05所有者と関係者の特定

活用シーン

  1. 01列名変更の影響を見積もる
  2. 02テーブルの廃止や削除を計画
  3. 03変更前に通知するチームを特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/astronomer/agents --skill tracing-downstream-lineage

インストール後、Claude Code で/tracing-downstream-lineageを入力して読み込まれたか確認します。

詳細

下流リネージ:影響

重要な問いに答えます。「これを変更すると、何が壊れますか?」

変更を加える前に、影響範囲を把握するためにこれを使用してください。

影響分析

ステップ 1:直接の利用者を特定する

この対象から読み取るすべてのものを見つけます。

テーブルの場合:

  1. DAG のソースコードを検索する:このテーブルを SELECT する DAG を探します

    • af dags list を使用して、すべての DAG を取得します
    • af dags source <dag_id> を使用して、テーブル参照を検索します
    • 次を探します:FROM target_table、JOIN target_table
  2. 依存ビューを確認する:

    -- Snowflake
    SELECT * FROM information_schema.view_table_usage
    WHERE table_name = '<target_table>'
    
    -- Or check SHOW VIEWS and search definitions
    
  3. BI ツールの接続を探す:

    • ダッシュボードはテーブルに直接クエリすることがよくあります
    • テーブル名の一般的な BI パターン(rpt_、dashboard_)を確認します
Astro の場合

Astro で実行している場合、Astro UI の Lineage タブでは、DAG とデータセットをまたぐ依存関係グラフを視覚的に確認できるため、下流への影響分析を迅速に行えます。特定のデータセットを利用する DAG とその現在のステータスが表示されるため、ソースコードを手動で検索する必要性が減ります。

DAG の場合:

  1. DAG が生成するものを確認する:af dags source <dag_id> を使用して出力テーブルを探します
  2. 次に、それらのテーブルの利用者を追跡する(再帰的に)
ステップ 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:関係者を特定する

下流アセットの所有者を特定します。

  1. DAG の所有者:DAG 定義の owners フィールドを確認します
  2. ダッシュボードの所有者:通常は BI ツールのメタデータにあります
  3. チームの所有権:チーム名のパターンやドキュメントを探します

出力:影響レポート

概要

「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-eng1 時間ごとに更新
Executive Dashboardダッシュボード重大analyticsCEO が毎日閲覧
ml.order_featuresテーブル高ml-team毎週再トレーニング
リスク評価
変更の種類リスクレベル緩和策
列の追加低対応不要
列名の変更高3 つの DAG と 2 つのダッシュボードを更新
列の削除重大完全な移行計画が必要
データ型の変更中下流の集計をテスト
推奨アクション

変更を加える前に:

  1. 所有者に通知する:@data-eng、@analytics、@ml-team
  2. 下流の DAG を更新する:transform_daily_sales
  3. ダッシュボードをテストする:Executive KPIs
  4. 影響の少ない時間帯に変更を予定する
関連スキル
  • データの由来を追跡する:tracing-upstream-lineage スキル
  • 下流の鮮度を確認する:checking-freshness スキル
  • 壊れた DAG をデバッグする:debugging-dags スキル
  • リネージの手動アノテーションを追加する:annotating-task-lineage スキル
  • カスタムリネージ抽出器を構築する:creating-openlineage-extractors スキル

コメント