血缘关系指的是表、字段之间的依赖关系,想要获取表和字段的依赖关系,就要回答那个终极哲学问题,表和字段从哪里来,到哪里去。
从哪里来,一般我们的数据仓库数据主要有以下来源:
1、日志表,这种主要是客户端手动埋点或者做埋点sdk,埋点上传服务器,服务器再转发到集群。
2、业务表,这种主要是业务活动中产生业务过程数据,主要通过添加数据库到集群的同步任务,T+1同步到集群。
到哪里去,我们构建数据仓库主要目标是创建数据模型,以指标的系统呈现。
我们现在梳理了两条路线:埋点-》指标 和 业务库-》指标
只需要把两条数据链路每个环节的来源和目标以及来源到目标的过程梳理完成也就形成了数据血缘关系。
分析两条数据链路的环节得到: 埋点-》数据进去数仓-》形成指标,业务库-》数据进去数仓-》形成指标
会发现其实两条链路中只是从数据产生到数据进数据仓库这部分不一样,从进入数仓到形成指标这部分是一致的。
那我们最终只需要分成三个环节去分析数据血缘,埋点-》数据进入数仓、业务库-》数据进入数仓、数据进入数仓-》形成指标
1、埋点-》数据进入数仓
这部分主要血缘关系的梳理主要是梳理埋点和数仓的贴源层关系,分析埋点和数仓贴源层的关系,需要我们做数据埋点的时候形成埋点文档,确认每个埋点对应的数据接入任务以及每个埋点对应数据仓库对应贴源层的表,每一次的埋点方案需要对应的归档管理,或者有对应的埋点管理系统。输出埋点方案包含对应的埋点的上传策略、埋点的传输数据格式、数仓接入数据任务、最终落到数仓表的位置。通过这些内容我们可以知道埋点和数仓贴源层的对应关系。
2、业务库-》数据进入数仓
这部分主要是确认每个数据同步任务的源和目标
3、数据进入数仓-》形成指标
这部分是数仓的建设部分,从数仓的贴源层到最终的数据指标模型,指标加工部分,我们一般使用sql的方式来实现,
就需要我们分析模型构建的sql,分析每一条sql的源表和插入表。
sql分析工具:http://www.sqlxy.com.cn/
合并这三部分我们会最终得到一个完成的数据血缘关系。