zoukankan      html  css  js  c++  java
  • 一款好用的数据血缘关系在线工具--SQLFlow

     

    数据血缘关系(data lineage)

    数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念。数据治理中经常提到血缘分析,血缘分析是保证数据融合的一个手段,通过血缘分析实现数据融合处理的可追溯。数据血缘是指数据产生的链路,直白点说,就是我们这个数据是怎么来的,经过了哪些过程和阶段。

    SQLFlow是什么? 

    SQLFlow 通过分析各种数据库对象定义(DDL)语句、数据操作(DML) 语句、ETL/ELT中使用的存储过程(Proceudre,Function)、 触发器(Trigger)和其他 SQL 脚本,给出完整的数据血缘关系。它不仅可以展现对象间的关系,也可以帮你提取表的字段。

    参考链接:https://sqlflow.gudusoft.com/?utm_source=cnblogs&utm_medium=blog&utm_campaign=my-nick-name#/

    示例说明

    新建表

    CREATE TABLE Test1(ID INT,NAME VARCHAR(36));

    CREATE TABLE Test2(ID INT,NAME VARCHAR(36));

    新建视图

    CREATE VIEW v_test1 AS SELECT A.NAME FROM Test1 A;

    CREATE VIEW v_test2 AS SELECT A.* FROM Test1 A,Test2 B WHERE A.ID=B.ID;

    CREATE VIEW v_test3 AS SELECT A.*,b.* FROM Test1 A,Test2 B WHERE A.ID=B.ID;

    默认情况下仅显示Dataflow,即数据流,可以从图中清晰的看到每个视图中的具体列是由哪里流过来的。

     

    l  视图v_test1仅包含来源于Test1的name列;

    l  视图v_test2包含来源于Test1的ID,name列,虽在视图定义中和Test2进行了关联,但是由于数据全部来源于Test1,所以在Dataflow中并不体现;

    l  视图v_test3包含来源于Test1和Test2中所有列。

    看到此处,您可能疑惑,视图v_test2展现的虽然只是来源于Test1的数据,但是如果您想了解Test1和Test2是否有关联逻辑,该如何做?

    打开【Setting】-【impact】选项,可以看到具体的表间的逻辑关系。

     

    说明:

    l  SQLFlow数据流使用【实线】显示,逻辑关系使用【虚线】显示;

    l  此时的关系集合中多了一个伪列(PseudoRows),用于表示该数据集合是由多表关联而来。

    此时您能够更加清晰的看到数据血缘关系以及各原表间的关联关系。

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/syforacle/p/SQLflow.html
Copyright © 2011-2022 走看看