Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Business Intelligence

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
Megamenü_CTA_Webinar
Live Webinar:
Bridging Business and Analytics: The Plug-and-Play Future of Data Platforms
Kostenlos anmelden!
 

Datenmodellierung mit dbt auf Databricks: Ein Praxisleitfaden

Daten­teams suchen zunehmend nach Möglichkeiten, Datenmodellierung und Governance auf einer einheitlichen, skalierbaren Plattform zu vereinen. Databricks hat sich mit seiner leistungsfähigen Lakehouse-Architektur als zentraler Player am Markt etabliert. Sie verbindet Data Engineering, Data Science und Analytics auf einer gemeinsamen Grundlage.
Im Gegensatz zu klassischen Data-Warehouse-Lösungen, die als fertige Anwendungen von Anbietern wie SAP oder Oracle verkauft werden, ist Databricks eine Plattform, auf der Sie ein SQL-basiertes Warehouse selbst aufbauen können. Dazu muss ein Team ein passendes Design-Pattern und ein logisches Rahmenwerk wählen und darin das eigene Datenmodell implementieren.

Das Open-Source-Tool dbt (data build tool) hat sich dabei als De-facto-Standard für SQL-zentrierte Transformationen und Datenmodellierung etabliert – und ist eine ideale Ergänzung zum Aufbau eines Enterprise Data Warehouse auf Databricks.

Die Kombination beider Technologien ermöglicht es Analysten und Data Engineers, Rohdaten direkt auf der Databricks-Plattform in verlässliche, produktionsreife Datensätze zu transformieren – und dabei Best Practices aus der Softwareentwicklung zu nutzen. Mit der Integration von dbt in Databricks Jobs lässt sich die volle Leistungsfähigkeit der Plattform ausschöpfen: dbt-Workflows können direkt orchestriert, überwacht und automatisiert ausgeführt werden.

dbt_on_Databricks_Diagram

In diesem Beitrag zeigen wir, wie Sie dbt und Databricks kombinieren, um skalierbare, performante und nachvollziehbare Daten­transformationen aufzubauen.
Anhand eines konkreten Beispiels für einen Data-Warehouse-Workflow demonstrieren wir, wie Daten aus verschiedenen Quellsystemen importiert, in einer Medallion-Architektur (Bronze–Silver–Gold) verfeinert und für Analyse und Wiederverwendung bereitgestellt werden.

Dabei führen wir Sie durch folgende Schritte:

• Initialisierung eines dbt-Projekts und Integration in Databricks via Git-Repository

• Definition der Modellierungsstufen in dbt

• Einrichtung eines Databricks-Clusters für die Ausführung

• Konfiguration eines Databricks Jobs zur Orchestrierung der dbt-Pipelines

• Umgang mit sich ändernden Daten und Schemaänderungen

Projekteinrichtung: Von lokal zu Databricks

Bevor dbt-Jobs auf Databricks laufen können, muss ein dbt-Projekt initialisiert und mit der Databricks-Umgebung verbunden werden. In der Regel geschieht das lokal, bevor der Code über Git in Databricks deployt wird.

dbt lokal initialisieren

Zunächst wird das Projekt in einer lokalen Entwicklungsumgebung erstellt. Mit dem dbt-Databricks-Adapter funktioniert das wie folgt:

pip install dbt-core dbt-databricks dbt init my_dbt_project code>

1. dbt Project Root erstellen

Während der Einrichtung wählen Sie Databricks als Ziel-Adapter und hinterlegen die Verbindungsdaten sowie ein Access Token. Anschließend wird die typische dbt-Verzeichnisstruktur (models/, seeds/, tests/ etc.) samt Konfigurationsdatei dbt_project.yml erstellt.

Image_1_dbt_folder_structure

2. Projekt nach Databricks übertragen

Nachdem das Projekt lokal funktioniert, wird es in ein Git-Repository übertragen und mit Databricks verbunden. Git sorgt für Versionierung, ermöglicht kollaboratives Arbeiten und garantiert Nachvollziehbarkeit, welche Version in der Produktion läuft.

Image_2_dbt_folder_structure_databricks


Sichern Sie sich jetzt Ihren Platz für unser Webinar am 11. November!

Kostenloses Webinar: Bridging Business and Analytics: The Plug-and-Play Future of Data Platforms Navigating between Databricks, SAP Business Data Cloud, Fabric & Dremio     Hier anmelden!  Webinar ausschließlich auf Englisch


Datenmodellierung mit dbt

An diesem Punkt verfügen Sie über ein funktionsfähiges Grundgerüst Ihres dbt-Projekts: Es lässt sich lokal für Entwicklungszwecke ausführen und steht nun auch in Ihrer Databricks-Umgebung für den produktiven Einsatz bereit.

Die nächsten Schritte bestehen darin, das eigentliche Datenmodell zu implementieren und anschließend einen Databricks Job einzurichten, um die dbt-Ausführungen zu orchestrieren. So können Ihre Transformationen automatisch geplant, überwacht und bei Bedarf skaliert werden.

Beginnen wir mit dem Datenmodell: In unserem Anwendungsfall möchten wir die weit verbreitete Medallion-Architektur umsetzen – ein von Databricks etabliertes Design-Pattern.
Dabei werden Daten in drei Schichten strukturiert: Bronze (Rohdaten), Silver (bereinigte und strukturierte Daten), Gold (angereicherte Daten).

Jede Schicht baut auf der vorherigen auf, um schrittweise konsistente, aussagekräftige Datensätze zu erzeugen, aus denen sich Metriken und fachliche Erkenntnisse für Analysen und Reporting ableiten lassen.

Um die Vernetzung moderner Datenlandschaften realitätsnah abzubilden, stammen die Quelldaten in unserem Beispiel aus mehreren Systemen:

Eine Tabelle wird aus einer PostgreSQL-Datenbank über die Lakehouse Federation mit dem Databricks Unity Catalog verbunden, während eine weitere Tabelle als Delta-Tabelle direkt im Databricks Catalog gespeichert ist.

Bronze Layer – Rohdaten sammeln

Der erste Schritt bei der Implementierung der Medallion-Architektur besteht darin, die Rohdaten in Bronze-Schicht-Tabellen zu replizieren. Ziel ist es, alle Daten zentral im selben System und am gleichen Speicherort verfügbar zu machen. In dieser Phase erfolgen keine logischen Transformationen oder Anreicherungen der Daten – sie werden lediglich unverändert übernommen.

An dieser Stelle kommen die dbt-Modelle ins Spiel. Hier werden sowohl die Datenquellen als auch die Zieltabellen inklusive eventueller Transformationen definiert.

Dies geschieht über die Datei sources.yml im Verzeichnis /models sowie über die zugehörigen .sql-Dateien innerhalb der dbt-Modellstruktur. In diesem Bereich können Sie Ihr Datenmodell außerdem hierarchisch strukturieren, um es den Anforderungen Ihrer Architektur und Ihres Teams anzupassen.

Image_3_dbt_folder_structure_models

Die Definition der Quellen in unserem Beispiel erfolgt in der Datei sources.yml:

version: 2 sources: - name: sap_erp_file_export database: nextlytics schema: nextlytics-demo tables: - name: raw_planvorgaben - name: external_postgres database: ext_nly_demo_postgres schema: public tables: - name: raw_maschinendaten

Für unsere Bronze-Tabellen möchten wir lediglich die Quelldaten in Delta-Tabellen mit einem festgelegten Namen klonen

Dazu erstellen wir für jedes Ziel eine eigene .sql-Datei, wobei der Dateiname den Namen der zu erzeugenden Zieltabelle festlegt.

Zum Beispiel wollen wir alle Daten aus unserer externen PostgreSQL-Tabelle raw_maschinendaten in eine Tabelle mit dem Namen b_maschinendaten importieren. Das Präfix b_ zeigt dabei an, dass es sich um eine Tabelle der Bronze-Schicht handelt.

Wir erstellen also eine Datei namens b_maschinendaten.sql mit folgendem Inhalt:


Das hier verwendete dbt-Tag „bronze“ wird später relevant, wenn wir die Jobs orchestrieren.

Nachdem wir dieselbe Logik auch auf unsere andere Datenquelle angewendet haben, verfügen wir über zwei Datenmodelle auf Bronze-Ebene: b_maschinendaten und b_planvorgaben.

Silver Layer: Verfeinern und Bereinigen der Daten

Für unsere Silver-Schicht möchten wir beide Tabellen zu einer einzigen zusammenführen.
Da eine der Tabellen Informationen über Produktionsmaschinen enthält und die andere Daten über geplante Maschinenoperationen, lassen sich diese beiden Datensätze problemlos per SQL verknüpfen.

Die Transformationslogik in SQL wird direkt im Modell für unsere Silver-Tabelle s_machine_output angewendet:


Beachten Sie, dass unsere Silver-Schicht-Tabelle in diesem Beispiel weiterhin deutschsprachige Spaltennamen enthält, die weitgehend aus der Datenquelle übernommen wurden.

Wenn Sie mit internationalen Teams arbeiten, ist es in einem Enterprise Data Warehouse übliche Best Practice, die Spaltennamen ins Englische zu übersetzen – idealerweise bereits in der Bronze- oder Silver-Schicht.

Später im Beitrag zeigen wir, wie dbt solche Änderungen auch nachträglich elegant unterstützt.

Gold Layer: Aggregation und KPI-Berechnung

In der Gold-Schicht wollen wir aussagekräftige Kennzahlen für Reporting und Dashboards bereitstellen.

Dazu berechnen wir zentrale KPIs auf Basis der vorhandenen Daten – in diesem Fall die OEE (Overall Equipment Effectiveness, deutsch: Gesamtanlageneffizienz), um Einblicke in die Effektivität unserer simulierten Produktionsvorgänge zu gewinnen.

Das Modell für unsere Gold-Tabelle g_oee_performance sieht daher wie folgt aus:


Damit ist die Datenmodellierung abgeschlossen. Im nächsten Schritt implementieren wir die Orchestrierung der Ausführungen über Databricks Jobs.

Vorbereitung der Databricks-Compute-Umgebung

Bevor wir den Job konfigurieren, sind einige Vorbereitungen am Cluster erforderlich – denn Databricks-Jobs laufen auf Spark-Clustern.

In unserem Fall benötigen wir einen Cluster, der folgende Anforderungen erfüllt:

1. Die Python-Bibliothek dbt-databricks muss installiert sein (über den Tab Libraries in der Clusterkonfiguration).

Image_4_databricks_libraries

2. Der Cluster muss Zugriff auf ein gültiges Databricks Access Token besitzen, um die Databricks-API für das Erstellen der Tabellen verwenden zu können.
 Dies lässt sich über Umgebungsvariablen in Kombination mit dem Secrets Management von Databricks konfigurieren.

Image_5_databricks_environment_var

Konfiguration und Ausführung des Databricks Jobs

Nachdem die Modelldefinitionen abgeschlossen und der Cluster vorbereitet sind, konfigurieren wir die Pipeline für Beladung und Transformation über die Databricks Jobs-Oberfläche.

Der Job wird in diesem Beispiel in drei Subtasks unterteilt – jeweils für eine Schicht des Datenmodells – sowie in einen zusätzlichen Task, der den SQL-Code als Datei für Debugging-Zwecke generiert (falls ein Verarbeitungsschritt fehlschlagen sollte).

Image_6_databricks_job_tasks

Hier kommen die zuvor definierten Tags zum Einsatz:
Durch diese logische Gruppierung können wir gezielt Teilbereiche der dbt-Transformationen mit einem einzigen Aufruf ausführen.

Image_7_databricks_job_details

Wichtig ist dabei, den korrekt vorkonfigurierten Cluster für die Pipeline-Ausführung auszuwählen.

Image_7_databricks_job_details

Sobald alles konfiguriert ist, lässt sich der Job über den Tab „Runs“ starten.
Dort können Sie zeitgesteuerte Ausführungen einrichten, die Data Lineage nachvollziehen und den Status jeder Pipeline überwachen.

Image_8_databicks_job_runs_interface

Verfolgung von Datenänderungen und Schemaänderungen

Die Zeit schreitet unaufhaltsam voran und damit können sich auch die von Ihrem Unternehmen erzeugten und genutzten Daten verändern. Sei es durch ein Versionsupdate in einem der Quellsysteme, eine Migration zu einer anderen Quelldatenbank oder neue Geschäftsanforderungen, die eine Anpassung Ihrer etablierten Datenstruktur erfordern. Hier wollen wir kurz beleuchten, wie ein Setup wie solche Schema-Evolution (die Änderung von Datenstrukturen) und Datenzusammenführungen handhaben kann.

Betrachten wir, dass wir für unsere Silver-Layer-Transformation die deutschen Spaltennamen durch aussagekräftigere und einheitliche englische Übersetzungen ersetzen möchten.

In diesem Fall können wir einfach die SELECT-Anweisung in der Modelldefinition leicht anpassen, z. B.:


Beim nächsten Lauf der Aufgabe, die die Silver-Layer-Tabelle aktualisiert, wird das neue Spaltenschema automatisch von dbt angewendet. Nun bleibt nur noch, die Referenzen in der SELECT-Anweisung der Gold-Level-Tabelle anzupassen, und schon ist die Transformation abgeschlossen. Dies funktioniert, weil das Modell so konfiguriert, dass bei jedem Datenladen ein kompletter Tabellen-Refresh erfolgt.

Natürlich hat diese Full-Replace-Strategie, obwohl sie einfach umzusetzen ist, signifikante Nachteile, wenn die Datenmenge wächst oder Schemaänderungen häufiger werden. Dafür bietet dbt die Möglichkeit, inkrementelle Modelle zu verwenden. Damit können nur neue Daten geladen werden, die noch nicht verarbeitet wurden, über ein automatisches Merge-Verfahren. Dafür muss die Konfiguration in der Modelldefinition hinterlegt werden.

Dies eröffnet eine Vielzahl neuer Ansätze, z. B. können innerhalb der SELECT-Anweisung des Modells bedingte Operationen implementiert werden, die nur bei einem inkrementellen Lauf eines bereits bestehenden Modells ausgelöst werden. Das könnte z. B. so aussehen, dass ein Datums-/Zeitwert aus der Datenquelle mit dem entsprechenden Wert aus der Modell-Tabelle verglichen wird, um festzustellen, ob neue Daten zwischen zwei Pipeline-Durchläufen hinzugekommen sind:


Diese Anwendungsfälle kratzen nur an der Oberfläche dessen, was mit dbt möglich ist. Es gibt unzählige weitere nützliche Funktionen, um komplexe Szenarien oder performanceintensive Datenladeprozesse zu bewältigen, die den Rahmen dieses Artikels sprengen würden.

Von SQL zum Enterprise Data Warehouse mit dbt: unser Fazit

Mit dbt auf Databricks verwandeln Sie ein Greenfield-SQL-Warehouse in ein verlässliches Betriebsmodell: klare Medallion-Struktur, explizite Quell- und Modelldefinitionen sowie reproduzierbare Pipelines über Git und Databricks Jobs. Tags ermöglichen die abschnittsweise Ausführung von Prozessen, inkrementelle Modelle halten die Kosten im Griff, und Data Lineage sowie Monitoring bieten Transparenz von Bronze bis Gold Layer für Kennzahlen wie OEE.

Kurz gesagt: ein reibungsloser Weg vom lokalen Prototyp zur produktionsreifen Datenlogistik – versioniert, testbar und skalierbar. Wenn Sie Ihr Lakehouse mit dbt und Databricks aufbauen oder modernisieren möchten, unterstützen wir Sie bei Architektur, Implementierung und betriebssicherer Umsetzung – praxisnah und auf den Punkt.

Wenn Sie mehr darüber erfahren möchten, wie Sie mit dbt das volle Potenzial moderner Data-Warehousing-Lösungen in Databricks ausschöpfen können, kontaktieren Sie uns gerne!

 

Erfahren Sie mehr über  Databricks

FAQ

Hier finden Sie einige der häufigsten Fragen zur Datenmodellierung mit dbt auf Databricks

Warum dbt auf Databricks verwenden?

Dbt (data build tool) ist ein Framework für Datenmodellierung, das templatisiertes SQL verwendet, um komplexe Datenpipelines und Transformationen in wiederverwendbaren, nachverfolgbaren Code- und Konfigurationsdateien zu definieren. Während Databricks eine „Greenfield“-SQL-Warehouse-Plattform auf Basis der hochskalierbaren Data Lakehouse-Architektur anbietet, kann dbt die Routinen und Konventionen bereitstellen, die benötigt werden, um ein Enterprise Data Warehouse mit Hunderten von Datenquellen und Tausenden von miteinander verknüpften Datenmodellen zu betreiben.

Wie starte ich lokal?

Folgen Sie einem beliebigen dbt-Quick-Start-Tutorial im Web. Kurz gesagt, sind ein paar grundlegende Schritte nötig:

pip install dbt-core dbt-databricks → dbt init <project> → Databricks-Adapter auswählen, Workspace-Informationen + Access Token hinzufügen; Ordner wie models/, tests/, dbt_project.yml werden erstellt.

Wie deploye ich in den Databricks-Workspace?

Push in Git und verbinde einen Ordner in deinem Databricks-Workspace für Versionskontrolle, Team-Zusammenarbeit und reproduzierbare Ausführungen.

Wie sieht das Datenmodell der Medallion-Architektur aus?

Die Erstellung eines logischen Warehouse-Modells mit der Medallion-Architektur ist keine exakte Wissenschaft, sondern weitgehend projekt- und teamabhängig. Unsere Beispiele verwenden grob folgende Interpretation:

  • Bronze: Rohdaten klonen und speichern
  • Silver: Bereinigen/standardisieren & joinen
  • Gold: KPIs berechnen (z. B. OEE)
Kann ich Data Vault-Modellierung mit dbt auf Databricks verwenden?

Ja, ein Modell nach Data Vault-Spezifikationen zu erstellen, ist ein perfektes Szenario für dbt auf Databricks. Data Vault-Logik kann anstelle der Medallion-Architektur oder in Kombination damit genutzt werden. Vorgefertigte Templates für Data Vault-Modellierung mit dbt stehen zur Verfügung, sodass Data Engineers schnell Hubs, Links und Satelliten-Strukturen auf Databricks erstellen können.

Wie orchestriere ich Runs?

Verwenden Sie Databricks Jobs: Unteraufgaben pro Layer erstellen, dbt-Tags für Teilmengen, Ausführungen planen/überwachen, die Lineage einsehen und SQL-Artefakte für Debugging exportieren.

Was sind die Voraussetzungen für den Cluster?

Installieren Sie die Python-Bibliothek dbt-databricks; Access Token über Environment Variables/Secrets bereitstellen.

Wie gehe ich mit Schema-Evolution um?

Wählen Sie zwischen Full Refresh (einfach, aber bei großer Datenmenge kostenintensiv) oder inkrementellen Modellen mit is_incremental() und timestamp-basierten Merges für performantes Wachstum. Inkrementelle Änderungen in Kombination mit einem vollständig versionierten Datenmodell-Ansatz wie Data Vault gelten als Goldstandard für resilientes und reproduzierbares Warehousing.

,

avatar

Robin Brandt

Robin Brandt ist Berater für Machine Learning und Data Engineering. Durch langjährige Erfahrung im Software und Data Engineering bringt er Expertise in den Bereichen Automatisierung, Datentransformation und Datenbankmanagement mit - speziell im Bereich der Open Source Lösungen. Seine Freizeit verbringt er mit Musizieren oder dem Kreieren scharfer Gerichte.

Sie haben eine Frage zum Blog?
Fragen Sie Robin Brandt

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.
Datenmodellierung mit dbt auf Databricks: Ein Praxisleitfaden
16:13

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge