本文介绍如何使用马哈鱼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 表示开启显示常量
如图:
查看 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 -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 指定视图
导出成功:
编写配置文件
在conf目录下编写拉取SQLSever数据库Metadata的配置文件,编辑conf目录下config-default.json,如图:
执行命令提交metadata文件到SQLFLow进行分析:
./submitter.bat -meta d:\\metadata.json
最终可以在SQLFLow任务界面中查看到上传的Job.
以上就是自动拉取SQLServer数据库的 Metadata 并分析血缘关系的使用介绍。