Azure 数据工厂:加载重复数据

问题描述 投票:0回答:1

在 Azure 数据工厂中,如果我们再次收到与上次加载相同的源 CSV 数据以将数据加载到 Target 中,会怎样。

情况如下。

我收到了一个 Blob 存储名称为 data_2023_04_24.csv 的 CSV 文件,其中包含以下数据,

colA,colB 1A、1B

并将此数据复制到 SQL Server 表中(完全刷新)。

第二天,收到相同的文件名data_2023_04_25.csv,其中包含与上述相同的数据。现在我不想进一步运行管道或使管道失败,以便我可以在源和目标中创建具有相同数据的警报。

我们有什么方法可以在 Azure 数据工厂中处理这种情况。

azure-data-factory
1个回答
0
投票

您可以使用以下方法仅将新文件或更新的文件从源复制到 Azure 数据工厂中的接收器。您可以并行使用两个获取元数据活动来获取源和接收器的子项列表。然后,您可以使用 Filter 活动来过滤掉接收器中已存在的文件。然后,您可以使用 For Each 活动来迭代筛选的列表并复制丢失的文件。

步骤:

  • 采取两个获取元数据活动。一个用于源文件列表,另一个用于接收器文件列表。在这两个活动中添加子项目作为参数。

  • 采用过滤器活动并将项目表达式指定为

    @activity('source file list').output.childItems
    。将条件表达式指定为
    @not(contains(activity('sink file list').output.childItems,item()))

  • 然后采用 foreach 活动,并在 foreach 设置中将项目的表达式指定为

    @activity('Filter1').output.Value

  • 在 foreach 内部,添加复制活动以仅将过滤后的文件复制到接收器。

这样,您可以避免在 ADF 中复制重复的文件。

© www.soinside.com 2019 - 2024. All rights reserved.