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

Azure Data Factory中无需自定义活动实现数组参数去重

Azure Data Factory 字符串数组去重实现(无自定义活动)

针对管道中数组类型参数存在重复简单字符串值的场景,以下两种方案均完全使用ADF原生能力实现,无需自定义活动:

方案1:内置函数直接实现(优先推荐)

  • 核心逻辑:ADF原生的union()函数用于计算多个集合的并集,返回结果会自动剔除重复元素,刚好匹配简单值数组的去重需求,执行无额外活动开销。
  • 用法:假设你的重复数组参数名为targetArray,在任意需要使用去重结果的位置,直接使用如下表达式即可:
@union(pipeline().parameters.targetArray, createArray())
  • 效果验证:如果传入参数值为["cn-east","cn-north","cn-south","cn-east","cn-north"],表达式返回结果为["cn-east","cn-north","cn-south"],元素顺序和首次出现顺序保持一致。
    注意:该方案仅适用于字符串、数字这类简单值类型数组,你的场景是简单字符串数组,完全适配。

方案2:筛选活动可视化流程实现

如果需要将去重逻辑做成管道内的可见步骤,方便调试排查,可以用内置活动组合实现,步骤如下:

    1. 管道内新增一个数组类型变量,命名为dedupResult,初始值设置为空数组[]
    1. 添加ForEach活动,遍历待去重的原始数组参数,如果需要保留元素原有顺序,开启ForEach的「顺序执行」配置
    1. 在ForEach活动内部添加If条件活动,判断条件表达式如下:
@not(contains(variables('dedupResult'), item()))
    1. 在If条件的True分支中添加「追加变量」活动,目标变量选择dedupResult,追加值设置为当前循环项@item()
  • ForEach执行完成后,dedupResult变量存储的就是去重后的数组。

提示:如果数组元素量超过1万,优先选择方案1,避免ForEach循环的性能开销和项数限制影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:48:13