Variabele activiteit instellen in Azure Data Factory en Azure Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Gebruik de activiteit Variabele instellen om de waarde in te stellen van een bestaande variabele van het type Tekenreeks, Bool of Matrix die is gedefinieerd in een Data Factory- of Synapse-pijplijn of gebruik de activiteit Variabele instellen om een retourwaarde voor een pijplijn in te stellen (preview).

Een activiteit Variabele instellen maken met de gebruikersinterface

Voer de volgende stappen uit om een activiteit Variabele instellen in een pijplijn te gebruiken:

  1. Selecteer de achtergrond van het pijplijncanvas en gebruik het tabblad Variabelen om een variabele toe te voegen:

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

  1. Zoek naar Variabele instellen in het deelvenster Pijplijnactiviteiten en sleep een activiteit Variabele instellen naar het pijplijncanvas.

  2. Selecteer de activiteit Variabele instellen op het canvas als deze nog niet is geselecteerd en selecteer vervolgens het tabblad Instellingen om de details ervan te bewerken.

  3. Selecteer Pijplijnvariabele voor het type Variabele.

  4. Selecteer de variabele voor de eigenschap Name.

  5. Voer een expressie in om de waarde voor de variabelen in te stellen. Deze expressie kan een letterlijke tekenreeksexpressie zijn of een combinatie van dynamische expressies, functies, systeemvariabelen of uitvoer van andere activiteiten.

Screenshot of the UI for a Set variable activity.

Een retourwaarde voor een pijplijn instellen met de gebruikersinterface

We hebben de activiteit Variabele instellen uitgebreid met een speciale systeemvariabele met de naam Retourwaarde pijplijn, waardoor communicatie van de onderliggende pijplijn naar de aanroepende pijplijn mogelijk is in het volgende scenario.

U hoeft de variabele niet te definiëren voordat u deze gebruikt. Zie De retourwaarde van pijplijn voor meer informatie

Screenshot with ExecutePipeline Activity.

Typeeigenschappen

Eigenschappen Beschrijving Vereist
name Naam van de activiteit in de pijplijn ja
beschrijving Tekst waarin wordt beschreven wat de activiteit doet nee
type Moet zijn ingesteld op SetVariable ja
variableName Naam van de variabele die is ingesteld door deze activiteit ja
waarde Letterlijke waarde van tekenreeks of expressieobject waaraan de variabele is toegewezen ja

Een variabele verhogen

Een veelvoorkomend scenario met variabele is het gebruik van een variabele als iterator binnen een Until - of ForEach-activiteit . In een activiteit variabele instellen kunt u niet verwijzen naar de variabele die wordt ingesteld in het value veld, dat wil gezegd, geen zelfverwijzing. Als u deze beperking wilt omzeilen, stelt u een tijdelijke variabele in en maakt u vervolgens een tweede setvariabeleactiviteit. Met de tweede activiteit variabele instellen wordt de waarde van de iterator ingesteld op de tijdelijke variabele. Hier volgt een voorbeeld van dit patroon:

  • Eerst definieert u twee variabelen: één voor de iterator en één voor tijdelijke opslag.

Screenshot shows defining variables.

  • Vervolgens gebruikt u twee activiteiten om waarden te verhogen

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": []
    }
}

Variabelen hebben een bereik op pijplijnniveau. Dit betekent dat ze niet thread-veilig zijn en onverwacht en ongewenst gedrag kunnen veroorzaken als ze worden geopend vanuit een parallelle iteratieactiviteit, zoals een ForEach-lus, met name wanneer de waarde ook wordt gewijzigd binnen die foreach-activiteit.

Meer informatie over een andere gerelateerde controlestroomactiviteit: