筛选 Azure Data Factory 和 Synapse Analytics 管道中的活动

可以在管道中使用 Filter 活动将筛选器表达式应用到输入数组。

适用于: Azure Data Factory Azure Synapse Analytics

语法

{
    "name": "MyFilterActivity",
    "type": "filter",
    "typeProperties": {
        "condition": "<condition>",
        "items": "<input array>"
    }
}

使用 UI 创建筛选器活动

若要在管道中使用筛选器活动,请完成以下步骤:

  1. 可以使用任何数组类型变量或其他活动的输出作为筛选条件的输入。 要创建数组变量,请选择管道画布的背景,然后选择“变量”选项卡以添加数组类型变量,如下所示。

    显示一个空的管道画布,其中向管道添加了一个数组类型变量。

  2. 在管道“活动”窗格中搜索“筛选器”,并将“筛选器”活动拖动到管道画布。

  3. 如果尚未选择画布上的新筛选器活动,请选择该活动及其“设置”选项卡,以编辑其详细信息。

    显示 Filter 活动的 UI。

  4. 选择“项”字段,然后选择“添加动态内容”链接以打开动态内容编辑器窗格。

    显示 Items 属性的“添加动态内容”  链接。

  5. 选择要在动态内容编辑器中筛选的输入数组。 在此示例中,我们选择在第一步中创建的变量。

    显示动态内容编辑器,并选定了在第一步中创建的变量

  6. 再次使用动态内容编辑器为 Condition 属性指定筛选条件,如上所示。

  7. 可以将筛选器活动的输出用作其他活动(如 ForEach 活动)的输入。

类型属性

财产 说明 允许的值 必需
名称 Filter 活动的名称。 字符串 是
类型 必须设为“筛选”。 字符串 是
条件 要用于筛选输入的条件。 表达式 是
项 应对其应用筛选器的输入数组。 表达式 是

示例

在此示例中,管道包含两个活动:Filter 和 ForEach。 Filter 活动配置为筛选输入数组中值大于 3 的项。 然后,ForEach 活动会循环访问筛选的值,并将变量 test 设置为当前值。

{
    "name": "PipelineName",
    "properties": {
        "activities": [{
                "name": "MyFilterActivity",
                "type": "filter",
                "typeProperties": {
                    "condition": "@greater(item(),3)",
                    "items": "@pipeline().parameters.inputs"
                }
            },
            {
            "name": "MyForEach",
            "type": "ForEach",
            "dependsOn": [
                {
                    "activity": "MyFilterActivity",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "userProperties": [],
            "typeProperties": {
                "items": {
                    "value": "@activity('MyFilterActivity').output.value",
                    "type": "Expression"
                },
                "isSequential": "false",
                "batchCount": 1,
                "activities": [
                    {
                        "name": "Set Variable1",
                        "type": "SetVariable",
                        "dependsOn": [],
                        "userProperties": [],
                        "typeProperties": {
                            "variableName": "test",
                            "value": {
                                "value": "@string(item())",
                                "type": "Expression"
                            }
                        }
                    }
                ]
            }
        }],
        "parameters": {
            "inputs": {
                "type": "Array",
                "defaultValue": [1, 2, 3, 4, 5, 6]
            }
        },
        "variables": {
            "test": {
                "type": "String"
            }
        },
        "annotations": []
    }
}

参阅支持的其他控制流活动: