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

求助:ADF数据流预览正常,Azure Blob存储的CSV出现重复记录

排查ADF数据流左连接后重复记录问题

1. 检查左连接键的唯一性

  • 左连接产生重复的核心原因通常是右侧数据源的连接键不唯一:左表单条记录会与右表所有匹配的重复键记录关联,直接导致结果条数翻倍。比如左表1条记录,右表同连接键有3条,左连后会生成3条重复记录。
  • 对每个被连接的数据源做验证:用聚合转换按连接键分组计数,筛选计数>1的记录,确认是否存在重复键。

2. 校验连接逻辑的合理性

  • 检查连接顺序与条件:多表左连时,如果中间某一步的连接条件过宽(比如用非唯一键、多键组合不全),会导致中间结果先出现重复,后续连接会进一步放大重复次数。
  • 确认连接类型:每个连接转换的类型是否确实为左外连接,避免误选其他连接类型导致的异常关联(预览正常的话概率较低,但需排查)。

3. 排查分区与并行执行配置

  • 对齐连接双方的分区策略:如果左右表的分区键不匹配,ADF可能触发跨分区的笛卡尔积关联,引发重复。比如左表按ID分区,右表按日期分区,连接时无法精准匹配分区,会产生冗余关联。
  • 关闭允许笛卡尔积选项:在连接转换的设置中,确保该选项处于关闭状态(默认关闭,误开后会导致全量无差别匹配)。

4. 对比预览与全量数据的差异

  • 预览用的是小样本数据,可能未覆盖导致重复的场景(比如右表的重复键仅存在于全量数据中)。抽取运行时的全量数据样本到预览环节测试,看是否能复现重复问题,快速定位是数据本身还是逻辑问题。

5. 增加前置/后置去重步骤

  • 前置去重:在连接前对每个右表做去重处理,用聚合转换按连接键分组,取其他字段的first()或last()值,确保每个连接键仅保留一条记录后再执行左连接。
  • 后置去重:在最终输出前,用聚合转换按主表唯一键分组,对重复字段做合并处理(比如用collect()收集值后去重,或取特定有效值)。

6. 检查Sink写入配置

  • 确认Sink的写入模式:如果开启追加模式,管道重复运行会导致新旧数据叠加,看起来像重复。改为覆盖模式测试,或检查管道是否被多次触发。
  • 排查分区写入:如果Sink按时间等维度分区,确认是否存在同一数据被写入多个分区文件的情况(若为同一文件内重复,此概率较低)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:12:06