我有一个非常简单的ADF管道,可以将数据从本地mongoDB(自托管集成环境)复制到Azure SQL数据库。
我的pipleline能够从mongoDB复制数据并将其插入SQL db。当前,如果我运行管道,则如果运行多次,它将插入重复数据。
我已经使_id列在SQL数据库中具有唯一性,并且由于SQL约束,现在正在运行管道引发和错误,因此不允许它插入记录。
在插入SQL db之前如何检查重复的_id?
我应该使用预复制脚本/存储过程吗?一些指导/说明将有助于在哪里添加额外的步骤。谢谢
Azure Data Factory Data Flow可以帮助您实现:
您可以按照以下步骤操作:
使用Join主动从Cosmos table.id = SQL table.id的两个表(左联接/完全联接/右联接)获取所有数据。
AlterRow表达式可过滤重复的_id,它不是重复的然后插入它。
然后将无重复的列映射到Sink SQL数据库表。
希望这会有所帮助。
您应实施SQL逻辑以消除预复制脚本中的重复项>
目前,我使用存储过程获得了解决方案,就此要求而言,看起来工作量要少得多。