马哈鱼数据血缘分析器是当前最流行的数据血缘关系(data lineage)管理工具之一,它是一种通过分析SQL脚本来自动发现数据流向的工具。它通过生成一个简洁的图表来显示数据仓库中表/视图和列之间的数据流。支持超过20种流行的数据库,包括 bigquery, couchbase, dax, db2, greenplum, hana, hive, impala, informix, mdx, mysql, netezza, openedge, oracle, postgresql, redshift, snowflake, sqlserver, sybase, teradata, vertica等。只需通过复制、粘贴SQL脚本并单击一个分析按钮,即可立即获得数据流向图,只需单击鼠标即可在图中突出显示数据流,操作简单、显示结果清晰可见。
一、马哈鱼架构介绍
马哈鱼(SQLFlow)结构视图如下,它由客户端、前端、后端分析引擎三个基本组件后成,用户可以通过浏览器将要分析的SQL语句传递给前端,前端进行语法校验及分析参数设定等工作,然后将配置完成的逻辑发送给后端分析引擎,分析引擎生成数据血缘关系模型后交给前端生成图形化展示给用户。
具体结构如下图:
二、常见生成数据流的元素
1、Select
查询是最基本、最常见的结果集生成,它可能来源对象间关联或单个对象,也可能来源于子查询或CET。
SELECT a.empName "eName" FROM scott.emp a Where sal > 1000
目标列“eName”的数据来自scott.emp.empName,所以它生成了一个直接的数据流,如下所示:
scott.emp.empName -> direct -> RS-1."eName"
上面的RS-1是一个选择结果集,它是一个虚拟表,包含查询返回的列;
图示:
2、函数
函数在SQL语句中最常见的元素之一,它在马哈鱼分析中起到了关键性作用,它能将列作为参数返回具体的标量结果集。
select round(salary) as sal from scott.emp
在上述SQL中,从列salary到round函数生成一个直接数据流:
scott.emp.salary -> direct -> round(salary) -> direct -> sal
图示:
3、表达式
表达式类似于函数,它在具体的生成语句中也是广泛存在;
select a/2 ,id from T;
在上述SQL中,从a列计算而来的a/2将作为直接数据流被生产
scott.emp.a -> direct -> RS-2."a/2"
图示:
如果你想了解更多关于马哈鱼的使用及技术资料,请登录马哈鱼数据血缘分析器,你会获得更多的支持与帮助。
参考
马哈鱼数据血缘关系分析工具中文网站: https://www.sqlflow.cn
马哈鱼数据血缘关系分析工具英文网站: https://docs.gudusoft.com
马哈鱼数据血缘关系分析工具在线使用: https://sqlflow.gudusoft.com