Nastavení aktivity proměnné v Azure Data Factory a Azure Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Pro ekvivalentní aktivitu v Data Factory v Microsoft Fabric viz Nastavit aktivitu proměnných.

Pomocí aktivity Nastavit proměnnou můžete nastavit hodnotu existující proměnné typu String, Bool nebo Array definované v kanálu Data Factory nebo Synapse nebo použít aktivitu Nastavit proměnnou k nastavení návratové hodnoty kanálu (Preview).

Vytvořte aktivitu Nastavit proměnnou pomocí uživatelského rozhraní

Pokud chcete použít aktivitu "Nastavit proměnnou" v kanálu, proveďte následující kroky:

  1. Vyberte pozadí plátna kanálu a pomocí karty Proměnné přidejte proměnnou:

Snímek obrazovky s prázdným plátnem potrubí a s vybranou kartou Proměnné, s proměnnou typu pole, která má název TestVariable.

  1. Vyhledejte Nastavit proměnnou v podokně Aktivity kanálu a přetáhněte aktivitu Nastavit proměnnou na plátno kanálu.

  2. Vyberte aktivitu Nastavit proměnnou na plátně, pokud ještě není vybraná, a pak výběrem karty Nastavení upravte podrobnosti.

  3. Jako typ proměnné vyberte proměnnou kanálu.

  4. Vyberte proměnnou pro vlastnost Name.

  5. Zadejte výraz, který nastaví hodnotu proměnných. Tento výraz může být literálový řetězcový výraz nebo libovolná kombinace dynamických výrazů, funkcí, systémových proměnných nebo výstupů z jiných aktivit.

Snímek obrazovky uživatelského rozhraní pro aktivitu Nastavení proměnné

Nastavení návratové hodnoty kanálu pomocí uživatelského rozhraní

Rozšířili jsme aktivitu Nastavit proměnnou tak, aby zahrnovala speciální systémovou proměnnou s názvem Hodnota vrácení kanálu, která umožňuje komunikaci z podřízeného kanálu do volajícího kanálu v následujícím scénáři.

Před použitím proměnné ji nemusíte definovat. Další informace najdete v tématu Návratová hodnota kanálu.

Snímek obrazovky s aktivitou ExecutePipeline

Vlastnosti typu

Vlastnost Popis Povinné
název Název aktivity v potrubí ano
popis Text popisující, co aktivita dělá ne
typ Musí být nastavená na SetVariable. ano
variableName Název proměnné, která je nastavena touto aktivitou ano
hodnota Řetězcový literál nebo hodnota objektu výrazu, ke které je proměnná přiřazena ano

Zvýšení proměnné

Běžným scénářem zahrnujícím proměnnou je použití proměnné jako iterátoru v rámci aktivity Until nebo ForEach . V aktivitě Nastavit proměnnou nemůžete odkazovat na proměnnou, která se nastavuje v value poli, tj. bez odkazování na sebe. Pokud chcete toto omezení obejít, nastavte dočasnou proměnnou a pak vytvořte druhou aktivitu set proměnných . Druhá aktivita nastavit proměnnou nastaví hodnotu iterátoru na dočasnou proměnnou. Tady je příklad tohoto vzoru:

  • Nejprve definujete dvě proměnné: jednu pro iterátor a jednu pro dočasné úložiště.

Snímek obrazovky znázorňující definování proměnných

  • Pak pomocí dvou aktivit zvýšíte hodnoty.

Snímek obrazovky znázorňující inkrementální proměnnou

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

Proměnné jsou vymezeny na úrovni kanálu. To znamená, že nejsou bezpečné z více vláken a můžou způsobit neočekávané a nežádoucí chování, pokud se k nim přistupuje z aktivity paralelní iterace, jako je smyčka ForEach, zejména v případě, že se hodnota v rámci této aktivity foreach upravuje.

Další informace o další související aktivitě toku řízení: