Was ist eine Data Pipeline? Erklärung und Beispiele

Die Methodik Daten von einem System in ein anderes zu überführen nennt man “Data Pipeline”. Data Pipelines bilden die Basis für datenbasiertes Arbeiten und rücken somit immer mehr ins Zentrum einer Data Driven Company, um Daten schnell und in hoher Qualität zur Verfügung zu stellen. Doch gibt es eine hohe Varianz von Data Pipelines und wie man diese realisieren kann – was wir in diesem Artikel vorstellen.

Was ist eine Data Pipeline?

Als Data Pipeline wird der automatische Transfer von Daten aus einer Quelle in ein Ziel betitelt. Die Ausprägung einer solchen Pipeline kann viele Arten annehmen: Ob nun die Konsolidierung mehrerer Dateien in einen Report, der Transfer von Daten aus einem Quellsystem in ein Data Warehouse oder Event Streaming – es gibt eine hohe Bandbreite an Anwendungsfällen, um eine Data Pipeline einzurichten.

Die Relevanz dieser Data Pipelines wird sichtbar, wenn man diese Beispiele weiter denkt. Jedes Unternehmen besitzt und verarbeitet Daten – doch der Mehrwert entsteht meist erst, wenn man Daten aus ihrem Ursprungssystem extrahiert und zur weiteren Verarbeitung bereitstellt. Data Analytics, Data Science mit Machine Learning oder einfach die Bereitstellung von konsolidierten Datensätzen für Kanäle wie Website oder App haben alle Data Pipelines zur Grundlage, um kontinuierlich Daten in hoher Qualität zur Verfügung zu stellen.

Die Vorteile einer Data Pipeline sind offensichtlich: Durch die Automatisierung des Prozesses wird dieser pfleg- und optimierbar und unabhängig von menschlichen Fähigkeiten, Verständnis oder Zeit. Die Herausforderungen hingegen werden schnell sichtbar, so sich etwas an den Quell- oder Zielsystemen ändert: Data Pipelines sind oft fragil und müssen bei Änderungen direkt angepasst werden.

Data Pipeline Prozess: ETL vs. ELT 

Im Generellen ist “Data Pipeline” der Überbegriff für alles, was Daten von einem Ort an einen anderen schiebt. Jedoch kann man hier in verschiedenen Prozessschritten als auch Verarbeitungsarten unterscheiden.

Extract-Transform-Load (ETL): Der klassische Weg

Der historisch etablierteste Weg, um eine Data Pipeline aufzubauen ist eine Extract-Transform-Load (ETL) Pipeline. Hierbei werden Daten aus einem System oder einem Laufwerk extrahiert, in einem Zwischenschritt vorbereitet und dann in ein anderes System geladen. 

Dabei sind diese drei Zwischenschritte auch mit weiterer Verfeinerung versehbar: zum Beispiel beinhaltet der “Transform”-Teil auch die Konsolidierung von Datenquellen mit anderen, die Identifikation und Filterung von Einträgen mit niedrigerer Datenqualität und mehr. 

Der “Load”-Teil hingegen ist meist nicht nur das Überführen in ein anderes, fixes System, sondern kann auch die Bereitstellung der aufbereiteten Daten mittels einer API oder eines Containers wie Docker bedeuten.

Extract-Load-Transform: Daten für den Data Lake

Eine der in letzten Jahren häufiger auftretenden Abwandlungen zum ETL-Prozess ist der ELT-Prozess. Da in ersterem die Daten zuerst aufbereitet werden, gehen in diesem Schritt gegebenenfalls auch Informationen verloren. Der ETL-Prozess kommt ursprünglich aus dem Data Warehousing-Bereich, für den man klar strukturierte Informationen benötigt.

Dem gegenüber steht der ELT-Prozess. Hier werden die Daten erst in eine andere Infrastruktur überführt, bevor sie bearbeitet werden. Die Idee ist, dass somit möglichst viel der Originalform und -inhalte bestehen bleiben. Dies ist besonders im Umfeld von Data Science relevant, damit möglichst genaue Machine Learning Modelle trainiert werden können. 

Daher ist der ELT-Prozess auch vor allem im Bereich Big Data und Data Lakes zu finden. Auch unstrukturierte Daten werden eher über einen ELT-Prozess abgewickelt, als dass nur die extrahierte Information gespeichert werden.

Im generellen nennt man ETL oder ELT auch “Data Ingestion” – also die Datenaufnahme.

Data Pipeline Verarbeitung: Batch vs. Stream Processing

Was die Verarbeitungsmethodik einer ETL oder ELT-Data Pipeline betrifft, unterscheidet man generell zwischen zwei Arten. Das Batch Processing, in dem Daten für einen bestimmten Zeitraum angesammelt und dann gemeinsam verarbeitet werden und Stream Processing, bei dem jedes Event einzeln verarbeitet werden.

Batch Data Processing: Effizient aber langsam

Bei einer Batch Data Pipeline werden Daten in einem bestimmten Zeitintervall verarbeitet, meist einmal täglich oder stündlich. Dies hat einige Vorteile: Man kann besser auf einer Vielzahl von Daten operieren, es kann auf eine Uhrzeit terminiert werden in der wenig Last auf den Kernsystemen liegt und ein fixer Prozess lässt sich einfach pflegen und erweitern.

Die Nachteile von Batch Data Processing sind allerdings auch offensichtlich: Eine 24-Stunden-Aktualität ist nicht immer genügend, wenn eine Funktion am Beginn einer Aufwendigen Batch Pipeline ausfällt gibt es schnell Probleme und Fehler werden meist erst am nächsten Mogen festgestellt.

Nichtsdestotrotz sind die meisten existierenden Data Pipelines noch im Batch Format. Dies ist auch durch Legacy Systeme, also alte Systeme, bedingt. Ob nun per FTP-Upload oder Datenbank-Extrakt: vor vielen Jahren wurde noch nicht angedacht, Daten weitreichend im operativen Bereich einzusetzen.

Realtime Stream Processing: Up-to-date aber aufwendig

Als Alternative zum Batch Processing hat sich in den letzten Jahren das Data Stream Processing, oft auch Realtime Processing genannt, etabliert. Hier warten Data Pipelines nicht bis zu einem bestimmten Zeitpunkt bis zur Datenverarbeitung, sondern jedes Event wird sofort gesendet und weiteren Bestimmungszwecken zugeführt.

Dieses Realtime-Streaming löst vor allem das Problem von Batch Pipelines, dass die Daten immer aktuell sind. Auch auf besondere Events kann sofort reagiert werden, statt erst nach Stunden oder Tagen – besonders hilfreich zum Beispiel zur Detektion von Betrug im Banken- oder Finanzsektor. 

Auf der anderen Seite sind Event Pipelines per se komplizierter in die IT-Infrastruktur zu integrieren und zu pflegen. Der Aufwand von sowohl Finanzen als auch notwendiger Expertise ist somit höher und schreckt noch manche ab, Stream Processing einzusetzen.

Details zum Unterschied von Batch Processing und Event Streaming findet ihr in unserem Artikel “Batch Processing vs. Event Stream Processing in Big Data Infrastruktur”.

Tools für Data Pipelines

Generell sehen wir vier Kategorien von Tools um Data Pipelines aufzubauen. Dabei variieren die Schwerpunkte jeder Herangehensweise und auch die Kombination verschiedener Tools ist in vielen Unternehmen selbstverständlich.

Spezialisierte ETL-Tools

In der ersten Kategorie sind die spezialisierten ETL-/Data Processing Tools wie Talend, MuleSoft oder Pentaho aufgehoben. Solche Tools konzentrieren sich als Middleware-Lösung auf die Aufgabe, Daten aus Systemen zu extrahieren, zu Transformieren und über verschiedene Herangehensweisen (zum Beispiel via API) bereit zu stellen.

Manche dieser Tools gehen auch die nächsten Schritte und bieten weitere Funktionen im Bereich von Data Governance, Data Management und Data Security an. Dennoch sind sie im Kern fokussiert auf den Aufbau von Data Pipelines, um Data Engineers einfache und pflegbare Tools an die Hand zu geben.

Programmiersprachen

Während ETL-Tools nach und nach das Feld in der Breite übernehmen, ist die klassische Weise eine Data Pipeline aufzubauen nach wie vor die Umsetzung via Programmiersprache. Während Python im Data Science Umfeld sehr stark bevorzugt wird, halten Java oder Scala selbstverständlich langsam auch mit.

Der Vorteil einer programmierten Data Pipeline ist einfach, dass absolute Freiheit in der Umsetzung gewährleistet ist. Egal welche Schnittstelle, welche Transformationen welcher Komplexität und welcher Einsatz der Daten: Durch die Freiheit von programmierter Umsetzung ist alles möglich. 

Die Nachteile sind ebenso offensichtlich. Während man GUI-basierte Tools gut trainieren kann und mittels standardisierter Prozesse eine Implementierung einfacher ist, muss Code sehr spezialisiert umgesetzt und gepflegt werden. Auch die Implementierung an sich dauert im Schnitt länger, da ETL-Tools zum Beispiel Schnittstellen direkt standardisiert zur Verfügung stellt, während man sie im Code nochmal eigens umsetzen muss. 

Cloud

Wer sich in einer Cloud Umgebung bewegt, dem werden solche Gedanken meist direkt abgenommen. Jeder größere Cloudanbieter hat eine eigene ETL-Suite (z.B. Azure Data Factory, AWS Glue), mit der sich Data Pipelines nahtlos in die Infrastruktur einfügen lassen. Selbstverständlich kann man Pipelines auch manuell umsetzen (z.B. mittels AWS EC2 Instanz), aber dies ist nur in seltenen Fällen notwendig.

Standalone / Data Mining Tools

DIe letzte Kategorie sind noch generelle Data Mining Tools. Beispielsweise KNIME oder RapidMinder haben alle Funktionalitäten um ETL- oder auch Data Science Pipelines zu erstellen. Das Problem mit diesen GUI-basierten Tools ist, dass sie weder in einer Cloud-Umgebung laufen können, noch sich nahtlos mit anderen Prozessen integrieren. Dennoch setzen einige Unternehmen auf GUI-basierte Data Pipelines, um Data Engineers in diesem Bereich möglichst redundant zu machen und den Pflegeaufwand zu verringern.

Beispiele für Data Pipelines

Zum Abschluss des Artikels möchten wir noch drei Beispiele für Data Pipelines aufzeigen, um die Bandbreite an Einsatzzwecken zu verdeutlichen.

File Reader into DWH

Ein häufiger Einsatzzweck ist das einfache einlesen und umformatieren einer Datei, um sie danach in ein Data Warehouse zu überführen. Zum Beispiel lädt man ein Excel-File über python, wendet Transformationsoperationen an und speichert diese dann mittels SQL in eine Oracle Datenbank. Von dort kann es visualisiert werden, zum Beispiel mittels Google Data Studio.

Dieses Vorgehen ist ein klassischer Anwendungsfall, um jede Nacht eine Batch-Operation laufen zu lassen.

Product Information API

Einen anderen Fokus hat zum Beispiel eine Product Information API. Hierbei können zum Beispiels mittels ETL-Tool Informationen aus PIM und ERP zusammengezogen und konsolidiert werden, um diese dann über eine API auszuliefern. Egal ob als Datei oder REST API – die Bereitstellung von konsolidierten Datenquellen an verschiedene Kanäle hat oft einen hohen Mehrwert im Unternehmen.

IoT Event Streaming

Als drittes Beispiel eine etwas aufwendigere Pipeline die Daten von einem Internet of Things basierten Edge Device in die Cloud spielt. Mittels event streaming werden die Daten in Real-Time ausgespielt, in eine unstrukturierte Datenbank repliziert und on-stream analytics durchgeführt. Die Datenmengen und -qualität erfordert dementsprechend hohe Expertise und Überwachung.