SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动分析SQL里的数据对象,包括database、schema、table、view、column、procedure、function、trigger等等,并且能够分析这些数据对象之间的依赖关系,并将这些依赖关系可视化展现出来。本文将描述SQLFlow的高阶模式——Job任务
什么是Job任务
SQLFlow的Job任务,可以支持多文件,数据库连接等复杂的方式对数据库或者SQL文件进行数据对象依赖关系分析,并且可以查看Job历史记录。
Job任务包含三种分析模式:
1. SQL文件静态分析,支持多个SQL文件,以多文件或者zip包的方式上传到服务端分析
2. 通过数据库连接获取元数据,进而分析数据库各种表、视图、存储过程、Function、Trigger等数据对象直接的依赖关系
3. SQL文件+数据库连接获取元数据方式分析,能提供更精准的SQL依赖关系分析
SQL文件静态分析
该模式和常规的SQL分析类似,属于SQL静态分析,但是用户也可以提供数据库DDL SQL,sqlflow 会通过扫描ddl语句,构建数据库元数据信息,进而能够提供分析的准确性。另外普通的SQL分析只支持300KB大小的sql分析,并且有超时限制,而Job sql文件分析,则没有这个限制。
通过数据库连接分析数据库数据对象依赖关系
该模式可以通过JDBC连接数据库,获取数据库的数据对象信息,以及视图、存储过程、方法、触发器等数据对象的源码,并对这些数据对象进行依赖关系分析,目前已支持的数据库包括:Oracle、Mysql、SQLServer、Progresql、Redshift、Greenplum、Snowflake、Teradata、Netezza等。
数据库连接+SQL文件分析
由于提供了数据库连接,SQLFlow可以获得完整的数据库元数据信息,进而能够更加准确的对SQL进行分析,这对多表Join查询分析非常有帮助,能够准确识别字段所属表
需要说明的是,数据库连接涉及到用户数据安全,需要用户授权,并且数据库密码传输是通过RSA进行加密的,确保传输过程的安全性。
SQLFlow官方入口: https://sqlflow.gudusoft.com