在前面的文章中,有介绍过中小型公司如何搭建,也介绍过主数据的重要性。数据仓库建立起来以后,其实数据仓库本身也是属于一份资产,也是需要手段来进行管理的。数据仓库建立起来以后,我怎么知道里面存放了哪些实体表,实体表之间又是什么关系。这时候元数据就变得很重要了。
元数据管理
元数据最常见的定义是“关于数据的数据”。可以归类为元数据的信息范围很广,不仅包括技术和业务流程、数据规则和约束,还包括逻辑数据结构与物理数据结构等。
元数据的范围虽然很广,但是在这里只讨论数据仓库本身的元数据,甚至更窄一点,只讨论数据仓库本身的表,还有表之间的关系。
在创建数据仓库的同时,数据字典就需要同时建立起来。从名字上看就可以看得出来,这个描述还是很形象的。说到字典,大家自然而然地就会想到新华字典。是的,数据字典跟新华字典非常的相似。在数据字典中收集了数据仓库里所有的表,表结构,字段描述等等。在数据字典中可以很方便地检索到具体的每张表。点开每张表就可以看到表相关的详细信息,像具体的表名,表描述,字段和字段描述都能够清晰地查到。
有了数据字典就可以很方便地知道数据仓库里到底有多少表,这些表的具体含义是什么。更甚至可以知道这些表的数据从哪里来,到哪里去。说到这里,就不得不说数据的血缘关系了。
血缘关系的重要性
数据的血缘关系就是用来表示数据从哪里来,到哪里去的。一般这个图的显示范围就是数据仓库内部,即从进入数据仓库到离开数据仓库。离开了数据仓库以后就不是这个数据血缘图的范围了。
有了这个图以后,我们就可以很方便地进行数据溯源。在数据仓库的维护过程中如果表结构有变化的话,需要分析具体的关联影响,也就是这个改动会对下游哪些表有影响。有了血缘关系以后,就只要在这个血缘关系中把所有相关的下游清单拉取出来,然后通知相关的下游责任方就可以了。如果没有这个血缘关系的话,那一旦有表结构的变化,需要通知下游的话,那就只能凭经验了。而人的经验不可能时时都能记得住的。这就导致会有遗漏,一旦没有通知到位,那变更到生产就有可能会造成生产事故。这时候问题就可能会被直接放大了。
对于一些重要的指标,是一定要保证不能出问题的。所以每次的改动,关联影响分析是一定要做到位的。甚至在上生产之前需要经过多次演练,才敢投产到生产上面去。这时一个准确可信的血缘关系就显得非常重要了。
既然血缘关系这么重要,那么血缘关系又从哪里来呢?
如何获取血缘关系
血缘关系的获取其实可以从三方面取得。一是数据加工的过程,二是数据的最终展示,三是数据的对外提供。
1.数据加工过程
数据加工的过程就是指标的ETL过程。在数据仓库中,每个ETL程序所处理的都是数据表与表之间的数据加工。也就是根据具体的业务要求把相关的表通过关联,以及一定的过滤条件和不同的加工口径处理。在这个程序中简化之后就可以区分出来源表和目标表。把这个来源表和目标表给识别出来,形成关系,这就是血缘关系了。所以说ETL过程中的血缘关系是从ETL程序里面识别出来的。
这里还涉及到一个问题,生产中的ETL程序不一定是全都生效的。还有一些是上了生产,但是因为各种原因禁用不再执行了的程序。那具体哪些是生效哪些不生效又要怎么识别呢?这就不得不提到调度系统了。ETL程序开发出来以后,是需要有一个系统可以定时执行这些ETL程序的。这个系统就是调度系统了。虽然不同公司可能会有不同的叫法,但是实现的功能都是一样的。
调度系统需要保证ETL程序能够定时运行,同时还需要控制ETL程序之间的前后依赖关系。因为ETL加工过程中一般都是需要从ODS-DWD-DWS-ADS一条线执行下来的。每一层是一个甚至多个ETL程序,因此就需要等前一步执行完成后才能执行下一层的程序。而调度系统的功能就是对这些程序的依赖关系进行控制。
回到刚刚的问题,具体哪些程序生效,通过调度系统就可以很清晰的知道。因为是否生效都是通过调度系统来控制的。只有生效的程序才会正常执行,对于已经失效了的程序是不会再执行的。
2. 数据的最终展示数据的最终展示指的就是报表展示了。报表展示也是有独立的系统进行处理的,例如,Fine BI、水晶球、Quick BI等等。
而报表展示工具的数据也是数据仓库里的表来的。报表展示工具会链接到数据仓库所在的数据库。一般会先创建数据集,数据集就是基于一张表或多张表构成的一段SQL脚本。那很明显的,血缘关系就是把对应报表和数据集里引用到的表的关系记录下来。然后就可以把这个关系存进血缘关系平台供大家使用了。
而这个血缘关系就可以用来查询数据仓库中的表被哪些报表引用到。
3. 数据的对外提供
数据的对外提供,一般来说就是指的接口。数据仓库对外提供数据,除了利用ETL程序推送到外围数据库以外。还有就是开发出对应的接口提供给别的系统进行调用了。
对推送到外围数据库的程序,在数据加工过程中就可以记录下来了。而对于对外提供接口的方式,因为接口名称和表也是形成了对应的关系的。所以把接口名称和对应的表关系记录下来存进血缘关系平台,这样也可以很方便地供大家进行使用了。
通过以上三种方式把数据血缘关系都记录下来放到元数据系统里,一旦有表结构或者业务逻辑的变更,就可以到数据血缘系统里分析关联影响,然后通知到相关方一起变更了。
总结
数据血缘关系作为数据仓库治理的核心能力,其重要性贯穿于数据生命周期的全链路管理。通过建立元数据系统(如数据字典)与血缘关系图谱,企业能够清晰掌握数据从源头到消费的完整流动路径,实现数据资产的透明化与可追溯性。在实际应用中,血缘关系的获取需覆盖三个关键环节:
数据加工过程:通过解析ETL程序与调度系统的依赖关系,识别生效的源表与目标表关联,避免因程序失效导致的血缘断层;
数据展示层:整合BI工具中的数据集与报表引用关系,追踪数据在分析场景中的实际使用路径;
数据接口服务:记录对外接口与底层表的映射,确保外部系统调用时的数据一致性。
血缘关系的核心价值在于其治理赋能:
风险防控:表结构变更时,通过血缘图谱快速定位下游影响范围(如关联报表、接口),减少生产事故风险;
质量溯源:当指标异常时,逆向追溯至原始数据源,精准定位清洗、转换中的逻辑漏洞;
合规支撑:满足金融、医疗等行业的审计要求,提供数据流动合规性证明。
未来,随着自动化工具(如SQL解析引擎)与AI技术的融合,血缘关系管理将向智能化与实时化演进。例如,通过机器学习自动识别复杂类型字段的血缘链路,或结合实时监控实现血缘动态更新。企业需将血缘关系纳入数据治理体系,构建从元数据管理到业务决策的闭环,最终实现数据资产的可信、可控与可复用。
领取专属 10元无门槛券
私享最新 技术干货