数据治理--数据血缘模型【lineage model】的概念及三个层级

数据血缘关系描述了数据在处理过程中的来源与影响,包括表、视图、函数等实体及其关系。本文通过SQL示例解释了数据血缘的建立,并介绍了不同层次的数据血缘模型,如字段级和表级血缘。同时,提到了一些工具,如SQLLineage和SQLFlow,用于分析和展示数据血缘。数据血缘对于理解和维护复杂数据流程至关重要,但完整的模型可能过于详尽,不适合直接展示给用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据血缘

数据血缘关系:数据血缘关系是指数据在产生、处理、流转到消亡过程中,数据之间形成的一种类似于人类社会血缘关系的关系。

数据血缘模型【lineage model】中的实体包括表、列、函数、RESULTSET、关系和其他实体。实体和关系的组合显示了从一个表/列到其他表/列的血缘

如以下SQL解析产生的数据血缘如下:

针对员工表创建一个视图,针对NYC城市的员工统计如下信息:

  • 每个部门的员工数 与 总员工数的比值
  • 每个部门的工资数 与 总工资数的比例
CREATE VIEW vsal AS SELECT a.deptno "Department",
a.num_emp / b.total_count "Employees",
a.sal_sum / b.total_sal "Salary" 
FROM
	( SELECT deptno, Count( ) num_emp, SUM( sal ) sal_sum FROM scott.emp WHERE city = 'NYC' GROUP BY deptno ) a,
	( SELECT Count( ) total_count, SUM( sal ) total_sal FROM scott.emp WHERE city = 'NYC' ) b

在这里插入图片描述
数据血缘涉及的实体、关系如下:

  • table 表
  • view 视图
  • resultset 结果集
  • relation 关系
    • target element 源
    • source element 目标
  • process 处理过程(SQL statement)
  • column 列、字段
  • variable 变量:scalar、cursor、record
  • procedure 存储过程:argument 参数
  • path 路径
  • error 错误

数据血缘的三个层级

完整的数据血缘模型

完整的数据血缘模型包括所有的详细信息,例如在SELECT语句中生成的RESULT SET、用于根据输入列计算新列值的FUNCTION CALL、用于将数据从一列转换到另一列的CASE EXPRESSION等等

这个完整的数据血缘模型是所有其他高级血缘模型的基础,这些高级血缘模型通过省略或聚合模型中的某些关系和实体而只包含该完整模型中的一些血缘

更高层次的模型不仅删除一些关系和实体,而且合并一些关系来创建新的关系。在高级模型中引入的最重要的实体是PROCESS,它是一个执行转换的SQL查询。**
高级模型使用SQL查询作为最小单元,告诉您数据是如何从一个表/列传输到另一个表/列的。
另一方面,完整的模型告诉您在SQL查询中数据是如何传输的。

完整的数据血缘模型不适合展示给用户:

  • 包含数千个实体的图表和关系是混乱的,几乎不可能在一张图片中展示。
  • 分析所有详细信息是费时费力的

实体类型

Table, view, column, process(SQL statement), resultset, function, variale, path.
PseudoRows column:表示结果集中的行数

关系类型

  • fdd : 目标实体的数据来自源实体
  • fdr : 源列的数据将影响选择列表中结果集的行号,或者影响aggreate函数的结果值。
    示例如下:
    SELECT a.empName “eName” FROM scott.emp a Where sal > 1000
    sal -> fdr -> resultset.PseudoRows
  • join : 在连接条件中建立2个或更多列之间的链接

字段级别的血缘

该模型只包含三种实体:

  • 源列
  • 目标列
  • SQL语句(模型中称之为PROCESS)
  • 它们之间的关系。

表级别的血缘

该模型只包含三种实体:

  • 源表
  • 目标表
  • SQL语句(模型中称之为PROCESS)
  • 它们之间的关系

基于解析SQL的表间血缘关系工具

sqllineage

SQL Lineage Analysis Tool powered by Python,只提供表级别的血缘分析
源码地址:https://github.com/reata/sqllineage
安装:pip install sqllineage
使用:sqllineage -e “select * from tabA”
sqllineage -f demo.sql

在线工具sqlflow

https://sqlflow.gudusoft.com/#/
著名的sqlparser: http://www.sqlparser.com/index.php
访问地址(提供了解析SQL并展示血缘关系的小工具):https://sqlflow.gudusoft.com/#/
能提供字段及表级别的血缘分析

2.7.5.数据模型管理模块 治理平台提供数据建模工具,此功能支持业务资料类数据,统计类数据和管理数据在原始库、主题库和专题库的建模;建模方式以可视化、可拖拽的方式实现,同时支持写建表语句建模。数据建模功能支持引用企业制定的标准,保障标准落地。 针对中咨公司在不同业务发展阶段建设的一个个竖井式系统,最大的挑战莫过于系统集成过程中数据模型的不一致,解决这个问题的唯一方法就是从全局入手,设计标准化数据模型,构建统一的数据模型管控体系,数据模型管理工具负责对企业数据模型的管理、比对、分析、展示提供技术支撑,需要提供统一、多系统、基于多团队并行协作的数据模型管理。解决企业数据模型管理分散,无统一的企业数据模型视图、数据模型无有效的管控过程,数据模型标准设计无法有效落地、数据模型设计与系统实现出现偏差等多种问题。该工具针对数据模型管理职能而开发,需具备以下基础功能: 数据模型设计:支持对于新建系统的正向建模能力,还应支持对原有系统的逆向工程能力,通过对数据模型进行标准化设计,能够将数据模型与整个企业架构保持一致,从源头上提高企业数据的一致性。支持实体模型数据项的多种定义方式,既能来源于数据标准,又能参考其他实体模型数据项。支持可视化定义实体模型基本信息、数据权责、遵循标准、数据来源、物理表、标签、数据安全等信息,同时支持模版导入方式。支持可视化定义模型结构及其关联关系,支持引用数据标准、数据实体形成逻辑模型,支持通过可视化界面实体化逻辑模型至指定数据库中生成物理模型模型可视化:支持以血缘关系或者地图的方式全方位查看实体模型,包括但不限于实体模型基本信息、数据权责、遵循标准、数据来源、物理表、标签、数据安全等信息。支持按列、评测维度、检查方法、修正情况等维度查看数据实体情况。 根据这些需求开发功能
04-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

enjoy编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值