Udostępnij przez


Użyj zadania For each do uruchomienia innego zadania w pętli

W tym artykule omówiono użycie zadania For each z zadaniami Lakeflow, w tym szczegółowe informacje na temat dodawania i konfigurowania zadania w interfejsie użytkownika Jobs. Użyj zadania For each, aby uruchomić zagnieżdżone zadanie w pętli, przekazując inny zestaw parametrów do każdej iteracji tego zadania.

For each Dodanie zadania do zadania wymaga zdefiniowania dwóch zadań: For each zadania i zagnieżdżonego zadania. Zagnieżdżone zadanie to zadanie, które uruchamia się dla każdej iteracji zadania For each i jest jednym ze standardowych typów zadań w "Lakeflow Jobs". Nie można dodać innego For each zadania jako zagnieżdżonego zadania.

Można na przykład użyć zadania For each do wykonania wspólnego zestawu przekształceń w wielu tabelach, przekazując nazwę tabeli z listy nazw tabel do każdej iteracji zadania.

Zagnieżdżone zadania, które nie mają zależności od siebie, mogą być uruchamiane współbieżnie.

For each Dodawanie zadania do zadania

Zadanie można dodać For each podczas tworzenia zadania lub edytowania zadania w istniejącym zadaniu. Aby skonfigurować zadanie For each:

  1. Kliknij pozycję Dodaj zadanie.

  2. Wprowadź nazwę w polu Nazwa zadania .

  3. W rozwijanym menu opcji Typ wybierz Dla każdego.

  4. Wprowadź nazwę zadania w polu Nazwa zadania.

  5. W polu tekstowym Dane wejściowe zdefiniuj wartości dla For each zadania iterowania jako sformatowanej tablicy wartości w formacie JSON. Aby dowiedzieć się więcej na temat przekazywania parametrów do zagnieżdżonego zadania, zobacz Jakie typy parametrów można używać z zadaniem For each?.

  6. Aby opcjonalnie ustawić liczbę iteracji, które mogą być uruchamiane równolegle, wprowadź wartość współbieżności dla zadania. Domyślna wartość wynosi 1.

  7. Aby opcjonalnie otrzymywać powiadomienia dotyczące uruchamiania, powodzenia lub niepowodzenia zadania, kliknij pozycję + Dodaj. Zobacz Dodawanie powiadomień dotyczących zadania.

  8. Aby ukończyć konfigurację For each zadania i dodać zagnieżdżone zadanie do uruchomienia dla każdej iteracji, kliknij przycisk Dodaj zadanie do pętli.

  9. Wybierz typ zadania i opcje konfiguracji dla zagnieżdżonego zadania. Zagnieżdżone zadania są standardowymi typami zadań i mają te same opcje konfiguracji. Zobacz Konfigurowanie i edytowanie zadań w zadaniach Lakeflow.

  10. Aby odwołać się do parametrów przekazanych z zadania For each, kliknij pozycję Parametry. Użyj odwołania {{input}}, aby ustawić wartość na odpowiadającą wartość w tablicy każdej iteracji lub {{input.<key>}}, aby odwoływać się do poszczególnych pól obiektów podczas iteracji przez listę obiektów.

    Dodawanie zagnieżdżonego zadania do zadania Dla każdego zadania

  11. Kliknij pozycję Utwórz zadanie.

Przełącz się między zadaniem For each a zadaniem zagnieżdżonym

Zadanie For each jest wyświetlane w interfejsie użytkownika zadań jako węzeł, który zawiera zagnieżdżony węzeł zadania wewnątrz węzła For each. Aby przełączyć się pomiędzy zadaniem For each a zadaniem zagnieżdżonym, kliknij na odpowiednie węzły.

Widok DAG w interfejsie użytkownika zadań, przełączenie na Dla każdego zadania

Przejście w interfejsie zadań użytkownika do widoku zagnieżdżonych zadań DAG

Jakich typów parametrów można używać z For each zadaniem?

Zadanie For each przekazuje parametry do każdej iteracji zadań zagnieżdżonych. Dane wejściowe stanowią tablicę obiektów, z których każdy jest poddawany iteracji w ramach zagnieżdżonego zadania. Istnieje wiele sposobów tworzenia danych wejściowych używanych przez zadanie: tablice sformatowane w formacie JSON, wartości zadań lub parametry zadania.

Uwaga / Notatka

Parametry są ograniczone do 5000 znaków bezpośrednio w interfejsie użytkownika lub 48 KB, jeśli używasz odwołań do wartości zadania (gdzie wartość może być znacznie większa niż rozmiar ciągu, który go opisuje), lub 10 000 znaków dla wartości parametrów zadania. Jeśli parametry wymagają więcej niż 48 KB, możesz przekazać wyszukiwanie do większego pliku konfiguracji. Zobacz Używanie tabeli odnośników dla dużych tablic parametrów.

Sformatowana tablica wartości w formacie JSON

Podczas tworzenia lub edytowania zadania można bezpośrednio zdefiniować tablicę wartości dla zagnieżdżonego zadania przy użyciu pola tekstowego Dane wejściowe . Może to być tablica następujących typów danych:

  • Pary klucz-wartość
  • Ciągi, liczby lub typy boolowskie
  • Dowolne złożone obiekty JSON

Pole tekstowe Dane wejściowe , dlatego dane JSON przekazywane bezpośrednio w tym polu są ograniczone do 5000 znaków.

Odwołania do wartości zadania

Wartości zadań można przekazać z poprzedniego zadania. Aby odwołać się do przekazanych wartości zadań, użyj {{tasks.<task_name>.values.<task_value_name>}} składni, aby ustawić wartość w polu tekstowym Dane wejściowe . Jeśli na przykład zadanie o nazwie generate_countries_list poprzedza zadanie For each, ustawia wartość zadania na następującą:

dbutils.jobs.taskValues.set(key = "countries", value = countries_array)

For each Następnie zadanie odwołuje się do wartości zadania w polu tekstowym Dane wejściowe przy użyciu następującej składni:

{{tasks.generate_countries_list.values.countries}}.

W polu tekstowym Dane wejściowe można umieścić maksymalnie 5000 znaków, ale wartości reprezentowane przez odwołania mogą mieć maksymalnie 48 KB. Aby dowiedzieć się więcej o wartościach zadań, zobacz Używanie wartości zadań do przekazywania informacji między zadaniami.

Parametry zadania

Można również użyć parametrów zadania jako danych wejściowych. Aby odwołać się do parametru zadania, użyj następującej składni w polu tekstowym Dane wejściowe : {{job.parameters.<name>}}. Na przykład {{job.parameters.countries}}.

W polu tekstowym Dane wejściowe można umieścić maksymalnie 5000 znaków, aby odwoływać się do parametrów zadania. Wartości parametrów zadania są ograniczone do 10 KB. Aby dowiedzieć się więcej o parametrach zadania, zobacz Konfigurowanie parametrów zadania.

Odwołanie do For each zadania w zadaniach późniejszych

Zadanie For each jest zadaniem najwyższego poziomu, a podrzędne zadania mogą określać je jako zależność. Zadania podrzędne nie mogą zależeć od zadania zagnieżdżonego ani odwoływać się do niego.

Uruchamianie i monitorowanie zadania za pomocą For each zadania

Uruchamianie zadania z zadaniem For each jest identyczne z uruchamianiem dowolnego innego zadania.

Wyświetlanie przebiegów zadań i zarządzanie nimi jest również identyczne z innymi zadaniami, z wyjątkiem historii uruchamiania zadań dla zadania For each, które jest prezentowane jako tabela iteracji zadań. Zobacz historię uruchamiania zadania For each.