在日常开发中,我们有时需要分析某个数据库中Metadata的血缘关系,以了解其中的表与表,表于视图,表于存储过程等之间的数据血缘关系,人工去分析效率很低并且错误率高,这时就可以使用马哈鱼马哈鱼SQLFLow数据血缘分析器来自动帮我们实现数据的分析,最终以图形化的方式展示血缘关系。
马哈鱼SQLFLow数据血缘分析器是一个数据血缘关系的分析工具,用他可以在线连接到数据库并获取数据库中的 Metadata(DDL),并根据Metadata分析其表,存储过程,视图,触发器等数据的血缘关系(Data Lineage),也提供Java类库工具连接数据库并分析血缘数据。
下面介绍这两种方式如何分析 MySQL数据库中Metadata的数据血缘关系。
初始化测试数据
1,从MySQL官方文档中下载测试数据sakila-simple.sql
2,初始化脚本数据
在线连接数据库方式
连接数据库
进入马哈鱼SQLFLow数据血缘分析器,使用SQLFLow连接到 MySQL 数据库获取sakila库的所有 DDL,如下图,需要填写正确的连接信息:
点击 test connection
按钮测试可否连接成功。
Advanced
在左下角 advanced
选项中,可以指定排除或者包含某些数据,其中的参数含义为:
- excludedDbsSchemas 表示排除某个 Database 或 Schema,格式具体看所连接数据库的架构,比如 MySQL 只有 Database 没有 Schema,所以格式为:
db
。SQLServer 有 Database 和 Schema 架构,格式为:db/schema
- extractedDbsSchemas 表示只包含某个 Database 或 Schema,格式同上
- extractedStoredProcedures 表示只包含某个 Procedure,格式同上,Procedure名称支持*正则匹配,比如MySQL:
db/*
- extractedViews 是只包含某个 view,格式同上,View名称支持*正则匹配,比如MySQL:
db/*
如图:
Setting
在左下角 setting
选项中可以配置一些功能特性,下面是每个设置的说明:
- direct dataflow 表示开启直接血缘关系(fdd)的展示
- indirect dataflow 表示开启间接血缘关系(fdr)展示
- dataflow of count function 表示开启聚合函数的展示
- show intermediate recordset 表示开启中间记录集的展示
- show function 表示开启显示函数
- show transform 表示开启显示数据变换
- show constant 表示开启显示常量
如图:
查看 Metadata 的血缘关系
填写完数据库后点击确定后,在任务列表中可以看到提交的任务,如图:
点击lineage detail按钮后,即可查看导出数据的血缘以及所有的Metadata数据:
点击show ER diagram按钮可查看ER数据图:
也可将血缘数据导出到CSV文件,点击export lineage in csv即可:
Java类库分析方式
下载工具包
下载SQLFlow-Ingester 工具包,解压后目录如下:
sqlflow-ingester 提供了一系列工具,其中exporter用于导出数据库的元数据,submitter用于向 sqlflow server 递交 sql 和 元数据,创建job,生成血缘关系,在SQLFLow平台的UI中查看血缘结果。
导出Metadata
执行命令:
.\exporter.bat -host xxx -port 3306 -db sakila -user xxx -pwd xxx -save D:\\ -dbVendor dbvmysql
命令参数说明:
-dbVendor 数据库类型,mysql为 dbvmysql,dbVendor支持指定版本,用:分割,如mysql5.7,可写成dbvmysql:5.7
-host 数据库主机(ip地址或域名)
-port 端口
-db 数据库名称
-user 数据库登录用户名
-pwd 数据库登录密码
-save 导出元数据保存文件夹,文件名是metadata.json
-extractedDbsSchemas导出指定 schema 下的数据库对象
-excludedDbsSchemas 导出不包括 schema 下的数据库对象
-extractedStoredProcedures 指定存储过程
-extractedViews 指定视图
导出成功:
编写配置文件
在conf目录下编写拉取MySQL数据库Metadata的配置文件,编辑conf目录下config-default.json,如图:
执行命令提交metadata文件到SQLFLow进行分析:
./submitter.bat -meta d:\\metadata.json
查看任务
以上就是自动拉取数据库的 Metadata 并分析血缘关系的使用介绍,关于马哈鱼SQLFLow数据血缘分析器的等多功能,请参考下面链接:
参考
马哈鱼数据血缘关系分析工具中文网站: https://www.sqlflow.cn
马哈鱼数据血缘关系分析工具在线使用:https://sqlflow.gudusoft.com