我在 Azure 数据工厂中有一个场景,需要将 Blob 存储中的日常 CSV 文件与 SQL 数据库中的表进行比较。目标是仅当表中尚不存在行时才将 CSV 中的行复制到 SQL 表中。
问题详情:
尝试过的方法:
遇到的问题:
问题:
任何建议或替代方法将不胜感激。
这是我的数据流的快照:
当您从源数据集和接收器数据集中导入模式时,它会比较导入的数据类型。
我尝试过不从源数据集和接收器数据集中导入任何模式,并且它适用于给定的场景。
从源数据集和接收器数据集中清除架构。
这是示例源数据,其中一些行已存在于目标表中。
ID,Name,mytime,Amount,Fahrenheit,age,role,mydate
8,Laddu,2024-04-26 11:45:00,12.24,95.04,24,Pirate,02-16-00
9,MS,2024-04-27 12:00:00,24.267,10.10,26,No job,05-30-24
10,ABD,2024-04-26 11:45:00,12.24,95.04,24,Pirate,02-16-00
11,Starc,2024-04-26 11:45:00,12.24,95.04,24,Pirate,02-16-00
12,KP,2024-04-26 11:45:00,12.24,95.04,24,Pirate,2024-05-30
13,Rabada,2024-04-26 11:45:00,12.24,95.04,24,Bowler,2023-06-29
7,Rakesh,2024-04-25 10:30:00,123.451,97.16,23,Engineer,2021-12-16
在数据流的两个源中,将投影设置为空。
数据流调试不会识别这些列。因此,在派生列中使用列时,请使用
byName(<column_name>)
。
在这里,对于 exists 转换列,我在两个源中创建了额外的列
Id_temp
,如下所示。
然后,在存在转换中使用这些新列。
接下来,使用基于选择转换规则的映射来删除多余的列。
向其中添加接收器并执行管道中的数据流。
它将给出如下所示的预期结果。