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:

Screenshot of an empty pipeline canvas with the Variables tab selected with an array type variable named 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 informationen.

  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.

Screenshot of the UI for a Set variable activity.

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

Screenshot with ExecutePipeline Activity.

Typegenskaper

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten i pipelinen ja
description Text som beskriver vad aktiviteten gör no
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.

Screenshot shows defining variables.

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

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

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: