You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中实现数据集差集生成新数据集?

在Azure Data Factory中实现数据集的记录差集操作

可以实现,最直接高效的方式是利用Data Flow的左反连接(Left Anti Join)组件,以下是具体实现步骤:

需求回顾

你需要从Dataset B中剔除与Dataset A完全匹配(Email和Date字段均一致)的记录,得到仅包含B中独有的Dataset C。示例数据如下:

Dataset A

EmailDate
test@gmail.com2023-01-05
test@gmail.com2023-01-07
test@gmail.com2023-01-09

Dataset B

EmailDate
test@gmail.com2023-01-05
test@gmail.com2023-01-07
test@gmail.com2023-01-09
test@gmail.com2023-01-11
test@gmail.com2023-01-15
test@gmail.com2023-01-17

期望结果Dataset C

EmailDate
test@gmail.com2023-01-11
test@gmail.com2023-01-15
test@gmail.com2023-01-17

实现步骤(Data Flow方式)

  1. 创建Data Flow:在ADF中新建一个Data Flow资源。
  2. 添加源数据集:分别将Dataset A和Dataset B作为两个源节点添加到Data Flow中,确保源的连接、格式等配置正确。
  3. 添加Join组件:拖拽Join组件到画布,将Dataset B设为左表,Dataset A设为右表。
  4. 配置连接类型和条件:在Join组件设置中,选择连接类型为Left Anti,设置连接条件为B.Email == A.Email且B.Date == A.Date。
    • Left Anti Join的作用是返回左表中所有无法与右表匹配的记录,正好满足“B减A”的需求。
  5. 配置Sink输出:添加Sink组件,将Join组件的输出连接到Sink,配置Sink指向目标Dataset C(需提前创建好该数据集)。
  6. 运行验证:将Data Flow添加到管道中,运行管道后检查Dataset C的结果是否符合预期。

备选方案(小数据量场景)

如果数据量较小,也可以通过以下方式实现:

  • 使用Lookup活动读取Dataset A的所有记录,将结果作为参数传入Filter活动。
  • 在Filter活动中对Dataset B进行过滤,保留那些不在Lookup结果中的记录,最后输出到Dataset C。
  • 注:此方法仅适合小数据量,大数据量下性能远不如Data Flow。

内容的提问来源于stack exchange,提问作者Konzy262

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 18:22:24