马哈鱼数据流生成介绍

2022-05-16

    马哈鱼是当前最流行的数据血缘关系(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://sqlflow.gudusoft.com,你会获得更多的支持与帮助。

    三、参考

    马哈鱼数据血缘分析器: https://sqlflow.gudusoft.com

    马哈鱼数据血缘分析器中文网站: https://www.sqlflow.cn