Serie | Data Integration (Migration & ETL) – Einführung & Anwendungsbeispiel in Databricks

Databricks ist eine Multi-Cloud Lakehouse Plattform basierend auf Apache Spark, welche den gesamten Prozess der Datenverarbeitung abdeckt: Data Engineering, Data Science und Machine Learning.

Databricks wird auf den größten Cloud-Plattformen Microsoft Azure, Google Cloud und Amazon AWS angeboten. Die Databricks Umgebung übernimmt dabei die Verwaltung von Spark Clustern und bietet interaktive Notebooks zur Verarbeitung, Analyse und Visualisierung von Daten in mehreren Programmiersprachen. Die Aufsetzung und Steuerung von Jobs und Pipelines ermöglichen zudem die Automatisierung der Datenverarbeitung.

lakehouse_architecture Databricks Multi-Cloud Lakehouse Plattform Apache Spark

Apache Spark

Durch den Einsatz von Apache Spark als Framework zur Datenverarbeitung eignet sich Databricks zur Analyse von Big Data und Entwicklung von Machine Learning Modellen, da Spark Cluster mit einer Vielzahl an Servern zur Datenverarbeitung nutzt, welche durch Skalierung eine fast unbeschränkte Rechenleistung bieten. Spark bietet zudem eine Schnittstelle zur Programmierung in verschiedenen Sprachen, wie Java, Scala, Python, R oder SQL.

 

Delta Lake

Delta Lake ist eine Open-Source Speicherschicht, die für die Verwaltung von Big Data in Data Lakes entwickelt wurde. Delta Lakes erhöhen die Zuverlässigkeit von Data Lakes, indem sie die Datenqualität und Datenkonsistenz von Big Data steigern und Funktionen aus traditionellen Data Warehouses hinzufügen. Delta Lakes unterstützen ACID-Transaktionen, skalierbare Metadaten und Time Traveling durch das Logging aller Transaktionen. Zudem sind Delta Lakes Spark kompatibel und nutzen standardisierte Datenformate, wie Parquet und Json.

Dadurch ermöglichen Delta Lakes die Bildung von einem Lakehouse, welches die Vorteile von Data Lakes und Data Warehouses kombiniert.

Databricks Lakehouse Delta Lake

 

MLflow

MLflow ist eine Open-Source-Plattform zur Verwaltung des gesamten Machine-Learning-Lebenszyklus. Es wurde entwickelt, um den Prozess des Trainings, der Verwaltung und der Bereitstellung von Machine-Learning-Modellen zu vereinfachen. MLflow ermöglicht das Protokollieren und Verfolgen von Machine Learning Experimenten während des Modelltrainings und die einfache Bereitstellung von trainierten Modellen als Docker-Container, Python-Funktionen und RESTful API-Endpunkte. MLflow ist kompatibel mit verschiedenen Machine-Learning-Frameworks wie TensorFlow, PyTorch, Scikit-Learn und XGBoost. Es kann unter anderem in Jupyter Notebooks, Apache Spark, Databricks und AWS SageMaker genutzt werden.

 

Worksflows

Databricks Workflows dienen zur Orchestrierung mehrerer Aufgaben, welche als ETL-, Analytics- oder ML-Pipelines definiert, verwaltet und überwacht werden können. Die einzelnen Aufgaben innerhalb eines Workflows können Databricks Notebooks, SQL-Abfragen oder Delta Live Table Pipelines ausführen. Durch die Festlegung vordefinierter Zeiten oder Trigger zur Ausführung von Batch-Jobs können wiederkehrende Aufgaben automatisiert werden und die Implementation von Echtzeit-Datenpipelines ermöglichen die kontinuierliche Ausführung von Streaming-Jobs. Die Nutzung eines Job-Clusters reduziert die Rechenkosten, da diese nur dann ausgeführt werden, wenn ein Workflow geplant ist. Der Databricks Arbeitsbereich bietet eine vollständige Übersicht zu den ausgeführten Workflows und optionale Benachrichtigungen per E-Mail, Slack oder Webhooks.

workflow_orchestrate Databricks ETL ML-Pipeline Notebook SQL

 

Unity Catalog

Unity Catalog bietet eine einheitliche Governance-Lösung für Daten und KI-Ressourcen in Databricks. Dazu gehören zentralisierte Funktionen zur Zugriffssteuerung, Überwachung und Herkunftsermittlung von Daten in Databricks Umgebungen. Mit Unity Catalog können die Datenzugriffsrichtlinien zentral definiert werden, sodass diese für alle Arbeitsbereiche gelten. Unity Catalog bietet auch eine Schnittstelle zur Suche nach Datenobjekten und erfasst Herkunftsdaten, um nachzuverfolgen, wie Datenressourcen erstellt und verwendet werden.

unit_catalog Databricks Data Governance KI-Ressourcen Überwachung herkunft Catalog Datenkatalog

 

Anwendungsbeispiel: Analyse von Daten aus dem Online-Einzelhandel

Jeder Databricks Arbeitsbereich verfügt über ein verteiltes Dateisystem, welches auf Databricks Clustern vorinstalliert ist. Dieses Databricks File System (DBFS) bietet eine Abstraktionsschicht zur Speicherung der Daten in darunter liegenden Cloud-Speicher. Dadurch können Objekte aus dem Cloud-Speicher mit relativen Pfaden in der Semantik eines Dateisystems angesprochen werden, ohne dass die Cloud-spezifischen API-Befehle benötigt werden. Zudem enthält das DBFS einige Testdatensätze, wie zum Beispiel einen Datensatz mit Verkaufsdaten aus dem Online-Einzelhandel.

Mithilfe des Magic-Befehls %fs kann auf das DBFS zugegriffen werden, um sich die verfügbaren Dateien anzeigen zu lassen.

dbfs_1 Magic-Befehl Databricks

Durch eine SQL-Abfrage können die Daten einer Datei ausgelesen werden. Zur Anzeige der Rohdaten direkt aus der Datei dient folgender SQL-Befehl:

SELECT * FROM dateiformat.`dateipfad`

dbfs_2 SQL-Abfrage Databricks Rohdaten Select

 

Aufbau einer Multi-hop Architektur

Bei einer Multi-hop Architektur, welche auch als Medallion-Architektur bezeichnet wird, werden die Struktur und Qualität der Daten inkrementell verbessert. Dazu wird zunächst eine Bronze-Tabelle mit den Rohdaten erzeugt, sodass eine Neuverarbeitung der Originaldaten jederzeit möglich ist, ohne die Daten erneut aus dem Quellsystem lesen zu müssen. Die Silber-Tabelle enthält dann die bereinigten Daten, auf deren Basis schließlich mehrere Gold-Tabellen mit aggregierten Daten zum Machine Learning oder Business Intelligence erstellt werden können.

multi_hop_architecture Databricks Bronze Silver Gold Medallion Architektur Rohdaten Quellsystem bereinigte Daten ML BI

Bei der obigen Methode zum Lesen der Rohdaten (SELECT * FROM dateiformat.`dateipfad`) wird das Schema der Tabelle automatisch erschlossen und es gibt keine Möglichkeit, weitere Dateioptionen anzugeben. Zur Erstellung einer Delta-Tabelle mit einem definierten Schema und der Spezifizierung von Dateioptionen wird daher eine temporäre Sicht und darauf basierend eine Tabelle mit dem CTAS-Befehl (CREATE TABLE AS SELECT) erzeugt.

bronze_table Databricks Bronze Tabelle Schema Delta-Tabelle Dateioptionen CTAS

Anschließend wird ausgehend von der Bronze-Tabelle mit dem CTAS-Befehl die Silber-Tabelle generiert. Dabei werden die Datumsangaben formatiert, eine neue Preis-Spalte aus der Multiplikation des Stückpreises mit der Menge erstellt und die Daten gefiltert, sodass nur Zeilen mit einer Verkaufsmenge von mindestens null berücksichtigt werden.

silver_table Databricks Transformation Menge

Für die Gold-Schicht wird eine Sicht erstellt, wobei die Daten nach der Rechnungsnummer gruppiert sind und für jede Rechnung der Gesamtpreis ermittelt wird. Zudem wird das Rechnungsdatum aufgeteilt in den Tag sowie die Stunde und Minute der Rechnungsstellung.

gold_table Databricks Beispiel

 

Visualisierung der Daten in Databricks

Die Silber-Tabelle sowie die aggregierten Daten aus der Gold-Schicht können nun zur Analyse und Visualisierung genutzt werden. Databricks Notebooks bieten dazu die Möglichkeit, die Resultat einer SQL-Abfrage mithilfe eines Editors zu visualisieren.

viz_editor Databricks Visualisierung SQL

Beispielsweise werden in der nächsten Abbildung die Rechnungen nach Kunden gruppiert, um den Gesamtumsatz und die Anzahl an Rechnungen für die umsatzstärksten Kunden zu visualisieren.

viz_customers Visualisierung Databricks Dashboard KPI Visualisierungs-Editor

Auf Basis der nach Rechnungen aggregierten Gold-Tabelle, kann auch der Umsatz sowie die Anzahl an Rechnungen pro Tag im zeitlichen Verlauf dargestellt werden.

viz_invoices Databricks Rechnugnen Gold tabelle

 

Fazit Databricks

Databricks eignet sich durch die Nutzung von Spark Clustern und interaktiven Notebooks zur Integration, Verarbeitung, Analyse und Visualisierung großer Datenmengen. Die Lakehouse Architektur ermöglicht den Aufbau eines flexiblen Data Warehouses und mithilfe von MLflow können Machine Learning Modelle in Databricks entwickelt werden. Zudem dienen Workflows zur Orchestrierung und Automatisierung der Datenverarbeitung, während Unity Catalog eine einheitliche Governance-Lösung für Databricks Umgebungen bietet.

Interessiert an Databricks? Schauen Sie sich das Data Strategy & Analytics Assessment oder den Databricks Showcase an.

 

Übersicht der Data Integration (Migration & ETL) Serie:

 

Haben wir Ihr Interesse geweckt? Kontaktieren Sie uns!

Ihr Ansprechpartner

Datalytics Mitarbeiter Vorstellung Christoph-Espelage

Christoph Espelage

christoph.espelage@datalytics-consulting.com
+49 178 3984086