Orchestrierung von Datenplattformen: Apache Airflow vs Databricks Jobs

Georgios Fyntanidis

Geschrieben von: Georgios Fyntanidis - 25 Januar 2024

Im Zeitalter datengesteuerter Geschäftsentscheidungen ist es ein Hauptanliegen von Datenteams, Informationen synchron zu halten und die erforderlichen Analysen für wichtige Entscheidungen zeitgerecht bereitzustellen. Damit Business Intelligence effektiv funktioniert, sind Analysten auf die präzisen automatisierten Abläufe angewiesen, die vom Data-Engineering-Team umgesetzt oder von der Business Intelligence-Plattform bereitgestellt werden. In der Praxis spielt die führende Open-Source-Orchestrierungs- und Workflow-Management-Plattform Apache Airflow oft eine wichtige Rolle in einer solchen Infrastruktur. Da aber Cloud-Datenplattformen, die auf Databricks und der Lakehouse-Architektur basieren, immer beliebter werden, stellt sich die Frage: Ist der dedizierte Orchestrierungsdienst überhaupt noch erforderlich?

Databricks Jobs ist ein integrierter Scheduling-Service, der als Alternative oder in Verbindung mit Airflow verwendet werden kann. Heute geben wir einen Überblick über die Stärken und Schwächen der beiden Dienste und erörtern, in welchen Situationen der eine dem anderen vorgezogen werden kann.

Was ist Databricks Jobs?

Databricks ist eine Cloud-basierte Datenanalyseplattform, die alle für ein modernes Datenmanagement erforderlichen Dienste bereitstellt, von der Speicherung über die hochskalierbare Verarbeitung bis hin zur Entwicklung von Machine-Learning-Anwendungen. Auf der Grundlage des Delta-Tabellenformats für die effiziente Speicherung und Zugriff auf große Datenmengen hat Databricks ein ausgereiftes Ökosystem geschaffen und sich als eine der raffiniertesten heute verfügbaren Plattformlösungen etabliert.

Databricks Jobs ist eine Komponente der Databricks-Plattform, die ihre Fähigkeiten um einen Mechanismus zur Planung und Orchestrierung von Datenverarbeitungsaufgaben erweitert. Diese Aufgaben können alle unterstützten Typen sein, die Databricks-Benutzern zur Verfügung stehen, wie beispielsweise Jupyter Notebooks, SQL-Abfragen, Python-Skripte, Apache Spark-Jobs und sogar JAR-Dateien. Als Teil der Databricks-Plattform ermöglicht es Benutzern, Data Engineering, maschinelles Lernen und Analyse-Workflows in ihrem Databricks-Cluster zu orchestrieren und auszuführen. Databricks Jobs bietet eine Benutzeroberfläche, um die Häufigkeit der Jobausführung zu planen, die jobbezogenen Parameter zu konfigurieren und auch Abhängigkeiten zwischen den Jobs zu spezifizieren. Schließlich kann die Job-Ausführung in variabler Granularität überwacht werden, was den Zugriff auf den Job-Status und die aktuellen Protokollmeldungen ermöglicht.

2 - databricks code & graph (1)

Was ist Apache Airflow?

Airflow wurde zunächst von Airbnb als interne Orchestrierungsplattform entwickelt und später als vollständiges Open-Source-Projekt in die Apache Software Foundation eingebracht. Apache Airflow bietet eine Python-Code-basierte Schnittstelle zur Planung, Verwaltung und Skalierung von Workflows sowie eine Benutzeroberfläche zur Überwachung des Status aller Workflows und Aufgaben. Aufgrund seines Code-First-Charakters ist Airflow in hohem Maße anpassbar und erweiterbar und ermöglicht es den Benutzern, eigene Operatoren und Hooks hinzuzufügen. Als System von Micro-Services lässt sich Apache Airflow für eine beliebige Anzahl von Workflows skalieren und kann die Ressourceneffizienz und Workflow-Optimierung durch parallele Ausführung von Aufgaben verbessern. Apache Airflow wird häufig zur Orchestrierung von Datenverarbeitungspipelines verwendet. Es ist aber grundsätzlich unabhängig davon, welche Arten von Aufgaben es plant, und kann für jeden erdenklichen Zweck verwendet werden, bei dem digitale Arbeitslasten geplant und orchestriert werden müssen.

1- airflow  code & graph (1)

Gemeinsamkeiten

Verarbeitungsaufgaben können also sowohl mit Apache Airflow als auch mit der Databricks Jobs-Komponente geplant und orchestriert werden. Beide Systeme bieten Mechanismen zur Skalierung der Verarbeitungsleistung - bei Airflow auf verschiedene Weise je nach Workflow-Design und bei Databricks durch Skalierung der für einen Auftrag verwendeten Apache Spark-Ressourcen. Beide Systeme bieten die Integration mit einer Vielzahl beliebter Drittsysteme, die eine Schnittstelle zu verschiedenen Datenbanken und Speichersystemen oder externen Diensten für die Verarbeitung bilden. Schließlich sind in beiden Umgebungen Überwachungs- und Benachrichtigungsfunktionen vorhanden, die den üblichen Bedarf von Prozesseigentümern an Überwachung des Prozessstatus abdecken.

Unterschiede

Während Apache Airflow und Databrick bis zu einem gewissen Grad denselben Zwecken dienen, ist das Verständnis der konzeptionellen und technologischen Unterschiede der Schlüssel zu der Entscheidung, in welcher Situation man lieber das eine als das andere verwenden möchte. Der erste Punkt auf der Liste der Unterschiede ist die Tatsache, dass Airflow ein viel breiteres Spektrum an Aufgaben und Arten von Workflows unterstützt, die es planen und orchestrieren kann. Wenn Sie Aufgaben orchestrieren müssen, die von Databricks Anwendungsfällen nicht nativ unterstützt werden, z. B. das Auslösen von Routinen aus dem Bereich des Operating, Backup-Routinen, Aufräumarbeiten usw., sollte Airflow Ihre Wahl sein.

Wenn Ihre geplanten Aufgaben zwar in Databricks implementiert sind, aber eine Orchestrierung mit externen Vor- oder Nachbedingungen erfordern, ist ebenfalls Airflow als führendes System die bessere Wahl. Eine Kombination aus beiden Systemen ist eine praktikable Lösung für diese Art von Szenarien, die durch das Apache Airflow Databricks Provider-Paket bereitgestellt wird. Für die Kommunikation mit Databricks steht eine Vielzahl von Airflow-Operatoren zur Verfügung. Aufträge können können beispielsweise mit der Klasse DatabricksRunNowOperator sofort ausgelöst oder mit dem DatabrickSubmitRunOperator zur asynchronen Ausführung übermittelt werden.

3 - airflow_code_databricks_UI (1)

Databricks hat einen viel breiteren Anwendungsbereich als Airflow, wenn es um die interaktive Entwicklung von Datenverarbeitung und Datenanalyse geht, einschließlich KI- und Machine-Learning-Szenarien. Wenn diese Prozesse Ihr Hauptaugenmerk sind und Sie nach Möglichkeiten suchen, von der manuellen Ausführung zu Routinevorgängen überzugehen, ist Databricks Jobs die offensichtliche Wahl zur Verwaltung Ihrer Workflows. Databricks Jobs sind von Natur aus näher an den Daten, die sie verarbeiten, als dies mit nativen Apache Airflow-Komponenten möglich wäre. Die native Implementierung und Planung von Datenpipelines in Databrick kann die perfekte Lösung sein, wenn der Großteil Ihrer Daten bereits Teil einer von Databricks betriebenen Lakehouse-Umgebung ist oder wenn Jobs hauptsächlich Daten für diese Umgebung einlesen. Die Anzahl der Tasks, die mit Databricks geplant werden können, ist jedoch technisch auf etwa 1.000 verschiedene Jobs begrenzt, so dass große Umgebungen möglicherweise eine externe Planung oder einen gemischten Ansatz erfordern.


Effektives Workflowmanagement mit Apache Airflow 2.0

NextLyitcs Whitepaper Apache Airflow DE


In Szenarien, in denen Sie eine Multi-Cloud-Infrastruktur haben, kann Airflow dank einer breiten Palette von Verbindungsmodulen alle bestehenden Workflows über die verschiedenen Domänen hinweg orchestrieren. Die zentrale Verwaltung und Überwachung kann ein starkes Argument dafür sein, einen solchen bestehenden Dienst für die Planung zu verwenden, anstatt den eigenen von Databricks.

Schließlich bieten Databricks Jobs mit der Funktion Delta Live Tables native Unterstützung für kontinuierlich laufende Jobs und Echtzeit-Verarbeitungspipelines. Ein ähnliches Verhalten könnte mit Hochfrequenz-Triggern über Airflow erreicht werden, würde aber mehr Latenz und Kommunikations-Overhead in den Prozess bringen.

Thema

Databricks Jobs

Apache Airflow

Kosten

Die Kosten für Databricks Jobs hängen von einigen Faktoren ab, wie zum Beispiel:

  • Der von Ihnen gewählte Support-Plan (Standard, Premium oder Enterprise),
  • dem Cloud-Anbieter, den Sie wählen (AWS, Azure oder Google Cloud) und
  • der Region der Bereitstellung (USA Ost oder West, Nord- oder Westeuropa usw.).

Databricks Jobs werden auf der Grundlage der aktiven Nutzung von Rechenressourcen für Jobausführungen abgerechnet und kosten etwa 0,15 $ pro Databricks Unit* (DBU) - etwa 1/5 des Tarifs für normalen, interaktiv genutzte Rechenressourcen auf Databricks.

Die Auftragsausführung ist damit im Vergleich zur aktiven Entwicklung sehr günstig, die ihr in der Regel vorausgeht, und zu den allgemeinen Betriebskosten für das bestehende Databricks-System, die Sie benötigen, um die Verwendung des Scheduling-Subsystems überhaupt in Betracht zu ziehen.

* DBU ist eine abstrakte, normierte Einheit der Rechenleistung; 1 DBU entspricht in etwa der Nutzung einer einzelnen Node mit 4 CPU-Kernen und 16 GB Speicher für 1 Zeitstunde.

Die Betriebskosten von Apache Airflow können von mehreren Faktoren abhängen, der wichtigste sind die Infrastrukturkosten. Es werden Server oder Cloud-Ressourcen benötigt, um es zu hosten, sowie Expertenwissen und Unterstützung durch einen Dienstleister wie NextLytics, wenn diese nicht intern bereitgestellt werden können.

Unterstütze Programmiersprachen

Databricks unterstützt viele Sprachen, vor allem solche, die mit der zugrunde liegenden Apache Spark Compute-Engine kompatibel sind. Einige der verfügbaren Sprachen, die in Databricks zur Verfügung stehen, sind Python, Scala, R, Java und SQL.

Wenn Sie Databricks-Aufträge erstellen, können Sie die Sprache wählen, die Ihren Anforderungen für die jeweilige Aufgabe am besten entspricht

Neben der Hauptprogrammiersprache von Airflow, Python, kann das System jede Aufgabe innerhalb des Workflows Skripte oder Befehle in anderen Sprachen ausführen. Diese Flexibilität gibt den Benutzern die Möglichkeit, Code in SQL, Java, Go, Rust und anderen Sprachen zu schreiben.

Zielgruppe

Analysten und Data Scientists, Entwickler mit Fokus auf Daten-Pipelines und Mache Learning Applikationen. Databricks Jobs eignet sich perfekt für Entwickler, die Apache Spark nutzen. Als Teil der einheitlichen Plattform von Databricks ist es eine gute Lösung für Unternehmen oder Organisationen, die sich mit Big Data-Analysen und maschinellem Lernen befassen und nach einer robusten Lösung zur Workflow-Orchestrierung suchen. 

Apache Airflow richtet sich an Data Engineers, DevOps-Experten und Datenplattformteams. Es bietet eine flexible und erweiterbare Plattform für die Orchestrierung und Planung komplexer Workflows über verschiedene Systeme und Technologien hinweg. Airflow eignet sich ideal für Teams, die nach einer zuverlässigen Open-Source-Lösung suchen. 

 

Performance

Bietet dank seiner optimierten Abfrage-Engine und verteilten Rechenfunktionen eine hochleistungsfähige Abfrageausführung. Sie eignet sich für die Verarbeitung umfangreicher Daten und komplexer Analyse-Workloads.

Apache Airflow verfügt über eine bemerkenswerte Leistung bei der Orchestrierung und Verwaltung von Arbeitsabläufen. Es unterstützt auch die parallele Ausführung von Aufgaben. Hoch-skalierbar aufgrund der verteilten Systemarchitektur.

Community

Databricks hat eine starke Community mit aktiven Foren, Wissensaustausch und Ressourcen. Die Databricks Community Edition ist eine kostenlose Option, mit der Benutzer die Plattform erkunden und Unterstützung von anderen Nutzern erhalten können. Kostenpflichtige Pakete bieten zusätzlichen Support und Dienstleistungen. Die offizielle Dokumentation von Databricks ist umfangreich und leicht zugänglich und bietet technische Referenzen sowie praktische Beispiele für viele Anwendungsfälle.

Apache Airflow ist ein beliebtes, weit verbreitetes Open-Source-Projekt und verfügt über eine blühende Gemeinschaft von Benutzern und Mitwirkenden. Mit einer ständig wachsenden Nutzerbasis bietet Airflow eine spezielle Dokumentationsseite, die umfassende Anleitungen und wertvolle Informationen für Anfänger und erfahrene Nutzer bietet. Darüber hinaus ist die schnell wachsende Community über Plattformen wie GitHub, Slack und Stack Overflow leicht zu erreichen. Diese Kanäle fördern die Zusammenarbeit, bieten Unterstützung und erleichtern den Austausch zwischen den Benutzern.

 

Orchestrierung von Datenplattformen - Unser Fazit

Apache Airflow und Databricks Jobs bieten zuverlässige Lösungen für die Orchestrierung von Daten-Workflows, aber die einzigartigen Stärken der beiden Tools liegen in unterschiedlichen Bereichen. Einerseits ist Databricks Jobs eine hervorragende Lösung für Unternehmen, die bereits in Databricks investiert haben, da es sich nahtlos in die Plattform integriert und einen leicht zugänglichen Planungsmechanismus bietet. Andererseits ist Apache Airflow aufgrund seines Open-Source-Charakters und seiner umfangreichen Bibliothek von Operatoren die ideale Lösung für die Orchestrierung verschiedener Aufgaben über unterschiedliche Domänen hinweg. Letztendlich hängt die Wahl zwischen Databricks Jobs und Apache Airflow von den spezifischen Anforderungen und Voraussetzungen ab, da jede Kombination wertvoll sein und die bestmögliche Lösung für einen konkreten Anwendungsfall bieten kann.

Wenn Sie sich nicht sicher sind, welche Option für Sie die richtige ist, beraten wir Sie gerne und helfen Ihnen, die perfekte Lösung zu finden. Nehmen Sie einfach Kontakt zu uns auf - wir freuen uns auf den Austausch mit Ihnen!

Erfahren Sie mehr über Apache Airflow

Themen: Machine Learning, Apache Airflow

Beitrag teilen

Sie haben eine Frage zum Blog?
Fragen Sie Georgios Fyntanidis