Verweisen auf Triggermetadaten in Pipelineausführungen

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

In diesem Artikel erfahren Sie, wie Sie Triggermetadaten (beispielsweise die Startzeit eines Triggers) in einer Pipelineausführung verwenden.

Eine Pipeline muss manchmal Metadaten des Triggers, durch den sie aufgerufen wird, interpretieren und lesen können. Bei einer Triggerausführung mit rollierendem Fenster verarbeitet die Pipeline beispielsweise auf der Grundlage der Start- und Endzeit des Fensters verschiedene Datenslices oder Ordner. In Azure Data Factory werden Parametrisierung und die Systemvariable verwendet, um Metadaten des Triggers an die Pipeline zu übergeben.

Dieses Muster ist besonders nützlich für einen Trigger mit rollierendem Fenster, bei dem der Trigger die Start- und Endzeit des Fensters angibt, und für einen benutzerdefinierten Ereignisauslöser, bei dem der Trigger die Werte in einem benutzerdefinierten Daten-Feld analysiert und verarbeitet.

Hinweis

Verschiedene Triggertypen stellen unterschiedliche Metadateninformationen bereit. Weitere Informationen finden Sie unter Systemvariablen.

Data Factory-Benutzeroberfläche

In diesem Abschnitt erfahren Sie, wie Sie Metadateninformationen eines Triggers innerhalb der Data Factory-Benutzeroberfläche (UI) an eine Pipeline übergeben.

  1. Navigieren Sie zum Erstellungsbereich und bearbeiten Sie eine Pipeline.

  2. Klicken Sie auf den leeren Canvas, um Pipelineeinstellungen anzuzeigen. Wählen Sie keine Aktivität aus. Möglicherweise müssen Sie den Einstellungsbereich vom unteren Rand des Zeichenbereichs nach oben ziehen, da er möglicherweise reduziert ist.

  3. Wählen Sie die Registerkarte Parameter und anschließend + Neu aus, um Parameter hinzuzufügen.

    Screenshot einer Pipelineeinstellung, der zeigt, wie Parameter in einer Pipeline definiert werden.

  4. Fügen Sie der Pipeline Trigger hinzu, indem Sie + Trigger auswählen.

  5. Erstellen Sie einen Trigger, oder fügen Sie einen Trigger an die Pipeline an, und wählen Sie anschließend OK aus.

  6. Nachdem Sie OK ausgewählt haben, wird eine weitere Seite Neuer Trigger mit einer Liste der Parameter angezeigt, die für die Pipeline angegeben sind, wie im folgenden Screenshot gezeigt. Geben Sie auf dieser Seite die Triggermetadaten für die einzelnen Parameter ein. Verwenden Sie das in der Systemvariablen definierte Format, um Triggerinformationen abzurufen. Sie müssen nicht die Informationen für alle Parameter ausfüllen. Füllen Sie einfach diejenigen aus, die Triggermetadatenwerte annehmen. Hier weisen wir beispielsweise parameter_1 die Startzeit für die Triggerausführung zu.

    Screenshot der Seite „Trigger Run Parameters“, auf der gezeigt wird, wie Triggerinformationen an Pipelineparameter übergeben werden.

  7. Um die Werte in der Pipeline zu verwenden, verwenden Sie Parameter wie @pipeline().parameters.parameterName in Pipelinedefinitionen, nicht Systemvariablen. In diesem Fall wird beispielsweise auf @pipeline().parameters.parameter_1 verwiesen, um die Startzeit des Triggers zu lesen.

JSON-Schema

Um Triggerinformationen an Pipelineausführungen zu übergeben, müssen sowohl der JSON-Code des Triggers als auch der JSON-Code der Pipeline mit einem Abschnitt vom Typ parameters aktualisiert werden.

Definition der Pipeline

Fügen Sie im Abschnitt properties dem Abschnitt parameters Parameterdefinitionen hinzu.

{
    "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"
}

Triggerdefinition

Weisen Sie im Abschnitt pipelines Parameterwerte im Abschnitt parameters hinzu. Sie müssen nicht die Informationen für alle Parameter ausfüllen. Füllen Sie einfach diejenigen aus, die Triggermetadatenwerte annehmen.

{
    "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"
            }
        }
    }
}

Verwenden von Triggerinformationen in einer Pipeline

Um die Werte in einer Pipeline zu verwenden, verwenden Sie Parameter wie @pipeline().parameters.parameterName in Pipelinedefinitionen, nicht Systemvariablen.

Weitere Informationen zu Triggern finden Sie unter Pipelineausführung und -trigger.