繁体   English   中英

ADF 中的复制数据活动不会删除 Azure 表存储中的数据

[英]Copy data activity in ADF is not deleting data in Azure Table Storage

现在,我正在使用 ADF CopyData 活动将数据从 Azure SQL 复制到 Azure 表存储。

它在通过触发 ADF 管道加载数据时插入/替换/更新数据数据。 此操作将通过 CopyData 活动的接收器中的“插入类型”选项来处理。 但是,它不会删除目的地(ATS 表)中的记录。

如何将 Azure SQL 数据与 Azure 表存储同步(也适用于已删除的数据)

在此处输入图像描述

例如:源 SQL 表:员工

Id    Name
1     User1
2     User2

现在,使用此副本数据,这两个数据在 ATS 目标 ATS 表中同步:员工

PartitionKey   RowKey    Timestamp         Name
1              NewGuid   2022-07-22 11:30  User1
2              NewGuid   2022-07-22 11:30  User2

现在,在 Source SQL 表中更新如下,

Id    Name
1     User2
3     User3

现在,Id 2 被删除,Id 1 的 Name 被更新,Id 3 被添加。

再次如果我运行管道,ATS 更新如下,

PartitionKey   RowKey    Timestamp         Name
1              NewGuid   2022-07-22 12:30  User2
2              NewGuid   2022-07-22 11:30  User2
3              NewGuid   2022-07-22 12:30  User3

现在,这里 PartitionKey 2 没有被删除。 但插入和更新已完成。

如何使用复制数据活动同步删除此记录?

您是否尝试过针对这种情况使用存储过程

我复制了这个,我得到了同样的结果。

AFAIK ,复制活动没有从任何目标中删除任何数据。 它将用源数据覆盖目标中的数据
在 Sink 设置中,它也被称为insert type

但是在这里,Azure Table存储只有在新记录的Partition Key和RowKey与Target中的记录匹配时才支持从外部更新或替换数据(我们可以假设它是像旧数据删除一样删除)。

你的最后一行没有发生这种情况。 这就是它不更新的原因。

您可以在此处使用针对此类存储的复制活动提出删除功能请求。

当您的数据较小时,您可以尝试这种手动方法来删除此类记录。

  • 仅为 Table 存储的 RowKey 创建一个新的 Unique Column 将您的常规表 ID 分配给分区键,并将其分配给 rowkey。 因此,每当您想删除旧记录并更新新记录时,请将此旧 RowKey 值赋予它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM