筛选 Azure 数据工厂和 Synapse Analytics 管道中的活动
可以在管道中使用 Filter 活动将筛选器表达式应用到输入数组。
适用于:Azure 数据工厂 Azure Synapse Analytics
语法
{
"name": "MyFilterActivity",
"type": "filter",
"typeProperties": {
"condition": "<condition>",
"items": "<input array>"
}
}
使用 UI 创建筛选器活动
若要在管道中使用筛选器活动,请完成以下步骤:
可以使用任何数组类型变量或其他活动的输出作为筛选条件的输入。 若要创建数组变量,请选择管道画布的背景,然后选择“变量”选项卡以添加数组类型变量,如下所示。
在管道“活动”窗格中搜索“筛选器”,然后将筛选器活动拖动到管道画布上。
如果尚未选择画布上的新筛选器活动,请选择它及其“设置”选项卡,以编辑其详细信息。
选择“项”字段,然后选择“添加动态内容”链接以打开动态内容编辑器窗格。
选择要在动态内容编辑器中筛选的输入数组。 在此示例中,我们选择在第一步中创建的变量。
再次使用动态内容编辑器为 Condition 属性指定筛选条件,如上所示。
可以将筛选器活动的输出用作其他活动(如 ForEach 活动)的输入。
Type 属性
属性 | 说明 | 允许的值 | 必需 |
---|---|---|---|
name | Filter 活动的名称。 |
String | 是 |
type | 必须设置为 “filter”。 | String | 是 |
condition | 要用于筛选输入的条件。 | 表达式 | 是 |
items | 应该应用筛选器的输入数组。 | 表达式 | 是 |
示例
在此示例中,管道包含两个活动: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": []
}
}
相关内容
参阅支持的其他控制流活动: