Wenn eine Datenanalyse-Pipeline nach erfolgreichem Proof of Concept (POC) in Produktion gehen soll, ist dies oft ein langer Weg. Ibis bietet die Möglichkeit, diesen Prozess zu vereinfachen und somit schneller Mehrwert zu erzeugen.
Nach der erfolgreichen lokalen Entwicklung einer Analyse-Datenpipeline in Python muss der Code oftmals umgeschrieben werden, um in Produktion laufen zu können. Aber muss das eigentlich so sein? Die Python-Ibis-Bibliothek, die der Hauptautor der Python-Pandas-Bibliothek Wes McKinney programmiert hat, bietet eine spannende Lösung, um Datenverarbeitung zwischen Produktions- und Entwicklungsumgebungen anzugleichen und es somit dem Analytics-Team zu ermöglichen, schneller in Produktion zu gehen. Wir zeigen Dir in diesem Blogbeitrag, wie das funktioniert.
Table of Contents
Entwicklung von Reporting & Analytics Pipelines
Reporting & Analytics Pipelines sind ein wichtiger Bestandteil eines datengetriebenen Unternehmens. Zum Bauen von solchen Pipelines nutzen Teams oft isolierte lokale Entwicklungsumgebungen, um möglichst schnell Resultate produzieren zu können. Anschließend stehen sie dann aber vor der Herausforderung, die Pipelines in produktive Systeme zu übertragen. Das Problem: Um beispielsweise im Data Warehouse zu laufen, muss der Code oft umgeschrieben werden.
Ein Grund dafür ist, dass die Datenverarbeitung in der Entwicklungs- und Produktionsumgebung mit verschiedenen Technologien geschieht. Folgende Herausforderungen resultieren aus diesen Unterschieden:
Das Entwicklungsteam benötigt zusätzliche Kenntnisse über die Technologien aus der Produktionsumgebung.
Oftmals werden daher nach Abschluss der initialen Entwicklung zusätzliche oder andere Mitarbeiter:innen benötigt. Dies kann aufgrund der (Nicht-)Verfügbarkeit der Mitarbeiter:innen zu Projektverzögerungen führen.
Beim Umschreiben des Codes können Fehler oder ungewollte Veränderungen auftreten. Dies kann einen Vertrauensverlust bei Stakeholdern verursachen.
Die Python-Ibis-Bibliothek bietet eine Lösung, um die Datenprozessierung zwischen Produktions- und Entwicklungsumgebung zu vereinheitlichen. Mit Python Ibis geschriebener Code kann ohne Anpassungen sowohl auf einer lokalen Umgebung als auch in Datenbanken oder einem Data Warehouse laufen.
Wie funktioniert Python Ibis?
Der erste Schritt beim Arbeiten mit Ibis ist es, eine Verbindung zu einer Datenquelle herzustellen. In einer lokalen Entwicklungsumgebung könnte dies ein Pandas Dataframe sein, in der Produktionsumgebung eine Tabelle in einem DWH oder einer Datenbank.
Illustration einer Ibis-Connection zu einer lokalen SQLite-Datenbank
Anschließend kann die Logik zur Datentransformierung mittels der Ibis API geschrieben werden. Python Ibis generiert dabei für das relevante Datenbackend, wie z. B. Pandas, Spark oder Big Query, den relevanten Code. Die Backends bleiben zuständig für die Ausführung des Codes. Die Datentransformationen werden wie bei anderen Big Data Frameworks lazy ausgeführt, das heißt, sie werden erst dann ausgeführt, wenn sie benötigt werden.
Illustration einer lokalen Ibis-Connection und Unit Testing von Ibis-Code
Use-Case-Beispiel: Churn-Projekt mit Ibis-Bibliothek in der Google Cloud Platform (GCP)
Ein Advanced-Analytics-Team arbeitet an einer neuen Pipeline für die Marketingabteilung. Diese möchte täglich Metriken zur Customer-Churn-Rate für wichtige Kundensegmente erhalten, damit sie ihre Anti-Churn-Kampagne besser steuern kann. Zunächst erarbeitet das Analytics-Team eine Minimal-Viable-Product-Version mit der Ibis-Bibliothek in Jupyter Notebooks auf Vertex AI (Google/User managed VMs mit Jupyterlab vorinstalliert), auf der sie die Daten lokal gespeichert haben.
Sobald die Pipeline die notwendige Qualität erreicht hat, um in Produktion zu gehen, reicht es, die Verbindung zur lokalen Datenquelle mit den entsprechenden Tabellen im Data Warehouse – hier Big Query – zu ersetzen. Das schnelle und einfache Übertragen der Pipeline mittels der Ibis-Bibliothek ermöglicht es dem Team, schneller Mehrwert für die Marketingabteilung zu schaffen.
Illustration von Ibis-Code, der zunächst lokal getestet und dann im Produktions-DWH ausgeführt wird
So viel zu den Basics. Im zweiten Teil dieser Blogserie erläutere ich, wie Du Ibis auf einer GCP Vertex AI aufsetzen kannst. Zudem zeige ich an einem Beispiel, wie einfach eine Pipeline mit Python Ibis von einer lokalen Datenquelle ins DWH umgestellt werden kann.
Wer ist b.telligent?
Du willst den IoT Core durch eine Multi-Cloud-Lösung ersetzen und die Vorteile weiterer IoT-Services von Azure oder Amazon Web Services nutzen? Dann melde Dich bei uns und wir unterstützen Dich bei der Umsetzung mit unserer Expertise und dem b.telligent Partnernetzwerk.
Neuronale Netze werden erfolgreich auf so ziemlich jeden Datentyp angewandt: Bilder, Audio, Texte, Videos, Graphen usw. Nur wenn es um Tabellendaten geht, sind baumbasierte Ensembles wie Random Forests und Gradient Boosted Trees immer noch sehr viel verbreiteter. Wenn man diese erfolgreichen Klassiker durch neuronale Netze ersetzen will, dürfte Ensemble Learning immer noch eine Schlüsselidee sein. Dieser Blogbeitrag erklärt, warum das so ist. Dazu gibt’s ein Notebook mit den praktischen Details.
Azure AI Search, Microsofts serverloses Angebot für das R in RAG, hat seine eigene Skalierungslogik. Sie verbirgt viel von der Komplexität serverbasierter Lösungen, erfordert aber spezifische Kenntnisse.
Polars, der in Rust geschriebene Pandas-Herausforderer, sorgt für erhebliche Beschleunigung nicht nur in der Ausführung des Codes, sondern auch in der Entwicklung. Pandas krankt seit jeher an einer API, die an vielen Stellen „historisch gewachsen“ ist. Ganz anders Polars: Eine API, die von Anfang an auf logische Konsistenz ausgelegt ist und deren Stringenz mit jedem Release sorgfältig gepflegt wird (im Zweifelsfall auch unter Verlusten an Rückwärtskompatibilität), sorgt für eine erheblich schnellere Entwicklung. An vielen Stellen, wo man bisher Pandas eingesetzt hat, kann man es problem los durch Polars ersetzen: In Ibis-Analytics-Projekten, und natürlich einfach für die tägliche Datenaufbereitung aller Art. Gut macht sich die überlegene Performance auch in interaktiven Umfeldern wie PowerBI .