上周跟个做数据的朋友喝咖啡,他吐槽说上个月财务出的营收报表比实际多了两百万,查了整整三天,才发现是中间有个同步任务把两个渠道的重复数据算进去了,要是早把数据治理中的数据血缘追踪做扎实,哪用得着熬三个通宵?太折腾了。
别拿血缘当画在PPT上的流程图
很多人对这件事的认知还停留在画链路图上,觉得把源系统、计算层、报表层的节点用线连起来,就算做完了血缘追踪。说白了,数据血缘追踪的核心不是画图,是能顺着每一个数据字段的流转路径,倒查来源、正推影响。你画的图再好看,真到出问题的时候,顺着链路找过去发现中间断了好几个节点,那这图除了给领导汇报撑场面,半毛钱用都没有。

我之前接触过一个制造业的数仓团队,最早搞血缘全靠人工整理文档。每个字段从ERP系统出来,经过几层清洗转换,最后到管理层的驾驶舱,全靠运维的老员工记在脑子里。后来老员工离职,交接的文档缺了快三分之一,有次库存数据出了错,新员工对着一堆脚本翻了一周,都没找到哪个环节把仓间调拨的重复数据算进去了。
最容易被忽略的暗节点
麻烦在于,大部分做数据的团队,日常会产生大量没有被纳入正式流程的数据流。比如为了赶临时的汇报需求,直接从数仓里拉数据,在本地Excel里算完,就把结果贴到了正式报表里。这些链路,没有任何工具能自动扫到。还有跨部门的零散数据源,比如市场部自己搭了个小MySQL库存活动用户数据,直接同步到了运营的月度报表里,数仓团队根本不知道有这么个节点存在。这就是血缘追踪里最要命的暗节点。对吧?你想想,哪个团队没有过临时拉数做报表的经历?

之前见过不少团队为了补这些暗节点,一开始想搞全员报备制度,要求谁写了同步脚本、谁用了外部数据,都得提交审批表单。结果呢?没人当回事。毕竟大家都要赶需求上线,哪有时间填一堆跟核心需求无关的流程?最后报备率还不到20%,纯纯浪费人力。
落地的取舍从来不是越全越好
说实话,真要把全链路的血缘都追得明明白白,代价大到大部分企业扛不住。你要把所有临时脚本、所有跨部门同步都纳入监控,得安排多少人天天盯着?得给多少零散的工具配接口?得改多少已经跑了好几年的老脚本?很多团队一开始上来就追求100%的链路覆盖率,做了半年,投入了几十万,最后发现实际能用的场景没几个,反而把团队的日常需求进度拖慢了。
我接触过的一个团队之前就走了这个弯路。一开始花了三个月,把数仓里所有ODS层到DWD层的链路都扫了一遍,做出来的血缘图排版精美,连每个字段的转换逻辑都标得清清楚楚,结果上个月出了个大问题:市场部的临时数据源没被纳入扫描范围,导致用户留存率的报表数据错了30%,工具完全没识别到这个链路,之前三个月的功夫白忙活。
后来他们调整了策略,不追求全量覆盖,先抓最核心的几个链路:给高管看的经营报表、涉及财务结算的核心数据、合规要求必须留痕的用户数据。这些链路的血缘先做扎实,其他非核心的零散数据,慢慢补。真正有用的血缘系统,从来不是追求链路的完整度,是在出问题的时候,能在十分钟内定位到问题出在哪一层。为了把核心链路的暗节点堵上,他们改了流程:所有涉及核心链路的计算,不管是正式任务还是临时脚本,都必须放到统一的调度平台上跑,不准直接在本地拉数算完就往报表里贴。这么搞了两个月,核心链路的覆盖率到了90%,平时查问题的时间从之前的两三天,降到了最多半小时,投入的成本还不到之前的三分之一。
别听那些卖工具的吹,说什么上了血缘系统就能实现数据全链路可追溯,就能把数据治理的水平提一个档次。这事没那么玄。说白了,数据血缘追踪不是个一次性的项目,是跟你日常做数据的流程绑在一起的。你平时怎么跑数据,怎么同步数据,怎么管数据,血缘就怎么记。要是平时的流程都是乱的,临时脚本满天飞,跨部门的数据随便传,就算你买了最贵的工具,画出来的图再好看,真要出问题的时候,还是得熬通宵找原因。