当同一个源上有多个复制数据活动时,Azure Purview 如何在 Azure 数据工厂中执行数据沿袭?

How does Azure Purview perform Data Lineage in Azure Data Factory when there are multiple Copy Data Activities on the same Source?

我的具体情况是这样的: Data Factory Pipeline

我在 Azure Blob 存储中有一个 .txt 文件。

  1. 我将 Blob 中的这个文件复制到 Azure SQLDB
  2. 我将同一个文件复制到同一个 blob 容器中的归档位置
  3. 存档后我删除文件

当我触发 Azure 数据工厂中的管道时,Purview 给了我一个数据沿袭,它只显示存档副本 activity,而从未向 Azure SQLDB 显示 BLOB activity。 请参阅此屏幕截图了解沿袭:Purview Data Lineage

当我导航到 Purview 中的 Azure SQLDB 目标时,它说此资产没有可用的数据沿袭。

以下是我所做的或认为可能是原因:

  1. 也许复制活动需要在不同的管道中进行。我对此进行了测试,结果相同
  2. 可能是因为我删除了文件,所以它没有将 Blob 源提取到 Azure SQLDB 副本 activity。我将对此进行测试,但我认为这不太可能,因为它确实获取了 Blob 源,并将其复制到 Blob 存档目标副本 activity
  3. 也许它只选择给定来源的最后一个副本 activity,而不是全部。我对此进行了测试,它并没有改变数据沿袭。我可能需要在 Azure Purview 中做一些事情来“重置”数据沿袭,但我认为它使用最后一个管道 运行 作为源,我注意到它在我分离时确实更新了数据沿袭管道分为 2 个管道(一个用于加载 Azure SQLDB,另一个用于归档 Blob 文件)

我完全坚持这个...我将完全删除存档并看看会发生什么,但根据所有 Microsoft 文档,支持 Azure Blob 和 Azure SQLDB 的数据沿袭,所以这应该正在工作。如果有人有答案或想法,我很想听听。

更新** 我的最新理论是,在您 运行 管道和数据沿袭在 Purview 中刷新之间存在时间差...我将尝试断开数据工厂并重新连接.

更新 #2** 据我所知,删除数据工厂连接并重新连接没有任何作用。我一直在研究如何通过 REST API 删除资产,这显然是在 Purview 中删除 assets/relationships 的唯一方法...我认为我的下一步将是删除 Purview 帐户和存储.

更新 #3*** 即使在启动了一个新的 Purview 帐户之后,沿袭仍然无法将 Blob 显示到 Azure SQLDB。我想知道这是否是因为我拥有的 for each 逻辑,但没有意义,因为存档副本 activity 也在 for each 中。我不知所措。我有其他从 Blob 到 Azure SQLDB 的复制活动有效,但不是这个。

谢谢

经过大量测试。我认为问题是 Purview 不知道如何处理包含额外列的复制活动

无效:With additional columns

作品:Without additional columns

唯一的区别是一个映射了额外的列,而另一个没有。轻微的设计差距...

我已经创建了这个 Azure Purview 功能请求! https://feedback.azure.com/forums/932437-azure-purview/suggestions/42357196-allow-data-lineage-to-be-performed-on-azure-data-f

请为此投票,以便在未来的版本中实施。