首页 > 解决方案 > Azure Data Factor - 如何实现与复制任务的数据一致性

问题描述

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

例如,在将数据从源 sql server 数据库成功复制到 sink sql server 数据库后,需要在源中将数据标记为已复制。

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

标签: azureazure-data-factory

解决方案


我认为您可以按照此文档增量加载数据

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

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

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

这是高级解决方案图: 在此处输入图像描述


推荐阅读