数据治理中的一个重要基础工作是分析组织中数据的血缘关系。有了完整的数据血缘关系,我们可以用它进行数据溯源、表和字段变更的影响分析、数据合规性的证明、数据质量的检查等。
分析数据血缘的方法主要分为四类
- 自动解析
- 系统跟踪
- 机器学习
- 人工收集
自动解析主要是利用工具解析 SQL 语句、存储过程和 ETL等文件。 本文以 Oracle 为例,来说明如何分析 SQL 和存储过程中的数据血缘。
产生数据血缘的 SQL 语句
- SELECT
- INSERT
- UPDATE
- MERGE
- CREATE VIEW
- CREATE TABLE
- 存储过程
SELECT
可能你会感到奇怪, SELECT 语句没有对数据进行增、改操作,如何会产生数据血缘? 秘密就在于 SELECT 语句中的 select list 部分,在这里,可以对数据进行转换。 以下面这个 SELECT 语句为例:
select sal + commission as totalSal from emp;
我们可以看到,totalSal 字段的数据来自 emp.sal 和 emp.commission,在这里,数据进行了一次转换。 这种在 SELECT 内部产生的数据血缘是临时性的,但是这个 SELECT 语句和 CREATE VIEW 或者 CREATE TABLE 一结合,这个数据血缘就真正落地形成了。例如:
create view v_sal(mySal) as select sal + commission as totalSal from emp;
这个 CREATE VIEW 语句通过 SELECT 形成了 从 emp.sal 和 emp.commission 到 v_sal.mySal 的数据血缘。

本文探讨了在数据治理中如何通过自动解析和分析Oracle SQL语句与存储过程来揭示数据血缘,重点介绍如何使用SQLFlow工具进行可视化和API自动化。涵盖了从SELECT语句到存储过程的实例,以及SQLFlow在数据血缘追踪中的应用。

628

被折叠的 条评论
为什么被折叠?



