自动拉取MySQL数据库Metadata并分析血缘

在日常开发中,我们有时需要分析某个数据库中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