Aktivität „Variable festlegen“ in Azure Data Factory and Azure Synapse Analytics

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!

Verwenden Sie die Aktivität „Variable festlegen“, um den Wert einer vorhandenen Variable vom Typ String, Bool oder Array festzulegen, die in einer Data Factory- oder Synapse-Pipeline definiert sind, oder verwenden Sie die Aktivität „Variable festlegen“, um einen Pipeline-Rückgabewert (Vorschau) festzulegen.

Erstellen einer Aktivität zum Festlegen von Variablen mithilfe der Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um die Aktivität „Variable festlegen“ in einer Pipeline zu verwenden:

  1. Wählen Sie den Hintergrund des Pipelinebereichs aus, und fügen Sie auf der Registerkarte „Variablen“ eine Variable hinzu:

Screenshot of an empty pipeline canvas with the Variables tab selected with an array type variable named TestVariable.

  1. Suchen Sie im Bereich mit den Pipelineaktivitäten nach Variable festlegen, und ziehen Sie eine Aktivität des Typs „Variable festlegen“ in den Pipelinebereich.

  2. Wählen Sie auf dem Canvas die Aktivität „Variable festlegen“ aus (sofern sie noch nicht ausgewählt ist) und wählen Sie anschließend die Registerkarte Einstellungen aus, um die Details zu bearbeiten.

  3. Wählen Sie Pipelinevariable als Variablentyp aus.

  4. Wählen Sie die Variable für die Name-Eigenschaft aus.

  5. Geben Sie einen Ausdruck ein, um den Wert für die Variablen festzulegen. Sie können im Ausdruck literale Zeichenfolgenausdrücke oder eine beliebige Kombination aus dynamischen Ausdrücken, Funktionen, Systemvariablen oder Ausgaben von anderen Aktivitäten verwenden.

Screenshot of the UI for a Set variable activity.

Festlegen eines Pipeline-Rückgabewerts mithilfe der Benutzeroberfläche

Wir haben die Aktivität „Variable festlegen“ erweitert, um im folgenden Szenario eine spezielle Systemvariable namens Pipelinerückgabewert einzuschließen, die die Kommunikation zwischen der untergeordneten Pipeline und der aufrufenden Pipeline ermöglicht.

Sie müssen die Variable nicht definieren, bevor Sie sie verwenden. Weitere Informationen finden Sie unter Pipeline-Rückgabewert.

Screenshot with ExecutePipeline Activity.

Typeigenschaften

Eigenschaft Beschreibung Erforderlich
name Der Name der Aktivität in der Pipeline. ja
description Text, der beschreibt, welche Aktion die Aktivität ausführt. nein
type Muss auf SetVariable festgelegt werden. ja
variableName Der Name der Variablen, die durch diese Aktivität festgelegt wird. ja
value Der Zeichenfolgenliteral- oder Ausdrucksobjektwert, dem die Variable zugewiesen wird. ja

Schrittweises Erhöhen einer Variablen

Ein gängiges Szenario für den Einsatz von Variablen ist die Verwendung einer Variablen als Iterator innerhalb einer Until- oder ForEach-Aktivität. In der Aktivität Variable festlegen können Sie nicht auf die Variable verweisen, die im Feld „value“ festgelegt wird. Legen Sie zur Umgehung dieser Einschränkung eine temporäre Variable fest, und erstellen Sie dann eine zweite Aktivität Variable festlegen. Die zweite Aktivität Variable festlegen setzt den Wert des Iterators auf die temporäre Variable. Hier sehen Sie ein Beispiel für dieses Muster:

  • Zunächst definieren Sie zwei Variablen: eine für den Iterator und eine für den temporären Speicher.

Screenshot shows defining variables.

  • Anschließend verwenden Sie zwei Aktivitäten, um Werte zu inkrementieren.

Screenshot shows increment variable.

{
    "name": "pipeline1",
    "properties": {
        "activities": [
            {
                "name": "Increment J",
                "type": "SetVariable",
                "dependsOn": [],
                "policy": {
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "variableName": "temp_j",
                    "value": {
                        "value": "@add(variables('counter_i'),1)",
                        "type": "Expression"
                    }
                }
            },
            {
                "name": "Set I",
                "type": "SetVariable",
                "dependsOn": [
                    {
                        "activity": "Increment J",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    }
                ],
                "policy": {
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "variableName": "counter_i",
                    "value": {
                        "value": "@variables('temp_j')",
                        "type": "Expression"
                    }
                }
            }
        ],
        "variables": {
            "counter_i": {
                "type": "Integer",
                "defaultValue": 0
            },
            "temp_j": {
                "type": "Integer",
                "defaultValue": 0
            }
        },
        "annotations": []
    }
}

Variablen gelten auf Pipelineebene. Dies bedeutet, dass sie nicht threadsicher sind und zu einem unerwarteten oder unerwünschten Verhalten führen können, wenn innerhalb einer parallelen Iterationsaktivität (z. B. einer ForEach-Schleife) auf sie zugegriffen wird. Dies gilt insbesondere, wenn der Wert auch innerhalb dieser ForEach-Aktivität geändert wird.

Erfahren Sie mehr über eine verwandte Ablaufsteuerungsaktivität: