SQL解析工具
# 一、SQLFlow
# 1. 项目简介
数据库中视图(View)的数据来自表(Table)或其他视图,视图中字段(Column)的数据可能来自多个表中多个字段的聚集(aggregation)。 表中的数据可能通过ETL从外部系统中导入。这种从数据的源头经过各个处理环节,到达数据终点的数据链路关系称为数据血缘关系(data lineage)。
SQLFlow 通过分析各种数据库对象的定义(DDL)、DML 语句、ETL/ELT中使用的存储过程(Proceudre,Function)、 触发器(Trigger)和其他 SQL 脚本,给出完整的数据血缘关系。
在大型数据仓库中,完整的数据血缘关系可以用来进行数据溯源、表和字段变更的影响分析、数据合规性的证明、数据质量的检查等。
# 2. 血统分析工具
参数
参数 | 描述 |
---|---|
/f | SQL文件的完整路径 |
/d | 目录的完整路径包括SQL文件 |
/j | 返回包含连接关系的结果 |
/s | 简单输出,忽略中间结果 |
/topselectlist | 带有顶部select结果的简单输出 |
/i | 与/s参数类似,但将保留SQL函数生成的结果集 |
/if | 保留所有中间结果集,但删除SQL函数生成的结果集 |
/ic | 忽略输出中的坐标 |
/lof | 将孤儿列(没有指定表的列)链接到第一个表 |
/traceView | 只输出源表和视图的名称,忽略所有中间数据 |
/text | 此选项仅使用 /s,在文本模式下输出列依赖关系 |
/json | 打印JSON格式输出 |
/stat | 输出分析统计信息 |
/tableLineage [/csv] | 输出表级别的SQL血统 |
/csv | 用csv方式输出列级别血统关系 |
/t | 设置数据库类型,支持 access,bigquery,couchbase,dax,db2,greenplum,hana,hive,impala,informix,mdx,mssql,sqlserver,mysql,netezza,odbc,openedge,oracle,postgresql,postgres,redshift,snowflake,sybase,teradata,soql,vertica等,默认值为oracle |
/o | 将输出流写入指定的文件 |
/log | 生成dataflow.log文件以记录日志信息 |
/env | 指定一个元数据Json来获取数据库元数据信息 |
/transform | 输出关系转换代码 |
/coor | 输出关系变换坐标,但不是代码 |
/defaultDatabase | specify the default schema. |
/defaultSchema | specify the default schema. |
/showImplicitSchema | show implicit schema. |
编辑 (opens new window)
上次更新: 2022/08/29, 12:56:39