数据血缘

更新时间:
复制 MD 格式

数据血缘展示表、视图和字段之间的数据依赖关系。您可以在数据目录中通过血缘关系追踪指标来源、识别变更影响,以及查看形成依赖关系的原始SQL。

功能概览

数据血缘展示表、视图和字段之间的数据依赖,可在数据目录中用于追踪指标来源、识别变更影响,以及查看形成依赖关系的原始SQL。中间表或字段删除后,仍可沿已采集的历史血缘继续追溯。

例如,当经营报表中的净收入发生变化时,可以向上游追溯参与计算的销售额与退款额;调整计算口径前,可以向下游展开,找到需要一同复核的汇总表和视图。

概念

说明

上游

提供数据或被引用的对象。

下游

使用这些数据的对象。

表级血缘

表、视图等对象之间的依赖。

列级血缘

目标字段依赖的输入字段。

SQL证据

形成依赖关系的SQL及相关事件信息。

查看表级血缘

本例以订单净收入表dwd_order_profit为中心。它读取订单明细和退款汇总,再将净收入提供给日经营汇总、客户价值汇总及后续分析对象。

  1. 登录AnalyticDB MySQL版控制台,选择地域并进入目标集群。

  2. 在目标集群中进入数据管理 > 数据目录,选择数据库和目标表,打开血缘关系页签。

  3. 从当前对象的直接上下游开始,单击节点两侧的加号,逐层展开需要分析的依赖。

  4. 使用画布右上角的缩放、适配画布和放大查看,查看较长的处理链路。

沿订单明细向上游展开,可以看到订单、订单项、客户和商品;沿退款汇总继续展开,可以找到退款记录。向下游展开日经营汇总与客户价值汇总,则会出现渠道经营指标、经营概览视图和客户分层视图。

橙色边框标识当前对象,紫色图标标识视图。图中的层级相对于当前对象计算,逐层展开可将分析范围从直接依赖扩展到完整的业务分支。

追溯字段来源

表级关系用于定位相关对象;解释指标的数值来源时,需要进一步查看字段层面。以订单净收入net_revenue为例:

  1. 在dwd_order_profit节点中单击展开字段;字段较多时,通过分页找到net_revenue。

  2. 选中net_revenue,单击字段左侧的加号查看上游。相关字段和已展开连线以蓝色高亮。

  3. 单击字段右侧的加号查看下游,将来源排查延伸到影响分析。

净收入的两个输入分别是:

  • dwd_order_detail.sales_amount:销售额。

  • dwd_refund_summary.refund_amount:退款额。

当指标异常时,可分别检查销售额汇总与退款金额,再通过连线上的SQL证据确认实际计算方式。

评估下游影响

调整退款规则或净收入口径之前,先查看目标字段的下游。本例中,net_revenue流向两张汇总表的同名字段,两条分析链路都应纳入复核范围。

下游字段

需要复核的分析链路

dws_daily_sales.net_revenue

日经营汇总,以及后续渠道经营指标和经营概览。

dws_customer_value.net_revenue

客户价值汇总,以及后续客户分层。

沿表级关系继续展开,可找到这些汇总表之后的分析对象。确认变更影响时,再结合对应SQL检查计算、关联与筛选条件。

中间节点删除后继续追溯历史链路

只要相关血缘在删除前已经被采集,中间表清理或字段下线后,仍可沿历史链路查找更上游的来源和更下游的使用方。

中间表已删除

示例先执行逐层写入,再删除中间表tmp_revenue_bridge。从仍然存在的dws_daily_revenue打开血缘,可以看到带有删除标识的中间节点;继续展开上游,仍可找到dwd_sales_base和ods_sales。下游的ads_revenue_report也保留在同一条历史链路中。

ods_sales
  → dwd_sales_base
  → tmp_revenue_bridge(已删除)
  → dws_daily_revenue
  → ads_revenue_report

操作步骤:

  1. 选择仍然存在的上游或下游表,进入血缘关系。

  2. 找到已删除的中间节点,单击节点两侧的加号继续展开。

  3. 沿历史连线确认更早的数据来源和后续使用方;需要核对处理逻辑时,打开连线上的SQL证据。

中间字段已删除

另一条链路仅删除dwd_column_bridge.net_revenue,保留该表及其他字段。以dws_column_revenue.net_revenue为起点展开列级血缘,可以穿过已删除的同名字段,继续查看更上游的dwd_sales_base.net_revenue,并追踪到下游报表字段。已删除字段的类型为“-”,表示该列已不存在。

dwd_sales_base.net_revenue
  → dwd_column_bridge.net_revenue(字段已删除,表仍存在)
  → dws_column_revenue.net_revenue
  → 下游报表字段

注意事项

  • 已删除节点保留的是历史依赖信息,不表示原表或原列的数据仍可查询。

  • 删除前尚未采集的关系无法据此补齐。

  • 查看时应选择覆盖相关血缘事件的时间范围。

  • 同名重建的表具有新的对象身份,应与被删除的历史表区分。

这种追溯方式适合排查历史报表、复核字段下线影响,以及理解中间表清理之后的处理链路。

查看SQL证据

单击连线上的信息图标,打开血缘证据面板,可查看查询ID、SQL类型、血缘类型和发生时间。

在退款金额到净收入的连线上,面板展示实际执行的INSERT_SELECT。向下滚动原始SQL,可看到明细销售额按订单汇总,通过LEFT JOIN关联退款汇总,并使用以下表达式计算净收入:

CAST(
  d.sales_amount - COALESCE(r.refund_amount, 0)
  AS DECIMAL(18, 2)
) AS net_revenue

COALESCE将没有退款记录的金额按0处理。结合上游列关系,可核实“净收入等于销售额减去成功退款金额”的示例口径。

置信度表示血缘推断的确定程度,不代表业务数据已通过质量校验。

聚焦分析范围

在血缘页签中选择方向和时间范围,可集中分析一条链路。

控制项

用途

方向

选择上游、下游或上下游关系,分别用于来源排查、影响分析或整体理解。

时间范围

选择全部、近7天、近30天、近90天、近180天或近1年,聚焦相应时间内发生的血缘关系。

时间范围依据血缘事件的发生时间,不是订单日期等业务字段。页面初始展示表级关系;列关系数为0时,可先展开目标字段,再查看来源或去向。