Omówienie orkiestracji w usłudze Databricks
Usługa Azure Databricks zapewnia wbudowane środowisko organizowania obciążeń przetwarzania danych, dzięki czemu można koordynować i uruchamiać wiele zadań w ramach większego przepływu pracy. Można usprawnić, zoptymalizować i zaplanować wykonywanie częstych, powtarzalnych zadań, co ułatwia zarządzanie złożonymi przepływami pracy.
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?
W usłudze Databricks zadanie służy do planowania i organizowania zadań w usłudze Databricks w przepływie pracy . Typowe przepływy pracy przetwarzania danych obejmują przepływy pracy ETL, uruchamianie notesów i przepływów pracy uczenia maszynowego (ML), a także integrację z systemami zewnętrznymi, takimi jak dbt i Azure Data Factory (ADF).
Zadania składają się z co najmniej jednego zadania i obsługują niestandardową logikę przepływu sterowania, taką jak rozgałęzianie (instrukcje if/else) lub pętla (dla każdej instrukcji) przy użyciu interfejsu użytkownika tworzenia wizualizacji. Zadania mogą ładować lub przekształcać dane w przepływie pracy ETL albo kompilować i wdrażać modele uczenia maszynowego w kontrolowany i powtarzalny sposób w ramach potoków uczenia maszynowego.
Przykład: codzienne przetwarzanie danych i zadanie weryfikacji
W poniższym przykładzie przedstawiono zadanie w usłudze Azure Databricks.
To przykładowe zadanie ma następujące cechy:
- Pierwsze zadanie pobiera dane przychodów.
- Drugie zadanie to if /else sprawdzanie wartości null.
- Jeśli nie, zostanie uruchomione zadanie przekształcania.
- W przeciwnym razie uruchamia zadanie w notatniku z walidacją jakości danych.
- Zaplanowano uruchamianie codziennie o godzinie 11:29.
Aby uzyskać krótkie wprowadzenie do tworzenia własnego zadania, zobacz Tworzenie pierwszego przepływu pracy przy użyciu zadania usługi Azure Databricks.
Typowe przypadki użycia
Od podstawowych zasad inżynierii danych po zaawansowaną integrację z uczeniem maszynowym i bezproblemową integracją narzędzi, te typowe przypadki użycia przedstawiają zakres możliwości, które napędzają nowoczesną analizę, automatyzację przepływu pracy i skalowalność infrastruktury.
|
potoki inżynierii danych | ETL (wyodrębnianie, przekształcanie, ładowanie): automatyzowanie wyodrębniania danych z różnych źródeł, przekształcanie danych w odpowiedni format i ładowanie ich do magazynu danych lub magazynu danych typu data lake. Zobacz Uruchamianie pierwszego obciążenia ETL w usłudze Azure Databricks
Migracja danych: Przemieszczanie danych z jednego systemu do innego.
ciągłe przetwarzanie danych: użyj zadań do ciągłego przetwarzania danych, takich jak przesyłanie strumieniowe danych ze źródeł, takich jak Kafka, i zapisywanie ich w tabelach Delta. | | uczenie danych i uczenie maszynowe | trenowanie modeli: Planowanie i uruchamianie zadań trenowania modeli uczenia maszynowego w celu zapewnienia, że modele są szkolone na najnowszych danych.
Wnioskowanie wsadowe: Zautomatyzuj proces uruchamiania zadań wnioskowania wsadowego w celu generowania prognoz na podstawie wytrenowanych modeli.
dostrajanie hiperparametrów: organizowanie zadań dostrajania hiperparametrów w celu optymalizacji modeli uczenia maszynowego. | | Analytics i raportowanie | Zaplanowane zapytania: uruchamianie zapytań SQL w zadaniu zgodnie z harmonogramem w celu generowania raportów lub aktualizowania pulpitów nawigacyjnych.
agregacja danych: wykonaj regularne zadania agregacji danych w celu przygotowania danych do analizy. | | Automatyzowanie zadań | przepływy pracy dla wielu zadań: Tworzenie złożonych przepływów pracy obejmujące wiele zadań, takich jak uruchamianie serii notesów, plików JAR, zapytań SQL lub potoków Delta Live Tables.
Logika warunkowa: Użyj logiki warunkowej, aby kontrolować przepływ zadań w zależności od sukcesu lub niepowodzenia poprzednich zadań. | | integracja z innymi narzędziami | Airflow i Azure Data Factory (ADF): Wyzwalanie zadań usługi Azure Databricks przy użyciu zewnętrznych narzędzi orkiestracji, takich jak apache Airflow i azure Data Factory, co umożliwia bardziej złożone i zintegrowane przepływy pracy.
Powiadomienia i monitorowanie: konfigurowanie powiadomień i monitorowanie wyników uruchamiania zadań przy użyciu interfejsu użytkownika, interfejsu wiersza polecenia lub interfejsu API usługi Azure Databricks albo integracji z narzędziami, takimi jak Slack i webhook. | | Infrastruktura jako kod (IaC) | Pakiet zasobów Databricks: Zarządzaj zadaniami i innymi zasobami jako kodem, aby ułatwić kontrolę wersji, przegląd kodu oraz praktyki CI/CD (Ciągła Integracja/Ciągłe Wdrażanie). |
Pojęcia dotyczące orkiestracji
Istnieją trzy główne pojęcia dotyczące używania orkiestracji w usłudze Azure Databricks: zadania, zadania i wyzwalacze.
Praca — Praca jest podstawowym zasobem do koordynowania, planowania i uruchamiania operacji. Zadania mogą się różnić złożonością, od uruchamiania pojedynczego notesu w usłudze Azure Databricks do setek zadań z logiką warunkową i zależnościami. Zadania w pracy są wizualnie reprezentowane przez Graf Acykliczny (DAG). Można określić właściwości zadania, w tym:
- Wyzwalacz — określa, kiedy należy uruchomić zadanie.
- Parametry — parametry czasu wykonywania, które są automatycznie przekazywane do zadań w ramach pracy.
- Powiadomienia — wiadomości e-mail lub webhooki, które będą wysyłane, gdy zadanie kończy się niepowodzeniem lub trwa zbyt długo.
- Git — ustawienia kontroli wersji dla zadań roboczych.
Zadanie — zadanie jest określoną jednostką pracy w ramach projektu. Każde zadanie może wykonywać różne operacje, w tym:
- Zadanie w notatniku uruchamia notatnik usługi Databricks. Należy określić ścieżkę do notesu i wszystkie wymagane przez niego parametry.
- Zadanie potoku uruchamia potok. Możesz określić istniejący potok Delta Live Tables, taki jak zmaterializowany widok lub tabela strumieniowa.
- Zadania skryptu języka Python uruchamiają plik w języku Python. Należy podać ścieżkę do pliku i wszelkie niezbędne parametry.
Istnieje wiele typów zadań. Aby uzyskać pełną listę, zobacz Typy zadań. Zadania mogą mieć zależności od innych zadań i warunkowo uruchamiać inne zadania, co umożliwia tworzenie złożonych przepływów pracy z logiką warunkową i zależnościami.
Wyzwalacz — wyzwalacz to mechanizm, który inicjuje uruchamianie zadania na podstawie określonych warunków lub zdarzeń. Wyzwalacz może być oparty na czasie, takim jak uruchamianie zadania w zaplanowanym czasie (na przykład kiedykolwiek o godzinie 2:00) lub oparte na zdarzeniach, takie jak uruchamianie zadania po nadejściu nowych danych do magazynu w chmurze.
monitorowanie i obserwowanie
Zadania zapewniają wbudowaną obsługę monitorowania i obserwacji. Poniższe tematy zawierają omówienie tej pomocy technicznej. Aby uzyskać więcej informacji na temat monitorowania zadań i orkiestracji, zapoznaj się z Monitorowanie i obserwowalność zadań w Databricks.
Monitorowanie i obserwowanie zadań w interfejsie użytkownika — w interfejsie użytkownika usługi Azure Databricks można wyświetlać zadania, w tym szczegóły, takie jak właściciel zadania i wynik ostatniego uruchomienia oraz filtrować według właściwości zadania. Możesz wyświetlić historię przebiegów zadań i uzyskać szczegółowe informacje o każdym zadaniu w zadaniu.
Stan uruchomienia zadania i metryki — usługa Databricks zgłasza powodzenie uruchomienia zadania oraz rejestruje logi i metryki dla każdego zadania w ramach przebiegu zadania w celu diagnozowania problemów i analizy wydajności.
Powiadomienia i Alerty — możesz skonfigurować powiadomienia dotyczące zdarzeń związanych z zadaniami za pośrednictwem poczty e-mail, Slack, webhooków i wielu innych opcji.
zapytania niestandardowe za pośrednictwem tabel systemowych — usługa Azure Databricks udostępnia tabele systemowe, które rejestrują uruchomienia zadań i poszczególne czynności na koncie. Te tabele umożliwiają wykonywanie zapytań i analizowanie wydajności i kosztów zadań. Można tworzyć pulpity, aby wizualizować metryki i trendy zadań, co ułatwia monitorowanie kondycji i wydajności procesów pracy.
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 dotyczy również zadań utworzonych przez interfejs API REST i przepływy pracy w notesach.
- 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:
- Interfejs wiersza polecenia usługi Databricks
- Pakiety zasobów usługi Databricks
- Rozszerzenie usługi Databricks dla programu Visual Studio Code
- Zestawy SDK usługi Databricks
- Interfejs API REST zadań
Przykłady użycia narzędzi i interfejsów API do tworzenia zadań i zarządzania nimi można znaleźć w Automate job creation and management. Aby uzyskać dokumentację dotyczącą wszystkich dostępnych narzędzi deweloperskich, zobacz Lokalne narzędzia programistyczne.
Narzędzia zewnętrzne używają narzędzi i interfejsów API usługi Databricks do programowego planowania przepływów pracy. Zadania można zaplanować przy użyciu narzędzi, takich jak Azure Data Factory lub Apache AirFlow.
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.