次の方法で共有


パイプライン実行でのトリガー メタデータの参照

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

この記事では、トリガーの開始時刻などのトリガー メタデータをパイプラインの実行で使用する方法について説明します。

パイプラインでは、それを呼び出したトリガーからメタデータを認識し、読み取ることが必要になる場合があります。 たとえば、タンブリング ウィンドウ トリガーの実行では、期間の開始時刻と終了時刻に基づいて、パイプラインによって異なるデータ スライスまたはフォルダーが処理されます。 Azure Data Factory では、パラメーター化とシステム変数を使用して、トリガーからパイプラインにメタデータを渡します。

このパターンは、トリガーがウィンドウの開始時刻と終了時刻を提供するタンブリング ウィンドウ トリガーと、トリガーがカスタム定義データ フィールドの値を解析および処理するカスタム イベント トリガーで特に便利です。

Note

提供されるメタデータ情報は、トリガーの種類ごとに異なります。 詳細については、「システム変数」を参照してください。

Data Factory UI

このセクションでは、Data Factory ユーザー インターフェイス (UI) 内でトリガーからパイプラインにメタデータ情報を渡す方法について説明します。

  1. [作成キャンバス] にアクセスしてパイプラインを編集します。

  2. 空のキャンバスを選択して、パイプラインの設定を表示します。 アクティビティを選択しないでください。 設定パネルが折りたたまれている可能性があるため、その場合はキャンバスの下部から引き出す必要があります。

  3. [パラメーター] タブを選択し、[+ 新規] を選択してパラメーターを追加します。

    パイプラインでパラメーターを定義する方法を示すパイプライン設定のスクリーンショット。

  4. [+ トリガー] を選択して、パイプラインにトリガーを追加します。

  5. パイプラインにトリガーを作成またはアタッチして、[OK] を選択します。

  6. [OK] を選択すると、次のスクリーンショットに示すように、パイプラインに指定されたパラメーターの一覧が別の [新しいトリガー] ページに表示されます。 そのページで、各パラメーターのトリガー メタデータを入力します。 トリガー情報を取得するには、システム変数で定義した形式を使用します。 すべてのパラメーターの情報を入力する必要はありません。 トリガー メタデータ値を扱うものだけを入力します。 たとえば、ここでは、トリガー実行の開始時刻を parameter_1 に割り当てます。

    トリガー情報をパイプライン パラメーターに渡す方法を示す [トリガー実行パラメーター] ページのスクリーンショット。

  7. パイプラインで値を使用するには、システム変数ではなく、パイプライン定義のパラメーター (例: @pipeline().parameters.parameterName) を使用します。 たとえば、この例でトリガーの開始時刻を読み取るには、@pipeline().parameters.parameter_1 を参照します。

JSON スキーマ

パイプライン実行にトリガー情報を渡すには、トリガーとパイプライン JSON の両方を parameters セクションで更新する必要があります。

パイプラインの定義

properties セクションで、パラメーター定義を parameters セクションに追加します。

{
    "name": "demo_pipeline",
    "properties": {
        "activities": [
            {
                "name": "demo_activity",
                "type": "WebActivity",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "url": {
                        "value": "@pipeline().parameters.parameter_2",
                        "type": "Expression"
                    },
                    "method": "GET"
                }
            }
        ],
        "parameters": {
            "parameter_1": {
                "type": "string"
            },
            "parameter_2": {
                "type": "string"
            },
            "parameter_3": {
                "type": "string"
            },
            "parameter_4": {
                "type": "string"
            },
            "parameter_5": {
                "type": "string"
            }
        },
        "annotations": [],
        "lastPublishTime": "2021-02-24T03:06:23Z"
    },
    "type": "Microsoft.DataFactory/factories/pipelines"
}

トリガー定義

pipelines セクションで、parameters セクションにパラメーター値を割り当てます。 すべてのパラメーターの情報を入力する必要はありません。 トリガー メタデータ値を扱うものだけを入力します。

{
    "name": "trigger1",
    "properties": {
        "annotations": [],
        "runtimeState": "Started",
        "pipelines": [
            {
                "pipelineReference": {
                    "referenceName": "demo_pipeline",
                    "type": "PipelineReference"
                },
                "parameters": {
                    "parameter_1": "@trigger().startTime"
                }
            }
        ],
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2021-03-03T04:38:00Z",
                "timeZone": "UTC"
            }
        }
    }
}

パイプラインでのトリガー情報の使用

パイプラインで値を使用するには、システム変数ではなく、パイプライン定義のパラメーター (例: @pipeline().parameters.parameterName) を使用します。

トリガーの詳細については、パイプラインの実行とトリガーに関する記事を参照してください。