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 modelu wywoływania potoku podrzędnego potoku 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 potok podrzędny za pomocą działania wykonywania potoku. Chcemy również pobrać informacje z potoku podrzędnego, które będą następnie używane w potoku wywołującym.

Screenshot with ExecutePipeline Activity.

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

Wymaganie wstępne — wywoływanie potoku podrzędnego

Zgodnie z wymaganiami wstępnymi projekt wymaga działania execute pipeline wywołującego potok podrzędny z włączoną funkcją Wait on Completion (Oczekiwanie po zakończeniu ) w działaniu.

Screenshot setting ExecutePipeline Activity to wait for completion.

Konfigurowanie wartości zwracanej potoku w potoku podrzędnym

Rozszerzyliśmy działanie Ustaw zmienną, aby uwzględnić zmienne systemowe Wartość zwracaną 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ą na kanwie, jeśli nie zostało jeszcze wybrane, a następnie kartę Zmienne , aby edytować jego szczegóły.
  3. Wybierz wartość zwracaną 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 (4MB).

Screenshot shows the ui for pipeline return value.

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

Nazwa typu opis
String Stała wartość ciągu. na przykład: "Usługa ADF jest niesamowita"
Expression Umożliwia odwołuje 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 ciągów. Naciśnij klawisz "Enter", aby oddzielić wartości w tablicy
Wartość logiczna True lub False
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 o skomplikowanych przypadkach 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łującym

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

  • Wartość int z potoku podrzędnego w celu zdefiniowania okresu oczekiwania dla działania oczekiwania
  • Wartość ciągu definiująca adres URL działania sieci Web
  • Ładunek wartości wyrażenia dla działania skryptu na potrzeby rejestrowania.

Screenshot shows the calling pipeline.

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

  1. W przypadku 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 na liście z @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Liczba jest zero indeksowana, 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ć sprawdzania odwołań. Potok zakończy się niepowodzeniem, jeśli brakuje klucza, do którego odwołuje się ładunek

Kwestie szczególne

Chociaż w potoku można uwzględnić wiele działań Ustaw wartość zwracaną potoku, ważne jest, aby upewnić się, że w potoku jest wykonywany tylko jeden z nich.

Screenshot with Pipeline Return Value and Branching.

Aby uniknąć brakującej sytuacji klucza w potoku wywołującym, opisaną powyżej, zachęcamy do posiadania tej samej listy kluczy dla wszystkich gałęzi w potoku podrzędnym. Rozważ użycie typów null dla kluczy, które nie mają wartości w określonej gałęzi.

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