Sdílet prostřednictvím


Nastavení aktivity proměnných ve službě Azure Data Factory a Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

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ření aktivity Nastavit proměnnou pomocí uživatelského rozhraní

Pokud chcete v kanálu použít aktivitu Nastavit proměnnou, 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 kanálu s vybranou kartou Proměnné s proměnnou typu pole s názvem TestVariable

  1. Vyhledejte v podokně Aktivity kanálu proměnnou 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 s uživatelským rozhraním pro aktivitu nastavit proměnnou

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í účastníci
name Název aktivity v kanálu ano
description Text popisující, co aktivita dělá ne
type 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í proměnnou přírůstku

{
    "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í: