Compartir a través de

筛选 Azure 数据工厂和 Synapse Analytics 管道中的活动

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

适用于:Azure 数据工厂 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 活动)的输入。

Type 属性

属性 说明 允许的值 必需
name Filter 活动的名称。 String
type 必须设置为 “filter”。 String
condition 要用于筛选输入的条件。 表达式
items 应该应用筛选器的输入数组。 表达式

示例

在此示例中,管道包含两个活动:FilterForEach。 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": []
    }
}

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