Azure DataFlow中使用Join同步新增数据的异常问题解决
解决仅同步源表中目标表不存在的记录问题
问题核心
你需要将tbl_1中tbl_2不存在的Submission_id(A00_5、A00_6、A00_7)同步到tbl_2,但当前Join+AlterRow配置输出了所有Submission_id,原因是过滤逻辑有误。
修正步骤
调整Join组件连接类型
设置为左连接(Left Join),关联条件用tbl_1.Submission_id = tbl_2.Submission_id,确保保留tbl_1的所有记录,同时匹配tbl_2中存在的对应记录,不存在的记录会在tbl_2字段位置返回null。修改AlterRow组件过滤条件
把原来的notEquals(DC__Submission_ID_BigInt, SrcStgDestination@{_Submission_ID})替换为isNull(SrcStgDestination@{_Submission_ID})。- 逻辑说明:当tbl_2中不存在对应Submission_id时,其对应的
SrcStgDestination@{_Submission_ID}字段值为null,用isNull判断就能精准筛选出这类需要同步的记录。 - 同时确保AlterRow组件对符合条件的标记为
Insert操作,其余记录标记为Skip,避免无效数据流入目标表。
- 逻辑说明:当tbl_2中不存在对应Submission_id时,其对应的
为什么原条件失效
原条件判断的是两个Submission_id字段值不等,这会把源表和目标表Submission_id相同但其他字段不一致的记录也纳入输出,完全偏离了你只同步目标表无对应ID记录的需求。
内容的提问来源于stack exchange,提问作者Daleman
相关产品推荐
相关产品推荐

