SQLLineage.com(分析SQL的数据血缘关系)
程序员文章站
2022-03-06 14:59:51
...
数据的生产就像淘金,生产的步骤繁琐还需消耗大量的计算资源。而数据的多样性和差异性使得数据生产不得不不断的迭代处理逻辑, 分层数仓的设计简化了单层数据模型的设计,但增加了额外的计算资源消耗,当出现数据质量问题时更是质控者的噩梦。梳理清楚数据的来源、经过那些处理步骤、数据间存在那些引用和依赖的关系,这些信息归纳起来就是数据的血缘关系。而SQL强大的描述能力被广泛的应用在各种数据工具,分析SQL的AST是获取数据血缘关系的一个重要来源。个人开发了一个分析SQL获取数据血缘关系的小工具:sqllineage.com/demo
数据血缘关系在数据管理,数据追溯,性能优化,增量数据生产方面都能提供价值。
以SQL最简单的优化规则列裁剪为例,列裁剪就是对于没有用到的列就没必要读取已减少IO的消耗。
规则非常简单,但对于特定场景下,特别是分层数仓的设计的数据生产效率有明显的提升。ETL采集的原始数据并不是直接为应用提供服务,每个数据分层负责特定的功能,每个数据层都尽可能的保留了数据信息的同时对特定的数据进行了加工。后续的数据层只需要知道之前数据层的元数据定义,即可完成数据生产。 当需要提供实时需求较高的数据服务时,通过列裁剪规则,标记每个数据层无需访问的数据字段,就可以提高数据生产的效率,而这个过程可以是自动的,无需人工整理。
使用点击列裁剪按钮“⊗” 可以在关系图中标记可裁剪的的数据列(标记为红色⊗)。并导出优化后的SQL(功能待完善)
目前提供的功能还非常简单,由于是利用个人业余时间,时间仓促,不少功能还有待完善,欢迎提出宝贵的改进意见。平时工作较忙,请勿电话,但非常欢迎邮件和微信留言。