azure ADF复制活动中的“上插”选项

8zzbczxx  于 2023-05-29  发布在  其他
关注(0)|答案(2)|浏览(194)

使用“upsert选项”时,我是否应该在拷贝活动结果摘要中将“0”视为“Rows Written”?我的情况是这样的:源表和接收表列完全相同,但用于告诉它如何知道写入行为的Key列是正确的。我已经测试并确保它确实根据我给予它的数据进行插入或更新,但我不明白的是,如果我做了零次更改并继续运行管道,为什么它在Rows Written摘要中不显示“零”?

vdzxcuhz

vdzxcuhz1#

即使源和目标具有相同的数据,rowsWritten也不显示为0的主要原因是:

  • Upsert在目标表中缺少键列值时插入数据,并在目标表中找到键列时更新其他行的值。
  • 因此,它正在修改所有记录,而不管数据中的更改。与SQL Merge一样,没有办法告诉复制活动,如果目标表中已经存在整行,则忽略这种情况。
  • 因此,即使key_column匹配,它也会更新其余列的值,因此被计为写入的行。以下是2种情况的示例
    source和sink行相同:
  • 显示的行:
id,gname
1,Ana
2,Ceb
3,Topias
4,Jerax
6,Miracle

插入全新行时:

  • 源中存在的行是(其中接收器数据如上所述):
id,gname
8,Sumail
9,ATF

w6mmgewl

w6mmgewl2#

Upsert只更新源表和目标表中都存在的记录,如果目标表中不存在而源表中存在,则插入。
不知道为什么在上面的回答中提到“* 它正在修改所有记录,而不管数据的变化。*”这不是真的。

相关问题