※关于SQL𝔏𝔦𝔫𝔢𝔞𝔤𝔢

◈简介

SQLLineage为本人独立设计研发,设计之初为了方便自己能获取SQL的数据血缘关系;之后随着和多个行业的朋友学习和交流,发现数据血缘关系可以为性能优化、批流一体、数据溯源等多个功能领域上赋能。
所以SQLLineage有了自己努力的方向:
一、数据血缘关系可视化,优化性能,减少对计算资源的消耗。
二、数据溯源,可逆向计算每行结果数据的源数据集,可重现每行结果的计算过程和中间结果。
三、批流一体的SQL转换,利用全量数据模型自动完成增量数据的数据准备、增量计算、结果合并。
工具在引入第三方软件依赖的时候充分考虑了开源协议,依赖组件分别遵循Apache V2、BSD、MIT协议,所以SQLLineage不侵犯任何第三方的权益。


什么是数据血缘关系?

数据血缘关系是数据治理的一个逻辑概念,数据从哪里来、经过哪些处理步骤、数据间存在哪些引用和依赖的关系,这些信息归纳起来就是数据的血缘关系。


SQLLineage如何获取SQL中的血缘关系

进入(✪Demo)工具的演示页面输入需要分析的SQL,点击分析按钮就可以可视化显示这条SQL字段级别的血缘关系。
工具目前支持SQL的方言包括Spark、Hive、MySQL、Oracle、SQLServer。Demo只是一个演示工具,在没有数据库元数据的支持的情况下,分析中难免会出现存在歧义的字段。在实际生产中SQLLineage提供了API的调用方式,您可以指定数据库方言,提供元数据的支持,从而获取更准确的数据血缘关系。


什么数据溯源?

数据溯源是记录和重现原始数据在整个数据生产的生命周期产生、传播或消亡的处理过程。通俗来讲就是假设血缘关系是一个严谨的数学公式,溯源就是将实际的数据带入到这个公式中,并记录其中间计算逻辑和过程。

数据溯源需要解决两个技术问题:
一、结果数据每一行记录引用了哪些实际源数据。
二、SQL的执行过程中的中间结果如何获取。