Eine Datenpipeline ist eine Reihe von Datenverarbeitungsschritten. Wenn die Daten noch nicht in die Datenplattform geladen sind, werden sie am Anfang der Pipeline aufgenommen. Dann gibt es eine Reihe von Schritten, bei denen jeder Schritt eine Ausgabe liefert, die die Eingabe für den nächsten Schritt ist. So geht es weiter, bis die Pipeline vollständig ist. In einigen Fällen können unabhängige Schritte parallel ausgeführt werden.
Datenpipelines bestehen aus drei Schlüsselelementen: einer Quelle, einem oder mehreren Verarbeitungsschritten und einem Ziel. In einigen Datenpipelines kann das Ziel als Senke bezeichnet werden. Datenpipelines ermöglichen den Datenfluss von einer Anwendung zu einem Data Warehouse, von einem Data Lake zu einer Analysedatenbank oder beispielsweise zu einem Zahlungsverarbeitungssystem. Datenpipelines können auch dieselbe Quelle und dieselbe Senke haben, so dass die Pipeline nur zur Änderung des Datensatzes dient. Jedes Mal, wenn Daten zwischen Punkt A und Punkt B (oder den Punkten B, C und D) verarbeitet werden, gibt es eine Datenpipeline zwischen diesen Punkten.
Da Unternehmen versuchen, Anwendungen mit kleinen Codebasen zu erstellen, die einem ganz bestimmten Zweck dienen (diese Arten von Anwendungen werden als „Microservices“ bezeichnet), verschieben sie Daten zwischen immer mehr Anwendungen, wodurch die Effizienz von Datenpipelines zu einem entscheidenden Faktor bei ihrer Planung und Entwicklung wird. Daten, die in einem Quellsystem oder einer Anwendung generiert werden, können mehrere Daten-Pipelines speisen, und diese Pipelines können mehrere andere Pipelines oder Anwendungen haben, die von ihren Ausgaben abhängig sind.
Betrachten Sie einen einzelnen Kommentar in sozialen Medien. Dieses Ereignis könnte Daten generieren, die in einen Echtzeitbericht einfließen, der die Erwähnungen in sozialen Medien zählt, in eine Anwendung zur Stimmungsanalyse, die ein positives, negatives oder neutrales Ergebnis ausgibt, oder in eine Anwendung, die jede Erwähnung auf einer Weltkarte darstellt. Obwohl die Daten in allen Fällen aus derselben Quelle stammen, baut jede dieser Anwendungen auf einzigartigen Datenpipelines auf, die reibungslos abgeschlossen werden müssen, bevor der Endnutzer das Ergebnis sieht.
Zu den üblichen Schritten in Datenpipelines gehören Datenumwandlung, -erweiterung, -anreicherung, -filterung, -gruppierung, -aggregierung und die Ausführung von Algorithmen mit diesen Daten.
Was ist eine Big-Data-Pipeline?
Da das Volumen, die Vielfalt und die Geschwindigkeit von Daten in den letzten Jahren dramatisch zugenommen haben, mussten sich Architekten und Entwickler an „Big Data“ anpassen. Der Begriff „Big Data“ impliziert, dass ein riesiges Volumen zu bewältigen ist. Diese Datenmenge kann Möglichkeiten für Anwendungsfälle wie prädiktive Analysen, Echtzeitberichte und Warnmeldungen eröffnen, um nur einige Beispiele zu nennen.
Wie viele Komponenten der Datenarchitektur haben sich auch Datenpipelines zur Unterstützung von Big Data entwickelt. Big-Data-Pipelines sind Datenpipelines, die so aufgebaut sind, dass sie eine oder mehrere der drei Eigenschaften von Big Data unterstützen. Die Geschwindigkeit von Big Data macht es attraktiv, Streaming-Daten-Pipelines für Big Data zu erstellen. Dann können die Daten in Echtzeit erfasst und verarbeitet werden, so dass eine Aktion erfolgen kann. Das Volumen von Big Data macht es erforderlich, dass die Datenpipelines skalierbar sind, da das Volumen im Laufe der Zeit variieren kann. In der Praxis gibt es wahrscheinlich viele Big-Data-Ereignisse, die gleichzeitig oder sehr nahe beieinander auftreten, so dass die Big-Data-Pipeline in der Lage sein muss, große Datenmengen gleichzeitig zu verarbeiten. Die Vielfalt von Big Data erfordert, dass Big Data-Pipelines in der Lage sind, Daten in vielen verschiedenen Formaten – strukturiert, unstrukturiert und halbstrukturiert – zu erkennen und zu verarbeiten.
Datenpipeline vs. ETL
ETL bezieht sich auf eine bestimmte Art von Datenpipeline. ETL steht für „extract, transform, load“. Es handelt sich dabei um den Prozess des Verschiebens von Daten aus einer Quelle, z. B. einer Anwendung, in ein Ziel, in der Regel ein Data Warehouse. „Extrahieren“ bezieht sich auf das Herausziehen von Daten aus einer Quelle, „Transformieren“ auf das Modifizieren der Daten, damit sie in das Ziel geladen werden können, und „Laden“ auf das Einfügen der Daten in das Ziel.
ETL wurde in der Vergangenheit für Batch-Workloads verwendet, insbesondere in großem Maßstab. Aber eine neue Art von Streaming-ETL-Tools taucht als Teil der Pipeline für Echtzeit-Ereignisdaten auf.
Überlegungen zu Datenpipelines
Datenpipeline-Architekturen erfordern viele Überlegungen. Muss Ihre Pipeline zum Beispiel Streaming-Daten verarbeiten? Welche Datenmenge erwarten Sie? Wie viel und welche Arten der Verarbeitung müssen in der Daten-Pipeline stattfinden? Werden die Daten in der Cloud oder vor Ort generiert, und wohin müssen sie geleitet werden? Planen Sie, die Pipeline mit Microservices aufzubauen? Gibt es bestimmte Technologien, mit deren Programmierung und Wartung Ihr Team bereits vertraut ist?
Architekturbeispiele
Datenpipelines können auf verschiedene Weise aufgebaut werden. Ein gängiges Beispiel ist eine Batch-basierte Datenpipeline. In diesem Beispiel haben Sie vielleicht eine Anwendung, wie z. B. ein Kassensystem, das eine große Anzahl von Datenpunkten erzeugt, die Sie an ein Data Warehouse und eine Analysedatenbank übertragen müssen. Hier ein Beispiel dafür, wie das aussehen könnte:
Ein weiteres Beispiel ist eine Streaming-Datenpipeline. In einer Streaming-Data-Pipeline würden die Daten aus dem Point-of-Sales-System verarbeitet werden, sobald sie erzeugt werden. Die Stream-Processing-Engine könnte die Ausgaben aus der Pipeline unter anderem an Datenspeicher, Marketinganwendungen und CRMs sowie zurück an das Kassensystem selbst weiterleiten.
Ein drittes Beispiel für eine Datenpipeline ist die Lambda-Architektur, die Batch- und Streaming-Pipelines in einer Architektur kombiniert. Die Lambda-Architektur ist in Big-Data-Umgebungen beliebt, weil sie es Entwicklern ermöglicht, sowohl Echtzeit-Streaming-Anwendungsfälle als auch historische Batch-Analysen zu berücksichtigen. Ein wichtiger Aspekt dieser Architektur ist, dass sie die Speicherung von Daten im Rohformat fördert, so dass Sie ständig neue Daten-Pipelines ausführen können, um Codefehler in früheren Pipelines zu korrigieren oder neue Datenziele zu erstellen, die neue Arten von Abfragen ermöglichen.
Verwandte Themen
Streaming ETL
Lambda-Architektur
Stream-Verarbeitung