SQLLineage为本人独立设计研发,设计之初为了获取SQL的数据血缘关系;之后随着和多个行业的朋友学习和交流,发现数据血缘关系可以为性能优化、批流一体、数据溯源等多个数据生产场景上赋能。
所以SQLLineage努力的方向:
一、数据血缘关系可视化,优化性能,减少对计算资源的消耗。
二、数据溯源,找出每一行数据源头,重现每行结果的计算过程和中间结果。
三、批流一体的SQL转换,利用全量数据模型自动完成增量数据的数据准备、增量计算、结果合并。
工具在引入第三方软件依赖的时候充分考虑了开源协议,依赖组件分别遵循Apache V2、BSD、MIT协议,所以SQLLineage不侵犯任何第三方的权益。
数据血缘关系是数据治理的一个逻辑概念,数据从哪里来、经过哪些处理步骤、数据间存在哪些引用和依赖的关系,这些信息归纳起来就是数据的血缘关系。
进入(✪DataLineage)工具的演示页面输入需要分析的SQL,点击分析按钮就可以可视化显示这条SQL字段级别的血缘关系。
工具目前支持SQL的方言包括Spark、Hive、MySQL、Oracle、SQLServer。Demo只是一个演示工具,在没有数据库元数据的支持的情况下,分析中难免会出现存在歧义的字段。在实际生产中SQLLineage提供了API的调用方式,您可以指定数据库方言,提供元数据的支持,从而获取更准确的数据血缘关系。
数据溯源是记录和重现原始数据在整个数据生产的生命周期产生、传播或消亡的处理过程。通俗来讲就是假设血缘关系是一个严谨的数学公式,溯源就是将实际的数据带入到这个公式中,并记录其中间计算逻辑和过程。
数据溯源需要解决两个技术问题:
一、结果数据每一行记录引用了哪些实际源数据。
二、SQL的执行过程中的中间结果如何获取。