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-eng每小时更新
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 技能

评论

支持 Markdown