Übersicht über die Orchestrierung von Databricks
Azure Databricks bietet eine integrierte Funktion zum Orchestrieren von Datenverarbeitungsworkloads, sodass Sie mehrere Aufgaben im Rahmen eines größeren Workflows koordinieren und ausführen können. Sie können die Ausführung häufiger, wiederholbarer Aufgaben straffen, optimieren und planen, sodass komplexe Workflows leicht zu verwalten sind.
In diesem Artikel werden Konzepte und Auswahlmöglichkeiten im Zusammenhang mit der Verwaltung von Produktionsworkloads mithilfe von Databricks-Aufträgen vorgestellt.
Was sind Aufträge?
In Databricks wird ein Job verwendet, um Aufgaben auf Databricks in einem Workflowzu planen und zu orchestrieren. Allgemeine Datenverarbeitungsworkflows umfassen ETL-Workflows, das Ausführen von Notizbüchern und ML-Workflows (Machine Learning) sowie die Integration in externe Systeme wie dbt und Azure Data Factory (ADF).
Aufträge bestehen aus einer oder mehreren Aufgaben und unterstützen benutzerdefinierte Steuerungsflusslogik wie Verzweigung (if/else-Anweisungen) oder Schleifen (für jede Anweisung) mithilfe einer visuellen Benutzeroberfläche für die Dokumenterstellung. Aufgaben können Daten in einem ETL-Workflow laden oder transformieren oder erstellen, trainieren und bereitstellen ML-Modelle auf kontrollierte und wiederholbare Weise als Teil Ihrer Machine Learning-Pipelines.
Beispiel: Tägliche Datenverarbeitung und Validierungsauftrag
Das folgende Beispiel zeigt einen Auftrag in Azure Databricks.
Dieser Beispielauftrag weist die folgenden Merkmale auf:
- Der erste Vorgang erfasst Umsatzdaten.
- Der zweite Vorgang ist ein If/else-Check auf NULL-Werte.
- Wenn nicht, wird eine Transformationsaufgabe ausgeführt.
- Andernfalls wird eine Notebook-Aufgabe mit einer Datenqualitätsüberprüfung ausgeführt.
- Sie soll jeden Tag um 11:29 Uhr ausgeführt werden.
Eine kurze Einführung in das Erstellen Eines eigenen Auftrags finden Sie unter Erstellen Ihres ersten Workflows mit einem Azure Databricks-Auftrag.
Gängige Anwendungsfälle
Von grundlegenden Datentechnikprinzipien bis hin zu erweiterten Maschinellen Lernen und nahtloser Werkzeugintegration zeigen diese gängigen Anwendungsfälle die Breite der Funktionen, die moderne Analysen, Workflowautomatisierung und Infrastrukturskalierbarkeit fördern.
| Data Engineering | ETL-Pipelines (Extract, Transform, Load): Automatisieren Sie die Datenextraktion aus verschiedenen Quellen, transformieren Sie die Daten in ein geeignetes Format, und laden Sie sie in ein Data Warehouse oder einen Data Lake. Siehe Ausführen Ihrer ersten ETL-Workload auf Azure Databricks
Datenmigration: Daten von einem System in ein anderes verschieben.
Kontinuierliche Datenverarbeitung: Verwenden Sie Aufträge für fortlaufende Datenverarbeitungsaufgaben, z. B. das Streamen von Daten aus Quellen wie Kafka und das Schreiben in Delta-Tabellen. | | Data Science und Machine Learning | Modellschulung: Planen und Ausführen von Schulungsaufträgen für maschinelles Lernen, um sicherzustellen, dass Modelle auf den neuesten Daten trainiert werden.
Batch-Ableitung: Automatisieren Sie den Prozess der Ausführung von Batch-Ableitungsaufträgen, um Vorhersagen aus trainierten Modellen zu generieren.
Hyperparameter-Optimierung: Koordinieren von Hyperparameter-Optimierungsaufträgen zur Optimierung von Machine Learning-Modellen. | | Analysen und Berichterstellung | Geplante Abfragen: Führen Sie SQL-Abfragen in einem Auftrag nach einem Zeitplan aus, um Berichte zu generieren oder Dashboards zu aktualisieren.
Datenaggregation: Regelmäßige Datenaggregationsaufgaben durchführen, um Daten für die Analyse vorzubereiten. | | Automatisieren von Aufgaben | Workflows mit mehreren Aufgaben: Erstellen Sie komplexe Workflows, die mehrere Aufgaben umfassen, z. B. das Ausführen einer Reihe von Notizbüchern, JAR-Dateien, SQL-Abfragen oder Delta Live Tables-Pipelines.
Bedingte Logik: Verwenden Sie bedingte Logik, um den Ablauf von Aufgaben basierend auf dem Erfolg oder Misserfolg vorheriger Aufgaben zu steuern. | | Integration in andere Tools | Airflow und Azure Data Factory (ADF): Auslösen von Azure Databricks-Aufträgen mit externen Orchestrierungstools wie Apache Airflow und Azure Data Factory, was komplexere und integrierte Workflows ermöglicht.
Benachrichtigungen und Überwachung: Einrichten von Benachrichtigungen und Überwachen von Auftragsausführungsergebnissen mithilfe der Azure Databricks UI, CLI oder API oder Verwendung von Integrationen mit Tools wie Slack und Webhooks. | | Infrastructure-as-Code (IaC) | Databricks-Ressourcenbündel: Verwalten Sie Aufträge und andere Ressourcen als Code, um Versionssteuerung, Codeüberprüfung und CI/CD-Praktiken (Continuous Integration/Continuous Deployment) zu erleichtern. |
Orchestrierungskonzepte
Es gibt drei Hauptkonzepte bei der Verwendung von Orchestrierung in Azure Databricks: Aufträge, Aufgaben und Trigger.
Auftrag – Ein Auftrag ist die primäre Ressource für die Koordination, Planung und Durchführung Ihrer Vorgänge. Aufträge können von einer einzelnen Aufgabe, die ein Azure Databricks-Notizbuch ausführt, bis hin zu Hunderten von Aufgaben mit bedingter Logik und Abhängigkeiten variieren. Die Aufgaben in einem Job werden visuell durch einen gerichteten azyklischen Graphen (Directed Acyclic Graph, DAG) dargestellt. Sie können Eigenschaften für den Auftrag angeben, einschließlich:
- Trigger – definiert, wann der Auftrag ausgeführt werden soll.
- Parameter – Laufzeitparameter, die automatisch an Aufgaben innerhalb des Auftrags übertragen werden.
- Benachrichtigungen – E-Mails oder Webhooks, die gesendet werden sollen, wenn ein Auftrag fehlschlägt oder zu lange dauert.
- Git – Quellcodeverwaltungseinstellungen für die Auftragsaufgaben.
Aufgabe – Eine Aufgabe ist eine spezifische Arbeitseinheit innerhalb eines Jobs. Jede Aufgabe kann eine Vielzahl von Operationen ausführen, darunter:
- Eine Notebookaufgabe führt ein Databricks-Notizbuch aus. Sie geben den Pfad zum Notizbuch und alle benötigten Parameter an.
- Eine Pipelineaufgabe führt eine Pipeline aus. Sie können eine vorhandene Delta Live Tables-Pipeline angeben, z. B. eine materialisierte Ansicht oder Streamingtabelle.
- Bei Python-Skriptaufgaben wird eine Python-Datei ausgeführt. Sie geben den Pfad zu der Datei und alle erforderlichen Parameter an.
Es gibt viele Arten von Aufgaben. Eine vollständige Liste finden Sie unter Typen von Aufgaben. Aufgaben können Abhängigkeiten von anderen Aufgaben haben und andere Aufgaben bedingt ausführen, sodass Sie komplexe Workflows mit bedingter Logik und Abhängigkeiten erstellen können.
Trigger – Ein Trigger ist ein Mechanismus, der das Ausführen eines Auftrags basierend auf bestimmten Bedingungen oder Ereignissen initiiert. Ein Auslöser kann zeitbasiert sein, z. B. das Ausführen eines Auftrags zu einer geplanten Zeit (z. B. jeden Tag um 2 Uhr) oder ereignisbasiert, z. B. das Ausführen eines Auftrags, wenn neue Daten im Cloudspeicher eintreffen.
Überwachung und Beobachtbarkeit
Aufträge bieten integrierte Unterstützung für Überwachung und Einblick. In den folgenden Themen erhalten Sie einen Überblick über diesen Support. Weitere Informationen zur Überwachung von Aufträgen und zur Orchestrierung finden Sie unter Überwachung und Einblick für Databricks-Aufträge.
Auftragsüberwachung und -observierbarkeit in der Benutzeroberfläche – In der Azure Databricks-Benutzeroberfläche können Sie Aufträge anzeigen, einschließlich Details wie z. B. der Auftragsbesitzer und das Ergebnis der letzten Ausführung, und filtern Sie nach Auftragseigenschaften. Sie können einen Verlauf der Auftragsausführung anzeigen und detaillierte Informationen zu den einzelnen Aufgaben im Auftrag erhalten.
Auftragsausführungsstatus und Metriken – Databricks meldet den Erfolg des Auftrags und protokolliert sowohl Protokolle als auch Metriken für jede Aufgabe innerhalb eines Auftrags, um Probleme zu diagnostizieren und die Leistung besser zu verstehen.
Benachrichtigungen und Warnungen – Sie können Benachrichtigungen für Job-Ereignisse per E-Mail, Slack, benutzerdefinierte Webhooks und eine Vielzahl anderer Optionen einrichten.
Benutzerdefinierte Abfragen über Systemtabellen – Azure Databricks stellt Systemtabellen bereit, die Auftragsausführungen und Aufgaben für das gesamte Konto aufzeichnen. Sie können diese Tabellen verwenden, um die Auftragsleistung und -kosten abzufragen und zu analysieren. Sie können Dashboards erstellen, um Jobmetriken und Trends zu visualisieren, um die Integrität und Leistung Ihrer Workflows zu überwachen.
Begrenzungen
Es gelten die folgenden Einschränkungen:
- Ein Arbeitsbereich ist auf 2000 gleichzeitige Auftragsausführungen beschränkt. Wenn Sie eine Ausführung anfordern, die nicht sofort gestartet werden kann, wird eine
429 Too Many Requests
-Antwort zurückgegeben. - Die Anzahl von Aufträgen, die von einem Arbeitsbereich innerhalb einer Stunde erstellt werden können, ist auf 10000 beschränkt (einschließlich „runs submit“). Diese Beschränkung wirkt sich auch auf Aufträge aus, die mit den REST-API- und Notebook-Workflows erstellt wurden.
- Ein Arbeitsbereich kann bis zu 12.000 gespeicherte Aufträge enthalten.
- Ein Auftrag kann bis zu 100 Vorgänge enthalten.
Kann ich Workflows programmgesteuert verwalten?
Databricks verfügt über die folgenden Tools und APIs, mit denen Sie Ihre Workflows programmgesteuert planen und orchestrieren können:
- Databricks-Befehlszeilenschnittstelle
- Databricks-Ressourcenbundles
- Databricks-Erweiterung für Visual Studio Code
- Databricks SDKs
- Aufträge-REST-API
Beispiele für die Verwendung von Tools und APIs zum Erstellen und Verwalten von Aufträgen finden Sie unter Automatisieren der Erstellung und Verwaltung von Aufträgen. Dokumentation zu allen verfügbaren Entwicklertools finden Sie unter Lokalen Entwicklungstools.
Externe Tools verwenden die Databricks-Tools und APIs, um Workflows programmgesteuert zu planen. Sie können Ihre Aufträge mit Tools wie Azure Data Factory oder Apache AirFlow planen.
Workfloworchestrierung mit Apache AirFlow
Sie können Apache Airflow verwenden, um Ihre Datenworkflows zu verwalten und zu planen. Mit Airflow definieren Sie Ihren Workflow in einer Python-Datei, und Airflow verwaltet die Planung und Ausführung des Workflows. Weitere Informationen finden Sie unter Orchestrieren von Azure Databricks-Aufträgen mit Apache Airflow.
Workfloworchestrierung mit Azure Data Factory
Azure Data Factory (ADF) ist ein cloudbasierter Datenintegrationsdienst, mit dem Sie Dienste für die Speicherung, Verschiebung und Verarbeitung von Daten in automatisierten Datenpipelines kombinieren können. Sie können ADF verwenden, um einen Azure Databricks-Auftrag als Teil einer ADF-Pipeline zu orchestrieren.
ADF verfügt außerdem über integrierte Unterstützung für das Ausführen von Databricks-Notebooks, Python-Skripts oder Code, der in JAR-Dateien gepackt ist, in einer ADF-Pipeline.
Weitere Informationen zum Ausführen eines Databricks-Notebooks in einer ADF-Pipeline finden Sie unter Ausführen eines Databricks-Notebooks mit der Databricks-Notebookaktivität in Azure Data Factory sowie unter Transformieren von Daten durch Ausführen eines Databricks-Notebooks.
Weitere Informationen zum Ausführen eines Python-Skripts in einer ADF-Pipeline finden Sie unter Transformieren von Daten durch Ausführen einer Python-Aktivität in Azure Databricks.
Weitere Informationen zum Ausführen von Code, der in eine JAR-Datei gepackt ist, in einer ADF-Pipeline finden Sie unter Transformieren von Daten durch Ausführen einer JAR-Aktivität in Azure Databricks.