订阅更新

老板问“这个指标怎么算的”,你怎么追溯数据血统?

Hive手册 第 10 题 约 2 分钟读完

本文目录
  1. 先说结论
  2. 业务场景:改了DWD表的一个字段,下游爆了
  3. 实战:我怎么建血统体系的
  4. 面试高频追问:字段级别血统和表级别血统的区别
  5. 总结

先说结论

数据血统就是数据的来龙去脉——一个字段从哪来、经过了哪些转换、最终去了哪里。它有三个核心用途:

① 影响分析: 我要改这张表,下游哪些报表会受影响?改之前必须搞清楚,否则改了上游导致下游数据全错。

② 问题溯源: 报表数据异常,顺着血统往上游查,快速定位到问题源头。这就是上一篇讲的排查方法的基础设施。

③ 合规审计: 出海业务特别强调GDPR等数据合规,需要知道用户PII数据流向了哪些表。如果用户要求删除个人数据,你得知道它存在哪些地方。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

数据血统是数据治理的核心能力。当老板问“这个ROI指标到底是怎么算的”或者“改了这张表会影响哪些报表”时,你能不能快速答出来,直接反映了你的数据治理水平。这也是中高级数据开发面试越来越爱问的题目。

业务场景:改了DWD表的一个字段,下游爆了

我在元宇宙社交App遇到过一个教训:有同事修改了dwd_user_event表里event_type字段的取值规则(把'page_view'改成了'pv'),但没有检查下游依赖。结果下游有3张DWS表和5个ADS报表都依赖了event_type='page_view'的过滤条件,数据全部变成0。

如果当时有血统分析工具,改之前就能看到这8张下游表依赖了这个字段,就不会出事。

实战:我怎么建血统体系的

方法一:基于平台工具的自动血统

我在出海硬件公司用的Databricks Unity Catalog,它能自动解析每个作业的SQL,提取输入表和输出表,生成表级别和字段级别的血统图。我可以直接看到dwd_user_event表的下游有哪些表,改之前先检查影响范围。

方法二:基于调度元数据的手动血统

在没有工具的情况下,可以从调度系统的作业依赖关系中提取。每个作业读哪些表、写哪些表,串起来就是血统。Airflow的DAG依赖关系就是一种简单的表级血统。

我当前在短剧出海公司用的阿里云DataWorks,自带表级血统功能。虽然没有Unity Catalog那么强大(没有字段级血统),但表级别的依赖关系已经够用了。

面试高频追问:字段级别血统和表级别血统的区别

表级别血统: 知道“表A依赖表B”,但不知道具体是哪个字段依赖哪个字段。大多数调度系统可以提供。

字段级别血统: 知道“表A的cost字段来自表B的price字段×表C的quantity字段”。需要解析SQL逻辑才能实现,Databricks Unity Catalog、Apache Atlas等工具支持。

总结

数据血统的核心价值:影响分析、问题溯源、合规审计。面试的时候能结合自己的实战说清楚“你怎么建的、解决了什么问题”,再能区分表级和字段级血统的差异,就很有深度了。

第6-10篇完结。下一辑继续聊跨时区数据处理、数据质量检查、UDF开发、Hive事务表、窗口函数业务场景等实战话题。

你们公司有数据血统体系吗?评论区聊聊~

关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长

刷题进度保存在当前浏览器