SQL Server中的数据沿袭

时间:2018-02-16 07:19:14

标签: sql-server tsql ssis data-lineage

目标:

让我们想到一个大型企业,我们拥有异构数据存储,例如SQL服务器,No-SQL存储,大数据存储,如ADL,ADF ......等,分布在不同的业务组中。

我们的目标是在企业级别构建一个沿袭服务,这将提供有关企业内不同数据存储实例之间的数据沿袭的见解。这将有助于我们深入了解企业内的数据扩散。

为此,作为第1阶段,我们想要使用SQL服务器,并希望在SQL服务器和它的数据库之间和之间构建谱系。

我们是否可以通过利用实例内部或跨实例的SQL分析或事务日志,从SQL服务器构建/提取(如果可用)数据沿袭(表和列级别)。

我查看了Determining Impact and Data Lineage,看起来SQL服务器应该启用Dependency Services

作为企业级服务,我可能有权访问SQL Server,并且在启用任何服务时可能无法控制sql server实例。

任何人都可以分享有关在SQL Server内部或跨SQL Server构建或提取数据沿袭的任何见解或经验。

提前致谢!

Mydeen

1 个答案:

答案 0 :(得分:0)

您可以将数据库结构导出到包含CREATE TABLE / CREATE VIEW /的SQL文件中 CREATE PROCEDURE和其他SQL语句。然后使用SQL解析器分析这些脚本,以从这些SQL脚本中获取元数据,并建立表/列的数据沿袭。

以该SQL为例:

create view deptsal (dept_no, dept_name, salary)
as
SELECT d.deptno, 
       d.dname, 
       SUM(e.sal + Nvl(e.comm, 0)) AS sal 
FROM   dept d 
       left join (SELECT * 
                  FROM   emp 
                  WHERE  hiredate > DATE '1980-01-01') e 
              ON e.deptno = d.deptno 
GROUP  BY d.deptno, 
          d.dname;

您将获得如下数据流:deptsal.salary取决于emp.sal,emp.com