ADF复制数据活动-在插入SQL db之前检查重复记录

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

我有一个非常简单的ADF管道,可以将数据从本地mongoDB(自托管集成环境)复制到Azure SQL数据库。

我的pipleline能够从mongoDB复制数据并将其插入SQL db。当前,如果我运行管道,则如果运行多次,它将插入重复数据。

我已经使_id列在SQL数据库中具有唯一性,并且由于SQL约束,现在正在运行管道引发和错误,因此不允许它插入记录。

在插入SQL db之前如何检查重复的_id?

我应该使用预复制脚本/存储过程吗?一些指导/说明将有助于在哪里添加额外的步骤。谢谢

azure azure-sql-database azure-data-factory azure-data-factory-2
3个回答
2
投票

Azure Data Factory Data Flow可以帮助您实现:

enter image description here

您可以按照以下步骤操作:

  1. 添加两个源:Cosmos db表(源1)和SQL数据库表(源2)。
  2. 使用Join主动从Cosmos table.id = SQL table.id的两个表(左联接/完全联接/右联接)获取所有数据。enter image description here

  3. AlterRow表达式可过滤重复的_id,它不是重复的然后插入它。enter image description here

  4. 然后将无重复的列映射到Sink SQL数据库表。

希望这会有所帮助。


1
投票

您应实施SQL逻辑以消除预复制脚本enter image description here中的重复项>


0
投票

目前,我使用存储过程获得了解决方案,就此要求而言,看起来工作量要少得多。

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