SQL ist weiterhin aus der Datenanalyse nicht wegzudenken – es ist vergleichsweise einfach zu lernen und Anwender können es ohne zusätzliche Werkzeuge auf einer Datenbank ausführen. Entsprechend ist es bei vielen Datenanalysten und Engineers beliebt. Es hat aber auch Schwächen, die besonders im Vergleich zu Python auffallen. Dort gibt es neben den bekannten Machine-Learning-Frameworks auch für Datenpipelines eine Reihe von Werkzeugen, ob zur Datenvalidierung oder Orchestrierung. Dinge, die mit SQL allein gar nicht oder nur mühselig abzubilden sind.
Zudem ist bei Datenplattformen Python oft der Standard für die Verarbeitung von Daten. Da mit SQL aber vergleichsweise gut Transformationen auf Daten ausgedrückt werden können, findet man dann häufig folgendes Pattern: Python-Glue-Code wird geschrieben, der dann SQL-Statements ausführt. Im Extremfall ist das Ganze auch noch über Notebooks verteilt.
dbt (data build tool) ist ein Kommandozeilentool, um mit SQL solche Datenpipelines strukturiert aufzubauen. Ebenso ermöglicht es die Validierung der Daten direkt in der Pipeline. Es hilft auch bei der Historisierung von Stammdaten, die regelmäßig aus operativen Systemen abgezogen werden. Als Ergebnis gibt es nicht nur saubere und gefüllte Tabellen in einer Datenbank, sondern auch Dokumentation und Abhängigkeitsgraphen.
Mit SQL und dbt lassen sich nicht nur Daten aufbereiten. Auch die darauf folgenden, regelmäßigen Analysen und Auswertungen lassen sich so bequem automatisieren. Inklusive Rückverfolgbarkeit, welche Analyse welche Daten benutzt. Und wenn die Basisdaten inhaltliche Fehler aufweisen, werden die Auswertungen, die darauf basieren, gar nicht erst aktualisiert.
Was muss man dafür tun? Weiterhin SQL schreiben. Außerdem ist ein wenig Konfiguration in YAML notwendig. Optional lassen sich auch Jinja2-Templates verwenden, um komplexere oder wiederkehrende Aufgaben zu lösen. Zudem gibt es eine Reihe von Bibliotheken, die sich unkompliziert einbinden lassen, zum Beispiel für erweiterte Tests auf den Daten. Ausgeführt wird das SQL dann direkt auf der konfigurierten Datenbank. Konzepte für die Trennung von Entwicklung und Produktion sowie die parallele Entwicklung am gleichen Datenmodell sind ebenfalls vorhanden.
dbt ermöglicht es, (Data) Engineering Practices auch für SQL-Datenpipelines anzuwenden. Wer Datenpipelines mit SQL schreibt, sollte es dringend verwenden. Gearbeitet wird aktuell auch an einer Integration von Python. So soll es möglich sein, manche Teile der Pipeline in SQL, andere in Python zu implementieren.
Dieser Artikel erschien am 20.01.2023 im Rahmen des codecentric-Innovations-Newsletters. Wenn ihr immer direkt über die neusten IT-Trends und -Techniken informiert sein wollt, könnt ihr den Newsletter hier abonnieren.
Weitere Beiträge
von Matthias Niehoff
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Matthias Niehoff
Head of Data
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.