找回密码
 会员注册
查看: 22|回复: 0

基于Spline的数据血缘解析

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-10-13 09:02:30 | 显示全部楼层 |阅读模式
基于Spline的数据血缘解析 337 一、前言什么是数据血缘?数据血缘是数据产生、加工、转化,数据之间产生的关系。随着公司业务发展,通过数据血缘,能知道数据的流向,以便我们更好地进行数据治理。二、为什么选择 Spline?大数据平台的作业目前主要有 Spark SQL、PySpark、Spark JAR、数据交换、脚本类型等,最初由于实现难度的问题,考虑解析 SparkPlan( Spark 物理计划)以获取表、字段血缘,但此方案针对 PySpark、Spark JAR 之类的作业自行解析较为复杂,而 Spline 则支持以上类型作业的解析。附:SparkPlan下图为 SparkPlan( Spark 物理计划)中的详情。从 Reference 中可以获取到解析完后依赖的字段信息三、解析通过 Spline REST 文档可见,REST 接口分 Producer 和 Consumer 两部分,Spline Producer 支持把解析完的数据发送到 Kafka,应用可消费 Kafka 数据获取字段血缘数据进行解析,但大数据平台,基于业务需要,字段血缘需要跟作业绑定,若通过消费 Kafka 的方式,无法在获取字段血缘数据的同时跟作业绑定。故,目前使用了调用 Consumer 端接口的方式获取字段血缘。 附,Spline REST 文档1、血缘解析流程Htools:大数据平台的一个调度工具 IData:大数据平台应用层2、基于接口解析血缘解析字段血缘,主要涉及到 Consumer 端的接口,在 Api 接口文档中,我们可以看到各个接口详细的介绍。3、示例以下案例基于 insert into …… select …… 语句的解析(1)执行计划从下图,可以看到一个 insert into …… select …… 语句,被解析成几个步骤,下列截图所对应的步骤,和 Spark 物理计划一致。(2)根据 applicationId 获取 planId(3)根据 planId 获取执行节点信息(4)根据节点 id 获取对应的信息a、根据 Project 节点,获取输入表和输出表之间的字段血缘关系b、根据 Relation 获取字段对应的表。 Hive 表的 Relation 分 HiveTableRelation 和 LogicalRelation 两种,有 Catalog 的 Hive 表是 LogicalRelation,无 Catalog 的 Hive 表是 HiveTableRelation。 为什么要多此一举再调用接口获取表跟字段的对应信息? 在 Project 中获取输入表和输出表之间的对应的字段,无法知道输入表涉及到的字段对应具体的表,所以需要根据 Relation 获取所有字段和表之间的关系,从而根据字段 Id 获取表。(5)根据字段获取依赖的字段从 Project 中获得的字段血缘,一些复杂场景是无法直接获取到的。如在实际中,大量涉及到诸如 with input_tab as( …… ) insert into output_tab as select * from input_tab 的语句,这种语句,根据 REST 接口获取到的字段信息,只能获取到最外层的字段信息,跟内层 sql 依赖的字段信息是脱节的,故,需要当前接口辅助获取内层依赖字段。4、调优表、字段血缘跟作业绑定,故,若作业无变化的情况,表、字段的血缘是不会变化的,在作业调度完后,调用解析血缘的接口时,我们结合当前作业版本和前一次血缘记录中的作业版本进行比对,若作业版本不一致的情况才更新血缘,否则则不操作。5、成果展示如下图所示,可以看到字段 settle_record_id 上下游字段血缘关系。四、总结基于 Spline REST 接口获取表、字段血缘等相关信息,在实际实现过程中,每个作业调用的总接口次数是比较多的,但即便调用次数较多,也在服务器可承受范围内,上线后第一次解析血缘接口调用比较密集,后续只有在作业版本有变化的时候才会重新解析血缘。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:50 , Processed in 0.585113 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表