本文介绍如何使用马哈鱼SQLFLow和SQLFLow-Ingester自动拉取SQLServer数据库Metadata并分析Metadata的数据血缘关系。

马哈鱼SQLFLow方式

连接数据库

进入马哈鱼SQLFLow数据血缘分析器,使用SQLFLow连接到 SQLServer 数据库获取指定库的所有 DDL,如下图,需要填写正确的连接信息:

点击 test connection 按钮测试可否连接成功。

Advanced

在左下角 advanced 选项中,可以指定排除或者包含某些数据,其中的参数含义为:

  • excludedDbsSchemas 表示排除某个 Database 或 Schema,格式具体看所连接数据库的架构,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 表示开启显示常量

如图:

此图片的alt属性为空;文件名为image-14.png

查看 Metadata 的血缘关系

填写完数据库后点击确定后,在任务列表中可以看到提交的任务,如图:

点击lineage detail按钮后,即可查看导出数据的血缘以及所有的Metadata数据:

可以只查看表级别关系:

点击show ER diagram按钮可查看ER数据图:

也可将血缘数据导出到CSV文件,点击export lineage in csv即可:

导出的结果:

Java类库分析方式

下载工具包

下载SQLFlow-Ingester 工具包,解压后目录如下:

此图片的alt属性为空;文件名为image-20.png

sqlflow-ingester 提供了一系列工具,其中exporter用于导出数据库的元数据,submitter用于向 sqlflow server 递交 sql 和 元数据,创建job,生成血缘关系,在SQLFLow平台的UI中查看血缘结果。

导出Metadata

执行命令:

.\exporter.bat -host xxx -port 3306 -user xxx -pwd xxx -save D:\\ -dbVendor dbvmssql

命令参数说明:

-dbVendor 数据库类型,sqlserver为 dbvmssql
-host 数据库主机(ip地址或域名)
-port 端口
-db 数据库名称
-user 数据库登录用户名
-pwd  数据库登录密码
-save 导出元数据保存文件夹,文件名是metadata.json
-extractedDbsSchemas导出指定 schema 下的数据库对象
-excludedDbsSchemas 导出不包括 schema 下的数据库对象
-extractedStoredProcedures 指定存储过程
-extractedViews 指定视图

导出成功:

此图片的alt属性为空;文件名为image-21.png

编写配置文件

在conf目录下编写拉取SQLSever数据库Metadata的配置文件,编辑conf目录下config-default.json,如图:

此图片的alt属性为空;文件名为image-22.png

执行命令提交metadata文件到SQLFLow进行分析:

./submitter.bat -meta d:\\metadata.json
此图片的alt属性为空;文件名为image-23.png

最终可以在SQLFLow任务界面中查看到上传的Job.

以上就是自动拉取SQLServer数据库的 Metadata 并分析血缘关系的使用介绍。