`
ding__lin
  • 浏览: 20340 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于血缘关系的数据溯源工具(sqllineage.com)

阅读更多

数据溯源是什么?

 它在我们生活中已经随处可见,从平时的外卖美食到菜鸟快递,以及疫情防控使用的健康码...

 准确来说数据溯源是:记录和重现原始数据在整个数据生产的生命周期内,从产生、传播或消亡的演变和处理过程。

 那如何获取这些溯源信息?

 常用的方法是设计时确立了RFID、二维码之类的可追溯的标识在需要追溯的各个业务阶段都可以通过标识查找到对应的数据。这种通常被称为标注法...  还有个常用的方法方向查询法,通过构建逆向函数,由结果推导出原始数据,这个方法的难度是某些计算无法提供逆向函数。 理论上其他的方法的详解可以自行网上搜索查询

 而针对基于SQL作为数据处理逻辑的场景我找到了另一个解决方法:(目前已经可以支持Spark,Oracle理论上可以支持任何基于SQL的计算引擎)

 1. 解析数据血缘关系和修改SQL的计算逻辑和执行计划

 2. 执行修改后的执行计划在获取计算结果的同时,也记录了计算所需的原始数据

这里提供了一个演示用的工具(www.bilibili.com/video/BV17r… 视频介绍)

默认提供了3张数据表方便做简单的功能测试, 执行的SQL被提交给工具后,溯源工具分析并重构;工具默认提供了7个测试样本,包括: join(还可支持on表达式中出现函数等非常规的条件),union/union all,distinct,group by,多层的子查询,窗口函数,自定义的UDTF/UDAF等。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics