数据血缘
数据血缘展示表、视图和字段之间的数据依赖关系。您可以在数据目录中通过血缘关系追踪指标来源、识别变更影响,以及查看形成依赖关系的原始SQL。
功能概览
数据血缘展示表、视图和字段之间的数据依赖,可在数据目录中用于追踪指标来源、识别变更影响,以及查看形成依赖关系的原始SQL。中间表或字段删除后,仍可沿已采集的历史血缘继续追溯。
例如,当经营报表中的净收入发生变化时,可以向上游追溯参与计算的销售额与退款额;调整计算口径前,可以向下游展开,找到需要一同复核的汇总表和视图。
概念 | 说明 |
上游 | 提供数据或被引用的对象。 |
下游 | 使用这些数据的对象。 |
表级血缘 | 表、视图等对象之间的依赖。 |
列级血缘 | 目标字段依赖的输入字段。 |
SQL证据 | 形成依赖关系的SQL及相关事件信息。 |
查看表级血缘
本例以订单净收入表dwd_order_profit为中心。它读取订单明细和退款汇总,再将净收入提供给日经营汇总、客户价值汇总及后续分析对象。
登录AnalyticDB MySQL版控制台,选择地域并进入目标集群。
在目标集群中进入数据管理 > 数据目录,选择数据库和目标表,打开血缘关系页签。
从当前对象的直接上下游开始,单击节点两侧的加号,逐层展开需要分析的依赖。
使用画布右上角的缩放、适配画布和放大查看,查看较长的处理链路。
沿订单明细向上游展开,可以看到订单、订单项、客户和商品;沿退款汇总继续展开,可以找到退款记录。向下游展开日经营汇总与客户价值汇总,则会出现渠道经营指标、经营概览视图和客户分层视图。
橙色边框标识当前对象,紫色图标标识视图。图中的层级相对于当前对象计算,逐层展开可将分析范围从直接依赖扩展到完整的业务分支。
追溯字段来源
表级关系用于定位相关对象;解释指标的数值来源时,需要进一步查看字段层面。以订单净收入net_revenue为例:
在
dwd_order_profit节点中单击展开字段;字段较多时,通过分页找到net_revenue。选中
net_revenue,单击字段左侧的加号查看上游。相关字段和已展开连线以蓝色高亮。单击字段右侧的加号查看下游,将来源排查延伸到影响分析。
净收入的两个输入分别是:
dwd_order_detail.sales_amount:销售额。dwd_refund_summary.refund_amount:退款额。
当指标异常时,可分别检查销售额汇总与退款金额,再通过连线上的SQL证据确认实际计算方式。
评估下游影响
调整退款规则或净收入口径之前,先查看目标字段的下游。本例中,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操作步骤:
选择仍然存在的上游或下游表,进入血缘关系。
找到已删除的中间节点,单击节点两侧的加号继续展开。
沿历史连线确认更早的数据来源和后续使用方;需要核对处理逻辑时,打开连线上的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_revenueCOALESCE将没有退款记录的金额按0处理。结合上游列关系,可核实“净收入等于销售额减去成功退款金额”的示例口径。
置信度表示血缘推断的确定程度,不代表业务数据已通过质量校验。
聚焦分析范围
在血缘页签中选择方向和时间范围,可集中分析一条链路。
控制项 | 用途 |
方向 | 选择上游、下游或上下游关系,分别用于来源排查、影响分析或整体理解。 |
时间范围 | 选择全部、近7天、近30天、近90天、近180天或近1年,聚焦相应时间内发生的血缘关系。 |
时间范围依据血缘事件的发生时间,不是订单日期等业务字段。页面初始展示表级关系;列关系数为0时,可先展开目标字段,再查看来源或去向。