Azure Data Factory - 如何通过复制任务实现数据一致性

Azure Data Factor -how to implement data consistency with copy task

使用 Azure 数据工厂实现复制数据任务时处理事务一致性的最佳做法是什么?

例如,将数据从源 sql 服务器数据库成功复制到接收器 sql 服务器数据库后,需要在源中将数据标记为已复制。

  1. 将数据从源复制到暂存table 接收器
  2. 通过存储过程将暂存 table 中的数据合并到最终目的地 table
  3. 将源中的数据标记为已复制

我认为您可以按照此文档进行操作 Incrementally load data

  1. Select水印栏。 Select 源数据存储中每个 table 一列,您可以识别每个 运行 的新记录或更新记录。通常,此选定列(例如 last_modify_time 或 ID)中的数据会在创建或更新行时不断增加。此列中的最大值用作水印。

  2. 准备数据存储来存储水印 value.In 在本教程中,您将水印值存储在 SQL 数据库中。

  3. 创建包含以下活动的管道:
    一种。创建一个 ForEach activity 循环访问作为参数传递给管道的源 table 名称列表。对于每个源 table,它调用以下活动来为该 table.
    执行增量加载 b.创建两个查找活动。使用第一个 Lookup activity 检索最后一个水印值。使用第二个 Lookup activity 检索新的水印值。这些水印值被传递给 Copy activity.
    C。创建一个 Copy activity,它从源数据存储中复制水印列值大于旧水印值且小于新水印值的行。然后,它将增量数据作为新文件从源数据存储复制到 Azure Blob 存储。
    d.创建一个 StoredProcedure activity 更新管道的水印值,下次 运行s。

这是高级解决方案图:

在 ADF 复印 activity 中单击“设置”选项卡。在设置选项卡下,启用“Data consistency verification”和“Enable logging”。数据一致性验证不仅提供从源到目标成功复制的数据,还验证源和目标之间的一致性。

复制后activity完成数据一致性验证提供完整的验证结果。

请参考:click here

将数据从源复制到暂存 使用副本 activity 并将源和汇 tables 配置为副本 activity.

中的源和汇数据集

通过存储过程
将暂存table中的数据合并到最终目的地table 使用存储过程 activity 调用您的存储过程并执行所需的操作。

将源中的数据标记为已复制 成功复制数据后,您可以使用存储过程、数据流或函数在源中引发标志。