最近因做一个分析SQL语句中的数据和table/column关系的需求,因为SQL语法太过复杂分析过程会很艰难,所以搜寻这种分析SQL数据流的工具,发现了很好用的分析SQL脚本数据流关系的工具SQLFlow,下面介绍一下这款工具。
什么是SQLFlow
SQLFlow是一款专门分析SQL脚本数据流关系的工具,可通过在受控数据环境中(就是指定数据库的连接参数,连接到数据库,分析特定数据库的SQL,目前支持大部分主流数据库)分析SQL脚本来收集数据沿袭信息(数据流)。
SQLFlow的作用
我们知道,数据库中视图(View)的数据来自表(Table)或其他视图,视图中字段(Column)的数据可能来自多个表中多个字段的聚集(aggregation)。 表中的数据也可能通过ETL从外部系统中导入。对于这种从数据的源头经过各个处理环节,到达数据终点的数据链路关系称为数据血缘关系(data lineage)。SQLFlow就是通过分析各种数据库对象的定义(DDL)、DML 语句、ETL/ELT中使用的存储过程(Proceudre,Function)、 触发器(Trigger)和其他 SQL 脚本,给出完整的数据血缘关系,就是数据流关系(data lineage)。
在大型数据仓库中,完整的数据血缘关系可以用来进行数据溯源、表和字段变更的影响分析、数据合规性的证明、数据质量的检查等。
比如,对于财务报表中的统计结果
- 我们如果想知道它是由哪些子系统(采购、生产、销售等)提供的数据汇总而成的?
- 当某个子系统(例如 销售子系统)的表和字段等数据结构发生变化时,可能会影响其它子系统吗?
- 财务报表子系统中的表和字段是否也需要进行相应的改动?
使用SQLFlow就能很快速的解决这些问题,以可视化的图形方式把这些关系呈现在你面前,让你对组织的IT系统中的数据流动一目了然。
如下图:
可以看出SQL语句中所涉及到的数据的流向。
如何使用SQLFlow
- 通过浏览器访问SQLFlow的前端。
- 在浏览器中上传SQL文本或文件。
- 点击分析按钮后,查看数据血缘关系的可视化结果。
- 在浏览器中,以交互形式,查看特定表或视图的完整血缘关系图。
- 用 grabit 工具或 API,提交需要处理的 SQL 文件,然后在浏览器中查看结果,或在自己的代码中对返回的结果做进一步处理。
进一步了解 SQLFlow
- 支持多达21个主流数据库
- Architecture document
感兴趣的联系:Zy2133223