Udostępnij za pośrednictwem


Planowanie i organizowanie przepływów pracy

Przepływy pracy usługi Databricks udostępniają narzędzia, które umożliwiają planowanie i organizowanie zadań przetwarzania danych w usłudze Azure Databricks. Przepływy pracy usługi Databricks służą do konfigurowania zadań usługi Databricks.

W tym artykule przedstawiono pojęcia i opcje związane z zarządzaniem obciążeniami produkcyjnymi przy użyciu zadań usługi Databricks.

Co to są zadania usługi Databricks?

Zadanie to podstawowa jednostka do planowania i organizowania obciążeń produkcyjnych w usłudze Azure Databricks. Zadania składają się z co najmniej jednego zadania. Zadania i zadania umożliwiają skonfigurowanie i wdrożenie następujących zadań:

  • Logika niestandardowa, w tym Spark, SQL, OSS Python, ML i dowolny kod.
  • Zasoby obliczeniowe z niestandardowymi środowiskami i bibliotekami.
  • Harmonogramy i wyzwalacze uruchamiania obciążeń.
  • Logika warunkowa przepływu sterowania między zadaniami.

Zadania zapewniają proceduralne podejście do definiowania relacji między zadaniami. Potoki tabel delta Live Tables zapewniają deklaratywne podejście do definiowania relacji między zestawami danych i przekształceniami. Potoki delty tabel na żywo można uwzględnić jako zadanie w zadaniu. Zobacz Zadanie potoku Delta Live Tables dla zadań.

Zadania mogą się różnić w zależności od jednego zadania, w którym działa notes usługi Databricks, do tysięcy zadań uruchomionych przy użyciu logiki warunkowej i zależności.

Jak skonfigurować i uruchomić zadania?

Zadanie można utworzyć i uruchomić przy użyciu interfejsu użytkownika zadań, interfejsu wiersza polecenia usługi Databricks lub wywołując interfejs API zadań. Za pomocą interfejsu użytkownika lub interfejsu API można naprawić i ponownie uruchomić zadanie, które zakończyło się niepowodzeniem lub anulowano. Wyniki uruchomienia zadania można monitorować przy użyciu interfejsu użytkownika, interfejsu wiersza polecenia, interfejsu API i powiadomień (na przykład wiadomości e-mail, miejsca docelowego elementu webhook lub powiadomień usługi Slack).

Jeśli wolisz podejście infrastruktury jako kodu (IaC) do konfigurowania i organizowania zadań, użyj pakietów zasobów usługi Databricks (DAB). Pakiety mogą zawierać definicje YAML zadań i zadań, są zarządzane przy użyciu interfejsu wiersza polecenia usługi Databricks i mogą być udostępniane i uruchamiane w różnych docelowych obszarach roboczych (takich jak programowanie, przemieszczanie i produkcja). Aby dowiedzieć się więcej na temat konfigurowania i organizowania zadań przy użyciu baz danych, zobacz Pakiety zasobów usługi Databricks.

Aby dowiedzieć się więcej na temat korzystania z interfejsu wiersza polecenia usługi Databricks, zobacz Co to jest interfejs wiersza polecenia usługi Databricks?. Aby dowiedzieć się więcej o korzystaniu z interfejsu API zadań, zobacz Interfejs API zadań.

Jaka jest minimalna konfiguracja wymagana dla zadania?

Wszystkie zadania w usłudze Azure Databricks wymagają następujących elementów:

  • Kod źródłowy (taki jak notes usługi Databricks), który zawiera logikę do uruchomienia.
  • Zasób obliczeniowy do uruchomienia logiki. Zasób obliczeniowy może być bezserwerowy, obliczenia klasyczne lub obliczenia ogólnego przeznaczenia. Zobacz Konfigurowanie obliczeń dla zadań.
  • Określony harmonogram uruchamiania zadania. Opcjonalnie można pominąć ustawianie harmonogramu i wyzwalać zadanie ręcznie.
  • Unikatowa nazwa.

Uwaga

Jeśli tworzysz kod w notesach usługi Databricks, możesz użyć przycisku Zaplanuj , aby skonfigurować ten notes jako zadanie. Zobacz Tworzenie zaplanowanych zadań notesu i zarządzanie nimi.

Co to jest zadanie?

Zadanie reprezentuje jednostkę logiki, która ma być uruchamiana jako krok w zadaniu. Zadania mogą być złożone i mogą obejmować następujące elementy:

  • notesu
  • PLIK JAR
  • Zapytania SQL
  • Potok DLT
  • Inne zadanie
  • Zadania przepływu sterowania

Kolejność wykonywania zadań można kontrolować, określając zależności między nimi. Zadania można skonfigurować do uruchamiania w sekwencji lub równolegle.

Zadania współdziałają z informacjami o stanie i metadanymi zadań, ale zakres zadań jest izolowany. Wartości zadań umożliwiają udostępnianie kontekstu między zaplanowanymi zadaniami. Zobacz Używanie wartości zadań do przekazywania informacji między zadaniami.

Jakie opcje przepływu sterowania są dostępne dla zadań?

Podczas konfigurowania zadań i zadań w zadaniach można dostosować ustawienia, które kontrolują sposób uruchamiania całego zadania i poszczególnych zadań. Są to następujące opcje:

Typy wyzwalaczy

Podczas konfigurowania zadania należy określić typ wyzwalacza. Możesz wybrać spośród następujących typów wyzwalaczy:

Możesz również ręcznie wyzwolić zadanie, ale jest to głównie zarezerwowane dla określonych przypadków użycia, takich jak:

  • Do wyzwalania zadań przy użyciu wywołań interfejsu API REST służy zewnętrzne narzędzie orkiestracji.
  • Masz zadanie, które jest uruchamiane rzadko i wymaga ręcznej interwencji w celu weryfikacji lub rozwiązywania problemów z jakością danych.
  • Uruchamiasz obciążenie, które musi być uruchamiane tylko raz lub kilka razy, takie jak migracja.

Zobacz Typy wyzwalaczy dla zadań usługi Databricks.

Ponowne próby

Ponowne próby określają liczbę ponownych uruchomień określonego zadania, jeśli zadanie zakończy się niepowodzeniem z komunikatem o błędzie. Błędy są często przejściowe i rozwiązywane przez ponowne uruchomienie. Niektóre funkcje usługi Azure Databricks, takie jak ewolucja schematu za pomocą przesyłania strumieniowego ze strukturą, zakładają, że uruchamiasz zadania z ponownymi próbami resetowania środowiska i zezwalasz na kontynuowanie przepływu pracy.

Jeśli określisz ponawianie próby dla zadania, zadanie zostanie uruchomione ponownie do określonej liczby razy, jeśli wystąpi błąd. Nie wszystkie konfiguracje zadań obsługują ponawianie prób zadania. Zobacz Ustawianie zasad ponawiania prób.

Podczas uruchamiania w trybie wyzwalacza ciągłego usługa Databricks automatycznie ponawia próbę z wycofywaniem wykładniczym. Zobacz Jak są obsługiwane błędy dla zadań ciągłych?.

Uruchamianie, jeśli zadania warunkowe

Typ zadania Uruchom można użyć do określenia warunkowych dla późniejszych zadań na podstawie wyniku innych zadań. Zadania podrzędne można dodawać do zadania i określać zadania zależne od nadrzędnego. Na podstawie stanu tych zadań można skonfigurować co najmniej jedno podrzędne zadanie do uruchomienia. Zadania obsługują następujące zależności:

  • Wszystko powiodło się
  • Co najmniej jeden sukces
  • Brak nie powiodło się
  • Wszystko gotowe
  • Co najmniej jeden błąd
  • Wszystkie nie powiodły się

Zobacz Konfigurowanie zależności zadań

Jeśli/inne zadania warunkowe

Możesz użyć typu zadania If/else , aby określić warunkowe na podstawie określonej wartości. Zobacz Dodawanie logiki rozgałęziania do zadania za pomocą zadania If/else.

Zadania obsługują taskValues definicję w logice i umożliwiają zwracanie wyników niektórych obliczeń lub stanu z zadania do środowiska zadań. Można zdefiniować warunki If/else względem taskValuesparametrów zadania lub wartości dynamicznych.

Usługa Azure Databricks obsługuje następujące operandy dla warunkowych:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Zobacz też:

Dla każdego zadania

For each Użyj zadania , aby uruchomić inne zadanie w pętli, przekazując inny zestaw parametrów do każdej iteracji 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 podrzędne do uruchomienia dla każdej iteracji For each zadania i jest jednym ze standardowych typów zadań usługi Databricks. Wiele metod jest obsługiwanych w przypadku przekazywania parametrów do zagnieżdżonego zadania.

Zobacz Uruchamianie sparametryzowanego zadania zadania usługi Azure Databricks w pętli.

Próg czasu trwania

W przypadku przekroczenia określonego czasu trwania można określić próg czasu trwania wysyłania ostrzeżenia lub zatrzymania zadania lub zadania. Przykłady konfiguracji tego ustawienia obejmują następujące elementy:

  • Masz zadania podatne na utknięcie w stanie zawieszenia.
  • Jeśli przekroczono umowę SLA dla przepływu pracy, musisz ostrzec inżyniera.
  • Aby uniknąć nieoczekiwanych kosztów, chcesz zakończyć się niepowodzeniem zadania skonfigurowanego z dużym klastrem.

Zobacz Konfiguruj progi dla czasu trwania pracy lub metryki zaległości strumieniowej oraz Konfiguruj progi dla czasu trwania zadania lub metryki zaległości strumieniowej.

Współbieżność

Większość zadań jest konfigurowana z domyślną współbieżnością 1 współbieżnego zadania. Oznacza to, że jeśli poprzednie uruchomienie zadania nie zostało ukończone przed wyzwoleniem nowego zadania, kolejne uruchomienie zadania zostanie pominięte.

Niektóre przypadki użycia istnieją w przypadku zwiększonej współbieżności, ale większość obciążeń nie wymaga zmiany tego ustawienia.

Aby uzyskać więcej informacji na temat konfigurowania współbieżności, zobacz Kolejkowanie zadań usługi Databricks i ustawienia współbieżności.

Jak mogę monitorować zadania?

Interfejs użytkownika zadań umożliwia wyświetlanie przebiegów zadań, w tym przebiegów w toku. Zobacz Monitorowanie i obserwowanie zadań usługi Databricks.

Powiadomienia można otrzymywać, gdy zadanie lub zadanie rozpoczyna się, kończy lub kończy się niepowodzeniem. Powiadomienia można wysyłać do co najmniej jednego adresu e-mail lub miejsc docelowych systemu. Zobacz Dodawanie wiadomości e-mail i powiadomień systemowych dotyczących zdarzeń zadań.

Tabele systemowe zawierają lakeflow schemat, w którym można wyświetlać rekordy związane z działaniem zadania na koncie. Zobacz Dokumentację tabeli systemu zadań.

Tabele systemowe zadań można również połączyć z tabelami rozliczeniowymi, aby monitorować koszty zadań na koncie. Zobacz Monitorowanie kosztów zadań & wydajności za pomocą tabel systemowych.

Ograniczenia

Istnieją następujące ograniczenia:

  • Obszar roboczy jest ograniczony do 2000 współbieżnych uruchomień zadań. Odpowiedź 429 Too Many Requests jest zwracana po zażądaniu uruchomienia, gdy natychmiastowe uruchomienie nie jest możliwe.
  • Liczba zadań, które można utworzyć w obszarze roboczym w ciągu godziny, jest ograniczona do 10000 (obejmuje "przesyłanie przebiegów"). Ten limit wpływa również na zadania utworzone przez przepływy pracy notesu i interfejsu API REST.
  • Obszar roboczy może zawierać maksymalnie 12000 zapisanych zadań.
  • Zadanie może zawierać maksymalnie 100 zadań.

Czy mogę programowo zarządzać przepływami pracy?

Usługa Databricks ma narzędzia i interfejsy API, które umożliwiają programowe planowanie i organizowanie przepływów pracy, w tym:

Aby uzyskać więcej informacji na temat narzędzi deweloperskich, zobacz Narzędzia programistyczne.

Orkiestracja przepływu pracy za pomocą platformy Apache AirFlow

Za pomocą platformy Apache Airflow można zarządzać przepływami pracy danych i planować je. Za pomocą funkcji Airflow definiujesz przepływ pracy w pliku języka Python, a aplikacja Airflow zarządza planowaniem i uruchamianiem przepływu pracy. Zobacz Orchestrate Azure Databricks jobs with Apache Airflow (Organizowanie zadań usługi Azure Databricks za pomocą platformy Apache Airflow).

Orkiestracja przepływu pracy za pomocą usługi Azure Data Factory

Azure Data Factory (ADF) to usługa integracji danych w chmurze, która umożliwia tworzenie usług magazynu, przenoszenia i przetwarzania danych do zautomatyzowanych potoków danych. Usługi ADF można użyć do organizowania zadania usługi Azure Databricks w ramach potoku usługi ADF.

Usługa ADF ma również wbudowaną obsługę uruchamiania notesów usługi Databricks, skryptów języka Python lub kodu spakowanego w plikach JARs w potoku usługi ADF.

Aby dowiedzieć się, jak uruchomić notes usługi Databricks w potoku usługi ADF, zobacz Uruchamianie notesu usługi Databricks przy użyciu działania notesu usługi Databricks w usłudze Azure Data Factory, a następnie przekształcanie danych przez uruchomienie notesu usługi Databricks.

Aby dowiedzieć się, jak uruchomić skrypt języka Python w potoku usługi ADF, zobacz Przekształcanie danych przez uruchomienie działania języka Python w usłudze Azure Databricks.

Aby dowiedzieć się, jak uruchomić kod spakowany w pliku JAR w potoku usługi ADF, zobacz Przekształcanie danych przez uruchomienie działania JAR w usłudze Azure Databricks.