当同一个源上有多个复制数据活动时,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 文件。
- 我将 Blob 中的这个文件复制到 Azure SQLDB
- 我将同一个文件复制到同一个 blob 容器中的归档位置
- 存档后我删除文件
当我触发 Azure 数据工厂中的管道时,Purview 给了我一个数据沿袭,它只显示存档副本 activity,而从未向 Azure SQLDB 显示 BLOB activity。
请参阅此屏幕截图了解沿袭:Purview Data Lineage
当我导航到 Purview 中的 Azure SQLDB 目标时,它说此资产没有可用的数据沿袭。
以下是我所做的或认为可能是原因:
- 也许复制活动需要在不同的管道中进行。我对此进行了测试,结果相同
- 可能是因为我删除了文件,所以它没有将 Blob 源提取到 Azure SQLDB 副本 activity。我将对此进行测试,但我认为这不太可能,因为它确实获取了 Blob 源,并将其复制到 Blob 存档目标副本 activity
- 也许它只选择给定来源的最后一个副本 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
请为此投票,以便在未来的版本中实施。
我的具体情况是这样的: Data Factory Pipeline
我在 Azure Blob 存储中有一个 .txt 文件。
- 我将 Blob 中的这个文件复制到 Azure SQLDB
- 我将同一个文件复制到同一个 blob 容器中的归档位置
- 存档后我删除文件
当我触发 Azure 数据工厂中的管道时,Purview 给了我一个数据沿袭,它只显示存档副本 activity,而从未向 Azure SQLDB 显示 BLOB activity。 请参阅此屏幕截图了解沿袭:Purview Data Lineage
当我导航到 Purview 中的 Azure SQLDB 目标时,它说此资产没有可用的数据沿袭。
以下是我所做的或认为可能是原因:
- 也许复制活动需要在不同的管道中进行。我对此进行了测试,结果相同
- 可能是因为我删除了文件,所以它没有将 Blob 源提取到 Azure SQLDB 副本 activity。我将对此进行测试,但我认为这不太可能,因为它确实获取了 Blob 源,并将其复制到 Blob 存档目标副本 activity
- 也许它只选择给定来源的最后一个副本 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
请为此投票,以便在未来的版本中实施。