Dela via


Ange variabelaktivitet i Azure Data Factory och Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Använd aktiviteten Ange variabel för att ange värdet för en befintlig variabel av typen Sträng, Bool eller Matris som definierats i en Data Factory- eller Synapse-pipeline eller använd aktiviteten Ange variabel för att ange ett pipelinereturvärde (förhandsversion).

Skapa en Set Variable-aktivitet med användargränssnittet

Utför följande steg om du vill använda en aktivitet för att ange variabel i en pipeline:

  1. Välj bakgrunden för pipelinearbetsytan och använd fliken Variabler för att lägga till en variabel:

Skärmbild av en tom pipelinearbetsyta med fliken Variabler markerad med en matristypvariabel med namnet TestVariable.

  1. Sök efter Ange variabel i fönstret Pipelineaktiviteter och dra en Aktivitet för att ange variabel till pipelinearbetsytan.

  2. Välj aktiviteten Ange variabel på arbetsytan om den inte redan är markerad och välj sedan fliken Inställningar för att redigera dess information.

  3. Välj Pipelinevariabel för din variabeltyp.

  4. Välj variabeln för egenskapen Namn.

  5. Ange ett uttryck för att ange värdet för variablerna. Det här uttrycket kan vara ett literalt stränguttryck eller en kombination av dynamiska uttryck, funktioner, systemvariabler eller utdata från andra aktiviteter.

Skärmbild av användargränssnittet för en Ange variabelaktivitet.

Ange ett pipelinereturvärde med användargränssnittet

Vi har utökat aktiviteten Ange variabel till att omfatta en särskild systemvariabel med namnet Pipeline Return Value, som tillåter kommunikation från den underordnade pipelinen till den anropande pipelinen, i följande scenario.

Du behöver inte definiera variabeln innan du använder den. Mer information finns i Returvärde för pipeline

Skärmbild med ExecutePipeline-aktivitet.

Typegenskaper

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten i pipelinen ja
description Text som beskriver vad aktiviteten gör nej
type Måste anges till SetVariable ja
variableName Namnet på variabeln som anges av den här aktiviteten ja
värde Strängliteral- eller uttrycksobjektvärde som variabeln tilldelas till ja

Öka en variabel

Ett vanligt scenario med variabel är att använda en variabel som iterator inom en Until- eller ForEach-aktivitet. I en Set variable activity (Ange variabelaktivitet ) kan du inte referera till variabeln som anges i value fältet, dvs. ingen självrefererande. Om du vill kringgå den här begränsningen anger du en tillfällig variabel och skapar sedan en andra set-variabelaktivitet . Den andra aktiviteten Ange variabel anger värdet för iteratorn till den tillfälliga variabeln. Här är ett exempel på det här mönstret:

  • Först definierar du två variabler: en för iteratorn och en för tillfällig lagring.

Skärmbild som visar hur du definierar variabler.

  • Sedan använder du två aktiviteter för att öka värden

Skärmbild som visar inkrementsvariabel.

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

Variabler är begränsade på pipelinenivå. Det innebär att de inte är trådsäkra och kan orsaka oväntat och oönskat beteende om de nås inifrån en parallell iterationsaktivitet, till exempel en ForEach-loop, särskilt när värdet också ändras inom den foreach-aktiviteten.

Läs mer om en annan relaterad kontrollflödesaktivitet: