Azure Data Factory および Synapse Analytics パイプラインのフィルター アクティビティ

パイプラインでフィルター アクティビティを使用して、入力配列にフィルター式を適用することができます。

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

Microsoft Fabricのデータファクトリーにおける同等の活動については、「フィルター活動」を参照してください。

構文

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

UI を使用してフィルター アクティビティを作成する

パイプライン内でフィルター アクティビティを使用するには、次の手順を実行します。

  1. フィルター条件の入力として、任意の配列型変数または他のアクティビティからの出力を使用できます。 配列変数を作成するには、パイプライン キャンバスの背景を選択し、[変数] タブを選択して、次に示すように配列型の変数を追加します。

    パイプラインに配列型変数が追加された空のパイプライン キャンバスを表示しています。

  2. パイプラインの [アクティビティ] ペイン内でフィルターを検索し、フィルター アクティビティをパイプライン キャンバスにドラッグします。

  3. キャンバス上で新しいフィルター アクティビティ (まだ選ばれていない場合)、その [設定] タブの順に選んで、その詳細を編集します。

    Filter アクティビティの UI を表示しています。

  4. [項目] フィールドを選び、[動的なコンテンツの追加] リンクを選んで、動的コンテンツ エディター ペインを開きます。

    Items プロパティの  [動的なコンテンツの追加]  リンクを表示しています。

  5. 動的コンテンツ エディターでフィルター処理する入力配列を選びます。 この例では、最初の手順で作成した変数を選びます。

    最初の手順で作成された変数が選択された動的コンテンツ エディターを表示しています

  6. 上に示したように、もう一度動的コンテンツ エディターを使用して Condition プロパティのフィルター条件を指定します。

  7. フィルター アクティビティからの出力を、ForEach アクティビティなどの他のアクティビティへの入力として使用できます。

型のプロパティ

プロパティ 説明 使用できる値 必須
name Filter アクティビティの名前。 String はい
型 filter に設定する必要があります。 String はい
condition 入力のフィルター処理に使用する条件。 式 はい
items フィルターを適用する必要がある入力配列。 式 はい

例

この例では、パイプラインに Filter および ForEach という 2 つのアクティビティが含まれています。 フィルター アクティビティは、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": []
    }
}

サポートされている他の制御フロー アクティビティを参照してください。