Kurz zusammengefasst beschreiben Datenpipelines einfach einen Prozess der Datenbewegung von einem Ort zum anderen. Es geht also um das Management von Daten als Prozess.  Eine Pipeline automatisiert Prozesse der Datenextraktion, Transformation und Speicherung. Beispielsweise könnten wir eine Datapipeline bauen um die Daten von der Datenbank auf dem Server X zur Datenbank auf dem Server Y zu transferieren.

Wer ist für die Erstellung von Datenpipelines verantwortlich?

Je nach Größe der Firma sind dafür entweder Data Engineers oder Datenwissenschaftler verantwortlich. Hierzu habe ich breits hier einen Beitrag geschrieben.

In kleineren Firmen, die aus finanziellen Gründen keine großen Datateams aufbauen möchten, wären für diese Aufgaben auch Data Scientist verantwortlich.

In größeren Firmen gibt es meistens eine Arbeitsteilung und für die Bereitstellung der Datenpipeline ist der Data Engineer verantwortlich.

Was sind Datenpipelines?

Datenpipeline ist ein sehr genereller Begriff, welcher letztendlich verschiede Arten von Datenmanagementprozessen umfassen kann.

Die klassischen Sorte der Datenpipeline ist die sogenannte ETL-Pipeline (Extract-Transform-Load-Pipeline).

ETL-Data Pipeline

Die Extract-Transform-Load Pipeline ist die bekannteste Pipeline der Datenbearbeitung und beschreibt genau die drei Schritte der Datenbearbeitung:

1. Extrahieren der Daten

Im ersten Schritt werden die Daten aus einer Datenbank oder einer anderen Datenquelle extrahiert. Da es sich in diesem Fall um Rohdaten handelt, können hier bereits verschiedene Probleme mit Datenformaten und Speicherung auftreten.

Als Quellen für die Daten können verschiedene Bereiche dienen.

Datenbanken / API´s

Daten können unter anderem aus verschiedenen Datenbanken extrahiert werden oder aber aus den sogenannten API´s. Verschiedene Datenbankanwendungen wurden bereits oft besprochen. Hier gehe ich deswegen insbesondere auf die Datengewinnung über die sogenannten API´s ein.

Der Begriff API steht für „application programming interface“. Vereinfacht gesagt, erlauben uns verschiedene Firmen und Organisationen Teile ihrer Daten abzurufen, indem sie uns Zugang zu ihren Daten über das spezielle Interfaces (API) gewähren.

Beispielsweise erlaubt Facebook/Instagram den Usern Zugang zu seinem API, um verschiedene Daten abzurufen. Allerdings muss hier der Zugang erst beantragt werden. Ähnlich sieht es bei Twitter aus. Manche Unternehmen sind hier großzügiger, manche weniger. In den meisten Fällen muss man einen gut begründeten Antrag stellen. Im optimalen Fall erhält man dann spezielle Log-In Daten, die sog. Keys. Mit den Keys kann man dann die Daten direkt via Shell oder andere Anwendungen abrufen.

Wie das in der Praxis funktioneieren kann, habe ich ein wenig bereits im Beitrag über Fake Follower auf Twitter beschrieben. Hierzu habe ich auch Zugangsdaten zum Twitter API bekommen. In diesem Blogbeitrag habe ich die User Daten heruntergeladen um die Accounts auf ihre Fake-Followershaft zu überprüfen.

Es gibt aber auch Organisationen, die den Zugang zu ihrem API ohne Antrag bereitstellen, beispielsweise die Weltbank. Auf der offiziellen Webseite der Weltbank kann die Dokumentation zum API gelesen werden.

Netz / Web Scraping

Eine Alternative zum Zugang zu den APIs ist die Informationen automatisiert aus dem Internet zu ziehen (das sogenannte Web Scraping). Hier kann man mittels eines Skripts ausgewählte Informationen aus einer Webseite ziehen und sie in einem Datenbank speichern. Das Web Scraping bewegt sich allerdings auf der Grenze zu Legalität. Man muss aufpassen, welche Informationen man aus den Webseiten gewinnen möchte.

2. Transform

Der zweite Schritt der ETL-Pipeline  beschreibt den klassischen Prozess der Datenbearbeitung. Beispielsweise sind Daten, die wir über API gewinnen oft nur in roher Fassung vorhanden. Wir müssen sie dann entsprechend bereinigen, um sie in einen Machine Learning Algorithmus einspeisen zu können.

3. Load

Im dritten und letzten Schritt der klassischen ETL-Pipeline werden die bearbeitetet Daten dann in die entsprechenden Datenbanken / Speicherstellen eingespeist.

Eine etwas andere Version der ETL-Pipeline ist auch die ELT-Pipeline. Hier werden die Schritte Load und Transform vertauscht. Die ETL Pipeline transformiert die Daten bevor sie in die neue Speicherstelle geleitet werden. Hier werden die Daten erst in die neuen Speicherstelle geführt und erst dann transformiert. Hier eine gute Erklärung zu dem Unterschied zwischen den beiden Pipelines.

Machine Learning Pipelines in Python sklearn

Datenpipelines können in den verschiedenen Bereichen im Data Science Prozess eingesetzt werden. Es gibt somit Machine Learning Data Pipeleines, Natural Language Processing Pipelines usw.

Python unterstützt das Bauen verschiedener Pipelines mit seinen diversen Bibliotheken.

Ein Beispiel, wie eine Pipeline in Natural Language Processing gebaut werden kann, enthält dieser Artikel auf Medium.

Wozu sind Datenpipelines gut?

Vom Prinzip erleichtern Datenpipelines den gesamten Arbeitsprozess.

Sie automatisieren einzelne Programmierschritte.

Da die Datenpipelines den Prozess modularisieren, kann man das gesamte Projekt besser überblicken. Dies erleichtert die Fehlerbehebung. Auch Veränderungen im gesamten Projekt sind dann leichter vorzunehmen. Letztendlich beschleunigt dies den gesamten Prozess.

 

Foto: Canvas