能否在Azure Data Factory的Alter Row转换中处理重复行并保留最大值?
问题解答
不能直接通过Azure Data Factory的Alter Row转换实现你要的需求。
Alter Row转换的核心作用是为每行数据指定数据操作类型(插入、更新、删除、Upsert),它不具备分组聚合、去重并保留最值的能力。要实现你要的效果,推荐用以下两种方式:
方式一:使用聚合转换(Aggregate)(推荐)
这是最直接高效的方案:
- 配置分组键:选择
col_A作为分组依据 - 添加聚合列:对
col_B应用max()函数,输出列名可保留为col_B - 执行后直接得到每个
col_A对应的最大col_B值,自动完成去重,输出结果完全符合你的预期。
方式二:窗口转换+Alter Row转换(可选)
如果一定要结合Alter Row,可按以下步骤操作:
- 窗口转换(Window):
- 按
col_A分区,对col_B做降序排序 - 添加一个行号列(比如命名为
row_num),每行的行号按分区内的排序结果生成
- 按
- Alter Row转换:
- 设置条件:当
row_num == 1时,标记为保留(插入)该行;其余行标记为删除 - 最终只保留每个
col_A分组中col_B值最大的行
- 设置条件:当
内容的提问来源于stack exchange,提问作者Lav Mehta
相关产品推荐
相关产品推荐

