Udostępnij przez


Ustawianie wartości zwracanej potoku w usługach Azure Data Factory i Azure Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W paradygmacie wywoływania potoku podrzędnego można użyć działania Ustaw zmienną, aby zwrócić wartości z potoku podrzędnego do potoku wywołującego. W poniższym scenariuszu mamy podręczny potok uruchamiany za pomocą działania uruchamiania potoku. Chcemy pobrać informacje z potoku podrzędnego, do następnego użycia w potoku wywołującym.

Zrzut ekranu przedstawiający działanie ExecutePipeline.

Wprowadź wartość zwracaną potoku, słownik par klucz-wartość, który umożliwia komunikację między potokami podrzędnymi i potokiem nadrzędnym.

Warunek wstępny — wywoływanie potoku podrzędnego

Zgodnie z wymaganiami wstępnymi projekt wymaga aktywności Uruchom potok, która wywołuje potok podrzędny z włączoną opcją Oczekiwanie na ukończenie w aktywności.

Zrzut ekranu przedstawiający ustawienie Działania ExecutePipeline w celu oczekiwania na ukończenie.

Konfigurowanie wartości zwracanej potoku w potoku podrzędnym

Rozszerzyliśmy aktywność 'Ustaw zmienną' o zmienne systemowe 'Wartość zwracana potoku'. Nie musisz definiować ich na poziomie potoku (w przeciwieństwie do innych zmiennych używanych w potoku).

  1. Wyszukaj pozycję Ustaw zmienną w okienku Działania potoku i przeciągnij działanie Ustaw zmienną na kanwę potoku.
  2. Wybierz działanie Ustaw zmienną w obszarze roboczym, jeśli nie zostało jeszcze wybrane, a następnie kartę Zmienne, aby edytować szczegóły.
  3. Wybierz wartość zwrotną potoku dla typu zmiennej.
  4. Wybierz pozycję Nowy , aby dodać nową parę wartości klucza.
  5. Liczba par klucz-wartość, które można dodać, jest ograniczona tylko przez limit rozmiaru zwracanego kodu JSON (4 MB).

Zrzut ekranu przedstawiający interfejs użytkownika dotyczący wartości zwracanej przez potok.

Istnieje kilka opcji dla typów wartości, w tym

Nazwa typu opis
Struna Stała wartość ciągu. na przykład: "ADF jest świetne"
Wyrażenie Umożliwia Tobie odwoływanie się do danych wyjściowych z poprzednich działań. W tym miejscu możesz użyć interpolacji ciągów, aby uwzględnić wartości wyrażeń w wierszu, takie jak "The value is @{guid()}".
Tablica Oczekuje tablicy wartości łańcuchów znaków. Naciśnij "Enter", aby oddzielić wartości w tablicy
Wartość logiczna Prawda czy Fałsz
Null (zero) Status posiadacza miejsca sygnału; wartość jest stała null
Int Wartość liczbowa typu całkowitego. Na przykład: 42
Liczba zmiennoprzecinkowa Wartość liczbowa typu zmiennoprzecinkowego. Na przykład: 2.71828
Objekt Ostrzeżenie tylko do skomplikowanych przypadków użycia. Umożliwia ona osadzanie listy par klucz-wartość typu dla wartości

Wartość typu obiektu jest definiowana w następujący sposób:

[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}}, 
 {"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]

Pobieranie wartości w potoku wywołań

Wartość zwracana potoku podrzędnego staje się danymi wyjściowymi działania Wykonaj Działanie Potoku. Informacje można pobrać za pomocą @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Przypadek użycia jest nieograniczony. Można na przykład użyć

  • Wartość int z potoku podrzędnego do zdefiniowania okresu oczekiwania dla aktywności oczekiwania.
  • Wartość ciągu służąca do zdefiniowania adresu URL działania sieci Web.
  • Ładunek wartości wyrażenia dla działania skryptu na potrzeby rejestrowania.

Zrzut ekranu przedstawia potok wywołań.

Istnieją dwa zauważalne objaśnienia dotyczące zwracanych wartości potoku.

  1. Za pomocą typu obiektu można dodatkowo rozwinąć zagnieżdżony obiekt json, taki jak @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. Za pomocą typu tablicy można określić indeks w tablicy za pomocą @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Liczba jest indeksowana od zera, co oznacza, że zaczyna się od 0.

Uwaga

Upewnij się, że nazwa klucza , do którego odwołujesz się, istnieje w potoku podrzędnym. Konstruktor wyrażeń usługi ADF nie może potwierdzić sprawdzenia odwołań. Potok zakończy się niepowodzeniem, jeśli brakuje klucza, do którego odwołuje się ładunek

Kwestie szczególne

  • Chociaż w rurze można uwzględnić wiele aktywności Ustaw Wartość Zwracaną Rur, ważne jest, aby upewnić się, że w przepływie wykonywana jest tylko jedna z nich.

    Zrzut ekranu przedstawiający wartość zwracaną potoku i rozgałęzianie.

    Aby uniknąć opisanego wcześniej problemu z brakiem klucza podczas pracy z potokami, zalecamy posiadanie tej samej listy kluczy dla wszystkich gałęzi w potokach podrzędnych. Rozważ użycie typów null dla kluczy, które nie mają wartości w określonej gałęzi.

  • Język wyrażeń usługi Azure Data Factory nie obsługuje bezpośrednio wbudowanych obiektów JSON. Zamiast tego konieczne jest prawidłowe łączenie ciągów i wyrażeń.

    Na przykład dla następującego wyrażenia JSON:

    {
      "datetime": "@{utcnow()}",
      "date": "@{substring(utcnow(),0,10)}",
      "year": "@{substring(utcnow(),0,4)}",
      "month": "@{substring(utcnow(),5,2)}",
      "day": "@{substring(utcnow(),8,2)}"
    }
    

    Równoważne wyrażenie usługi Azure Data Factory to:

    @{
      concat(
        '{',
        '"datetime": "', utcnow(), '", ',
        '"date": "', substring(utcnow(),0,10), '", ',
        '"year": "', substring(utcnow(),0,4), '", ',
        '"month": "', substring(utcnow(),5,2), '", ',
        '"day": "', substring(utcnow(),8,2), '"',
        '}'
      )
    }
    

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