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

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

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

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

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

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

Note

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

Data Factory UI

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

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

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

  3. [パラメーター] セクションを選択し、 [+ 新規] を選択してパラメーターを追加します

    Screen shot of pipeline setting showing how to define parameters in pipeline.

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

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

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

    Screenshot of trigger definition page showing how to pass trigger information to pipeline parameters.

  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 を使用します。

トリガーについて詳しくは、「Azure Data Factory でのパイプラインの実行とトリガー」をご覧ください。