马哈鱼数据血缘分析工具(英文名称为 Gudu SQLFlow )是一款用于分析 SQL 语句,并发现其中数据血缘关系的分析软件,经常和元数据管理工具一起使用,是企业数据治理的基础工具。
如果你对 SQL 语言不熟悉,那么本文可能不适合你阅读。
阅读本文无需事先有数据血缘相关的知识,只要把数据血缘关系简单的理解为数据库中两个或多个表之间的数据依赖关系即可。
我们通过分析下面的 SQL 语句,来看看如何梳理出各个表/视图间的数据依赖关系。
INSERT INTO deptsal
(dept_no,
dept_name,
salary)
SELECT d.deptno,
d.dname,
SUM(e.sal + Nvl(e.comm, 0)) AS sal
FROM dept d
left join (SELECT *
FROM emp
WHERE hiredate > DATE '1980-01-01') e
ON e.deptno = d.deptno
GROUP BY d.deptno,
d.dname;
通过分析以上 INSERT SQL 语句,我们可以知道
deptsal 表的数据来源于 dept 和 emp 表。进一步,字段级别的数据依赖(数据血缘)为:
马哈鱼数据血缘分析软件通过 Web 界面或 Rest API,可以对单个 SQL 语句,多个 SQL 文件,连接到数据库来实时为你分析数据血缘关系。还可以分析 Redshift log, Snowflake query history, DBT 脚本等不同的数据源,快速的发现企业数据平台中的数据血缘关系。
这篇文章我们仅介绍马哈鱼数据血缘分析软件最简单的一种使用方法,只要简单的三步,马上可以从复杂的 SQL 语句中发现完整清晰的数据血缘关系。
复制粘贴需要分析的 SQL 语句到马哈鱼数据血缘分析软件中的 SQL Editor中。
选择该 SQL 语句对应的数据库类型,以帮助马哈鱼数据血缘分析软件准确的分析输入的 SQL 语句。
点击 visualize 按钮,分析输入的 SQL 语句。
完成以上三步,你就可以在右侧的主界面中看到图形化、可交互式的非常详细的数据血缘关系结果,并可以点击选择感兴趣的表、视图、字段等进行进一步的查看。
马哈鱼数据血缘分析软件提供了丰富的参数来按照你的需求,个性化的输出不同的数据血缘关系。
这里,我们仅介绍一个参数以展示马哈鱼数据血缘分析软件的强大功能,其他参数的使用可以参考相关文档。
show transform 参数用来显示 SQL 语句中进行数据转换的表达式,即目标字段的数据是哪些源数据字段通过哪个表达式转换来的。例如:
SUM(e.sal + Nvl(e.comm, 0)) AS sal
我们可以知道 sal 字段的数据通过 SUM(e.sal + Nvl(e.comm, 0)) 表达式转换而来,源数据字段为 sal 和 comm。
通过打开 show transform 参数,我们可以方便的看到这个转换过程对应的表达式。
通过在马哈鱼数据血缘分析软件的 SQL Editor 中输入 SQL 语句,可以快速分析 SQL 语句的数据血缘关系,并了解马哈鱼数据血缘分析软件的各项功能,熟悉数据血缘的基本概念。但马哈鱼数据血缘分析软件的还有更多的功能以满足企业数据治理的需求:
在代码编辑框输入需要分析的 SQL 代码,点击 dbvendor 菜单选择数据库,点击 visualize 按钮或者 join 按钮,可以绘制对应的图像。
点击 dbvendor 菜单选择数据库后,点击 sample sql 可以在代码编辑框中获得这个 dbvendor对应的示例 SQL。
上传一个或多个文件。或者连接数据库,在后台创建一个 job,当 job 处理成功后可以获得对应的结果。
登录按钮,已支持多用户。目前登录功能仅在 SQLFlow SaaS 版本中支持。(https://sqlflow.gudusoft.com)。
显示分析 SQL 后获得的 schema 结构。在database、schema、table上点击鼠标右键,可以 visualize 获得选中对象的数据血缘。
在 main diagram panel 中显示的数据血缘关系图为交互式图形,可以进行更有针对性的操作,获取感兴趣的数据。例如:鼠标左键点击某一列可以固定关联关系,点击cancel可以取消。
鼠标右键点击 table lineage、column lineage 可以显示表或列的关联关系,点击cancel可以取消。
更多内容可访问马哈鱼数据血缘分析软件的官网 https://sqlflow.gudusoft.com 进行体验。