Offenheit als Kernstück des Data Lakehouses
Data Lakehouse ist das Architekturmuster der Zukunft, das die Verwaltung von Unternehmensdaten, Analysen und KI in großem Maßstab ermöglicht. Das Data Lakehouse kombiniert die SQL-basierten logischen und semantischen Strukturen des klassischen Data Warehouse mit der skalierbaren Rechen- und Speichertechnologie des Data Lake. Ursprünglich als Nebenprodukt dieses technologischen Paradigmenwechsels, den wir bei allen großen Anbietern und Produkten von Datenplattformen beobachten, wird Offenheit als ein wesentlicher struktureller Vorteil beworben: Wählen Sie Ihre eigene Compute-Engine, Ihr BI-Tool, Ihre Machine-Learning- oder GenAI-Anwendung, um auf Ihre Daten dort zuzugreifen, wo sie sich befinden, anstatt sich mit großen und unhandlichen Duplikaten herumschlagen zu müssen.
Hinter den Kulissen ist Apache Spark derzeit die De-facto-Standard-Engine, die für den Zugriff auf jedwede Data Lakehouse-Architektur gebraucht wird. Das heißt, um auf Daten zuzugreifen, die sich in einem Lakehouse-Katalog in Databricks, Dremio, Trino usw. befinden, benötigen Sie zunächst Zugang zu einem Spark-Cluster oder zumindest einer Single-Node-Engine. In Python geschriebene Abfragen werden auf die zugrunde liegende Java-basierte Engine übertragen und gegen die Daten ausgeführt, was einen gewissen Overhead und Kosten für die verwendeten Rechenressourcen verursacht.
Jetzt tauchen native Python-Bibliotheken wie Daft auf, die eine Schnittstelle zu Data Lakehouse-Protokollen bilden und die versprochene Zugänglichkeit und Interoperabilität wirklich ermöglichen. Hier zeigen wir, wie Apache Airflow Worker Nodes genutzt werden können, um auf Daten aus Azure Databricks Unity Catalog zuzugreifen.
Ein moderner, schlanker Ansatz für die Datenerfassung
Die Datenerfassung ist ein grundlegender Bestandteil jeder Datenplattform, doch führen gängige Methoden oft zu unnötiger Komplexität und Overhead. Eine übliche Methode zur Bewältigung dieser Herausforderungen ist der Einsatz von Apache Spark für die Transformation, auch wenn der Funktions- und Leistungsumfang von Spark-Clustern in keinem Verhältnis zu der tatsächlich benötigten einfachen Verarbeitung steht. Dies kann zu ineffizienten Prozessen führen, bei denen die Rechenkosten steigen und zusätzliches spezifisches technisches Wissen erforderlich ist, wodurch sich die Implementierung verlangsamt und weniger kosteneffizient ist.
Mit dem Aufkommen von Daft, einer neuen Open-Source-gestützten Hochleistungsdaten-Engine, steht Unternehmen nun eine leichtgewichtige, Spark-freie Alternative für die Dateneingabe zur Verfügung. In Kombination mit dem Scheduling-Framework von Apache Airflow ermöglicht Daft einen effizienten, skalierbaren Ingest in eine Vielzahl von Quellen, darunter auch den Databricks Unity Catalog, ohne dass ein kompletter Spark-Cluster für die Verarbeitung erforderlich ist.
In diesem Blogbeitrag wird untersucht, wie Entwicklungsteams Daft mit Airflow einsetzen können, um Daten in den Databricks Unity Catalog zu übertragen und so die Effizienz zu maximieren und die Infrastrukturkosten zu minimieren.
Was spricht für Daft bei der Datenerfassung?
Viele Data Engineering-Teams verwenden standardmäßig Spark-basierte Ingestion-Methoden in Databricks, selbst wenn der Transformationsbedarf minimal ist. Dies führt zu unnötigem Ressourcenverbrauch und hoher betrieblicher Komplexität. Daft bietet eine überzeugende Alternative:
- Leichtgewichtig und Spark-frei: Daft ermöglicht Datentransformationen, ohne dass ein Spark-Cluster erforderlich ist, und reduziert so den Infrastruktur-Overhead.
- Nahtlose Airflow-Integration: Daft arbeitet nativ in Python und lässt sich daher leicht in Apache Airflow DAGs integrieren.
- Effiziente Verarbeitung: Daft optimiert E/A und Berechnungen und ist damit ideal für Streaming und Batch-Ingestion ohne die schwergewichtige Verarbeitung von Spark.
- Integration in Kataloge: Die Daten können direkt in Databricks Unity Catalog aufgenommen werden, wodurch Governance und Zugänglichkeit gewährleistet sind.
Durch den Einsatz von Daft können Datenproduktteams Kosten senken, Abläufe rationalisieren und die Effizienz von Dateneingabe-Pipelines verbessern.
Implementierung von Daft-basiertem Einlesen in Apache Airflow
Mithilfe des DAG-Frameworks von Airflow können Dateningenieure Daft-basierte Ingestion in Databricks Unity Catalog orchestrieren, ohne sich bei der Verarbeitung auf Spark zu verlassen. Der Arbeitsablauf folgt den folgenden Hauptschritten:
- Daten extrahieren: Daft liest Rohdaten aus verschiedenen Quellen wie S3, Azure Blob Storage oder On-Premise-Datenbanken.
- Daten transformieren (falls erforderlich): Geringfügige Transformationen (z.B. Filterung, Deduplizierung, Schema-Validierung) werden in Daft durchgeführt.
- Laden in Unity Catalog: Die verarbeiteten Daten werden als Delta Lake-Tabelle in Databricks Unity Catalog geschrieben.
Optimieren Sie Ihr Workflowmanagement mit Apache Airflow!
Ein vereinfachter Airflow-DAG für Daft-basierte Ingestion unter Verwendung der DataFrame-Bibliothek könnte so aussehen:
from airflow import DAG
from datetime import datetime
from airflow.decorators import dag, task
from airflow.operators.python import PythonOperator
import daft
from daft.unity_catalog import UnityCatalog, UnityCatalogTable
DATABRICKS_URL = "https://adb-1234.azuredatabricks.net"
DATABRICKS_TOKEN = "..."
STORAGE_BASE = "abfss://databricks-metastore@databricksunicat.dfs.core.windows.net/ingest_test"
@dag(
dag_id="daft_ingestion_pipeline",
schedule_interval="@daily",
start_date=datetime(2025, 1, 1),
catchup=False
)
def daft_ingestion_pipeline():
@task
def ingest_data():
unity = UnityCatalog(endpoint=DATABRICKS_URL, token=DATABRICKS_TOKEN)
# Load data from local file
df = daft.read_csv("./myfile.csv")
df = df.drop_nulls()
delta_table = unity \
.load_table("nextlytics.nextlytics-demo.daft_test_consumption", \
new_table_storage_path=STORAGE_BASE + "/consumption")
df.write_deltalake(delta_table, mode="overwrite")
ingest_data()
daft_ingestion_dag = daft_ingestion_pipeline()
Mit diesem Ansatz können Ingestion-Workflows effizient in Airflow ausgeführt werden, ohne dass Databricks-Cluster während der gesamten Pipeline-Ausführung aktiv sein müssen.
Ein Nachteil, den unsere Tests ergeben haben, ist, dass der Speicherpfad für eine neu erstellte Delta-Tabelle derzeit vorkonfiguriert werden muss, selbst wenn dem Schema des Unity-Katalogs ein Standardspeicherpfad zugewiesen ist. Wir führen diese Unannehmlichkeit darauf zurück, dass sowohl Daft als auch die Unity
Catalog Python-Bibliotheken noch in einem frühen Entwicklungsstadium sind. Bei der Geschwindigkeit, mit der wir in diesem Ökosystem Verbesserungen sehen, werden solche Unannehmlichkeiten in naher Zukunft beseitigt werden.
Business Vorteile für Engineering Manager
Aus Sicht der technischen Leitung bringt die Einführung von Daft mit Airflow for Databricks Ingestion greifbare geschäftliche Vorteile mit sich:
- Kosteneinsparungen: Eliminiert die unnötige Nutzung von Spark-Clustern und senkt die Rechenkosten für Databricks.
- Skalierbarkeit und Leistung: Die leichtgewichtige Ausführung ermöglicht eine schnellere Einspeisung großer Datenmengen mit weniger Engpässen.
- Weniger betriebliche Komplexität: Die nahtlose Airflow-Integration ermöglicht eine zentralisierte Planung und Überwachung und verbessert die Zuverlässigkeit der Datenpipeline.
- Governance & Sicherheit: Die direkte Übernahme in den Unity Catalog gewährleistet die Einhaltung der Datenreihenfolge, Zugriffskontrolle und Audits.
- Leichte Implementierung: Da Daft auf dem weit verbreiteten Python-Konstrukt der DataFrames aufbaut, das ursprünglich von der Pandas-Bibliothek eingeführt wurde, wird die eigentliche Implementierung des Codes erheblich erleichtert.
Durch die Verlagerung von Ingestion-Workloads auf Daft-gestützte Airflow-DAGs können Unternehmen ihre Datenarchitektur optimieren und gleichzeitig Databricks als leistungsstarke Analyseplattform beibehalten.
Unser Fazit: Nutzen Sie die Expertenhilfe von NextLytics
Die Integration von Daft mit Airflow für Databricks Unity Catalog Ingestion bietet eine moderne, kosteneffiziente Alternative zu traditionellen Spark-basierten Ingestion-Methoden. Mit diesem Ansatz können Entwicklungsteams die Infrastrukturkosten senken, die Erfassungsgeschwindigkeit verbessern und das Pipeline-Management vereinfachen.
Unternehmen, die Databricks- und Airflow-basierte Erfassungsstrategien implementieren oder optimieren möchten, bietet NextLytics fachkundige Beratung in den Bereichen Data Engineering, Workflow-Orchestrierung und skalierbare Cloud-Architekturen. Wenden Sie sich an unser Team, um herauszufinden, wie wir Ihnen helfen können, Ihre Dateneingabe-Pipelines zu optimieren und die Effizienz Ihrer Datenplattform zu maximieren.
Machine Learning, Apache Airflow
![avatar](https://www.nextlytics.com/hs-fs/hubfs/Profile-Pictures/2023_Profilbilder/Robin.jpg?width=290&name=Robin.jpg)