【问题标题】:Data Lineage in SQL ServerSQL Server 中的数据沿袭
【发布时间】:2018-02-16 07:19:13
【问题描述】:

目标:

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

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

为此,作为第 1 阶段,我们希望采用 SQL Server,并希望在 SQL Server 及其数据库内部和之间建立血统。

有没有一种方法可以通过利用实例内部或跨实例的 SQL 分析或事务日志从 SQL 服务器构建/提取(如果可用)数据沿袭(表和列级别)。

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

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

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

提前致谢!

迈丁

【问题讨论】:

  • 您无法通过查询数据所在的数据库来找出数据的来源。您需要将其明确存储在某个地方
  • 那些链接看起来很旧。如果这仍然是一件事,我会感到惊讶
  • 我完全同意您关于查询数据库不会提供任何沿袭信息的观点。但是,我只是在寻找可以用来构建或提取沿袭信息的任何 OOB 功能,而无需构建用于分析 SQL 执行并派生沿袭信息的组件。我更新了我的问题,以便更好地解释自己。
  • 我阅读了更多关于影响和数据沿袭的内容,发现一篇日期为 2010 年的文章,所以我猜它已经被搁置了。
  • 这是一种有趣的方法——分析日志以嗅探数据流。如果您继续这样做,我会建议过去对我有用的东西: 1. 从系统表中获取数据库表、视图、列等的列表; 2. 使用这些搜索词搜索日志、ssis 包以及任何基于文本的内容。这比拿起 SQL 并试图破译它要好得多。我过去使用这种方法为我所有的包和存储过程建立了一个数据字典。

标签: sql-server tsql ssis data-lineage


【解决方案1】:

您可以将数据库结构导出到包含 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    相关资源
    最近更新 更多