Udostępnij za pośrednictwem


Ustawianie aktywności zmiennej w usłudze Azure Data Factory i usłudze Azure Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Tip

Wypróbuj Data Factory in Microsoft Fabric, kompleksowe rozwiązanie analityczne dla przedsiębiorstw. Microsoft Fabric obejmuje wszystko od przemieszczania danych po naukę o danych, analitykę w czasie rzeczywistym, inteligencję biznesową i raportowanie. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Użyj działania Ustaw zmienną, aby ustawić wartość istniejącej zmiennej typu Ciąg, Wartość logiczna lub Tablica zdefiniowana w potoku usługi Data Factory lub Synapse albo użyć działania Ustaw zmienną, aby ustawić wartość zwracaną potoku (wersja zapoznawcza).

Utwórz czynność "Ustaw zmienną" za pomocą interfejsu użytkownika

Aby użyć operacji "Ustaw Zmienną" w potoku, wykonaj następujące kroki:

  1. Wybierz tło kanwy potoku i użyj karty Zmienne, aby dodać zmienną:

Zrzut ekranu przedstawiający pustą kanwę potoku z wybraną kartą Zmienne ze zmienną typu tablicy o nazwie TestVariable.

  1. Wyszukaj pozycję Ustaw zmienną w okienku Działania potoku i przeciągnij działanie Ustaw zmienną na kanwę potoku.

  2. Wybierz akcję "Ustaw zmienną" na kanwie, jeśli nie jest jeszcze wybrana, a następnie wybierz kartę Ustawienia, aby edytować jej szczegóły.

  3. Wybierz zmienną potoku dla typu zmiennej.

  4. Wybierz zmienną dla właściwości Name.

  5. Wprowadź wyrażenie, aby ustawić wartość zmiennych. To wyrażenie może być wyrażeniem ciągu literału lub dowolną kombinacją wyrażeń dynamicznych, funkcji, zmiennych systemowych lub danych wyjściowych z innych działań.

Zrzut ekranu przedstawiający interfejs użytkownika dla aktywności Ustaw zmienną.

Ustawianie wartości zwracanej potoku za pomocą interfejsu użytkownika

Rozszerzyliśmy aktywność Ustaw Zmienną, aby uwzględnić specjalną zmienną systemową o nazwie Pipeline Return Value, umożliwiając komunikację między potokiem podrzędnym a potokiem wywołującym w poniższym scenariuszu.

Nie musisz definiować zmiennej przed jej użyciem. Aby uzyskać więcej informacji, zobacz Wartość zwracana potoku

Zrzut ekranu przedstawiający działanie ExecutePipeline.

Właściwości typu

Property Description Required
name Nazwa działania w potoku yes
description Tekst opisujący działanie no
typ Musi być ustawiona wartość SetVariable yes
variableName Nazwa zmiennej ustawionej przez to działanie yes
value Literał ciągu lub wartość wyrażenia obiektu, przypisana do zmiennej yes

Zwiększanie zmiennej

Typowym scenariuszem obejmującym zmienną jest użycie zmiennej jako iteratora w działaniu Until lub ForEach . W aktywności Ustaw zmienną nie można odwoływać się do zmiennej, która jest ustawiana w polu value, to znaczy nie ma odwoływania się do samej siebie. Aby obejść to ograniczenie, ustaw zmienną tymczasową, a następnie utwórz drugą aktywność Ustaw zmienną . Drugie działanie Ustaw zmienną ustawia wartość iteratora w zmiennej tymczasowej. Oto przykład tego wzorca:

  • Najpierw zdefiniujesz dwie zmienne: jedną dla iteratora i jedną dla magazynu tymczasowego.

Zrzut ekranu przedstawiający definiowanie zmiennych.

  • Następnie użyjesz dwóch aktywności do zwiększania wartości

Zrzut ekranu przedstawia zmienną przyrostową.

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

Zmienne są zdefiniowane w zakresie na poziomie potoku. Oznacza to, że nie są bezpieczne wątkowo i mogą powodować nieoczekiwane i niepożądane zachowanie, jeśli są one dostępne z poziomu równoległego działania iteracji, takiego jak pętla ForEach, zwłaszcza gdy wartość jest również modyfikowana w ramach tego działania foreach.

Dowiedz się więcej o innym powiązanym działaniu przepływu sterowania: