抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

血缘项目最容易交付的是一张很大的图:点开一张表,左边几十张上游表,右边几十张下游表,连线铺满屏幕。演示时很直观,真正遇到问题却常常答不出来。

“改这个字段会影响谁”需要字段与表达式;“昨晚这批数据为什么错”需要运行实例、代码版本和输入输出水位;“这张表有哪些上游”用表级关系就够。把三种问题都塞进同一张表级拓扑,图再完整也只能回答资产发现。

Apache Atlas 2.1 的模型本身已经给出几种层次:基础 Process 通过 inputs/outputs 连接 DataSet;Hive 还有 hive_column_lineage,保存字段依赖和 expression;模型里也有 ProcessExecutionhive_process_execution 表达具体执行。关键不在于有没有这些类型,而是采集和查询时是否保留了问题需要的证据。

数据血缘的四层证据粒度

做元数据平台时,很容易先把精力花在资产目录、业务术语和页面分类上。界面做得很完整,任务失败时却还是有人在群里问:这张表谁负责,今天是哪段代码写的,改字段会影响哪些任务?

我更愿意从这些运维问题反推元数据模型。它们有明确答案,也能用一次真实故障检验。平台先把表、任务、实例和运行证据串起来,资产目录才不会只剩一棵需要人工维护的树。

下面用 Apache Atlas 2.1.0 的源码模型做参照。对应提交是 da35519,打包时间在 2020 年 7 月。Atlas 已经提供了实体唯一标识、Process 输入输出、实体变更审计和血缘查询;运行实例仍需要平台自己建模。

面向运维的元数据与运行证据模型