Azure Data Factory と Azure Synapse Analytics パイプラインの Filter アクティビティ

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

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

構文

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

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

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

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

    Shows an empty pipeline canvas with an array type variable added to the pipeline.

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

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

    Shows the UI for a Filter activity.

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

    Shows the  Add dynamic content  link for the Items property.

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

    Shows the dynamic content editor with the variable created in the first step selected

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

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

型のプロパティ

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

この例では、パイプラインに 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": []
    }
}

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