alunablue - stock.adobe.com

Wie man eine universelle Big-Data-Pipeline aufbaut

Ähnlich einer Autobahn lassen sich über eine Big-Data-Pipeline massenweise Daten von der Quelle zum Ziel transportieren. Wie aber baut man eine solche Pipeline?

Der schnellste und oft effizienteste Weg, um große Mengen von etwas von A nach B zu transportieren, ist eine Art Pipeline. Pipelines können Objekte schnell voranbringen. Und sie ermöglichen es ihnen, auf einfache Weise abzubiegen und Aufgaben entlang der Route zu erfüllen. Das gleiche Prinzip gilt für eine Big-Data-Pipeline.

„Um den Begriff Big Data in den relevanten Kontext zu setzen: Wenn die Datenmenge klein und die Häufigkeit ihrer Erstellung gering ist, reicht eine E-Mail mit einem angehängten Dokument für die Übertragung aus“, sagt David Schaub, Big Data Engineer bei Shell. Alles, so Schaub, was man noch braucht, ist eine Festplatte für die Speicherung. Wenn es sich um kleine Datenmengen handelt und diese häufig erstellt werden, ist es sinnvoll, den Versand von Dokumenten zu automatisieren oder sie mit einem einfachen Out-of-Box-Tool zu speichern. Überschreiten die Daten jedoch die Grenzen von Standard-Tools für die Übertragung oder Speicherung, werden sie als Big eingestuft.

„In diesem Fall benötigen Sie ein Tool, das mehr Konfiguration als üblich erfordert“, erklärt Schaub. „Eine Big-Data-Pipeline ist ein Werkzeug, das den Fluss solcher Daten steuert - in der Regel von einem Ende zum anderen – also von der Erzeugung bis zur Speicherung.“

Was ist eine Big-Data-Pipeline?

„Daten müssen häufig deshalb verschoben werden, weil sie in einer Transaktionsdatenbank generiert oder erfasst werden. Solche Datenbanken eignen sich nicht gut für Analysen“, sagt Vinay Narayana, Leiter der Big-Data-Abteilung bei Wayfair. Um solche Daten optimal zu nutzen, sollten sie besser in ein Data Warehouse, einen Data Lake oder ein Hadoop Distributed File System (HDFS) verschoben werden.

„Die Big-Data-Pipeline ermöglicht die Abwicklung des Datenflusses. Dies geschieht von der Quelle bis zum Ziel – während unterwegs Berechnungen und Transformationen durchgeführt werden“, erklärt Serge Vilvovsky, Gründer und CEO des Cloud Data Lake Sicherheitsanbieters AltaStata und Mitglied des MIT-Sloan-Konsortiums für Cybersicherheit. „Mit solch einer Pipelines können Unternehmen die Daten in einen Wettbewerbsvorteil umwandeln, und aktuelle oder zukünftige Entscheidungen besser treffen.“

Die Architektur und Technik von Big Data kann komplex sein. Daher sind in der Regel Software-Ingenieure mit Erfahrung im Umgang mit großen Datenmengen an der Erstellung einer Datenpipeline beteiligt. Für einige Daten, wie zum Beispiel für freien Text, sind möglicherweise Datenwissenschaftler erforderlich.

sechs Vs Big Data
Abbildung 1: Big Data wird häufig mit den drei oder sechs Vs charakterisiert.

Warum eine Big-Data-Pipeline-Architektur wichtig ist

Eine Big-Data-Pipeline ermöglicht es einem Unternehmen, Daten aus verschiedenen Quellen zu verschieben und zu konsolidieren. „Auf diese Weise erhalten die Entscheidungsträger eine einzigartige Perspektive auf die Muster und Trends, die diese Daten aufzeigen können“, sagt Eugene Bernstein, Big-Data-Entwickler bei Granite Telecommunications.

Die richtige Architektur einer Big-Data-Pipeline ist wichtig, fügt Schaub hinzu. Der Grund ist, dass Daten fast immer neu konfiguriert werden müssen, um sie durch andere Unternehmensprozesse wie Datenanalysen verwerten zu können.

Der Prozess des Verschiebens von Daten von einem Datenspeicher in einen anderen wird schwieriger, wenn mehrere Datenspeicher involviert sind und diese über lokale und öffentliche Cloud-Rechenzentren verteilt sind. Diese Umgebung ist laut Narayana heutzutage aber üblich, da große Unternehmen ihre Prozesse immer häufiger in die Cloud verlagern.

Wichtige Schritte und Komponenten in einer Datenpipeline

Die klassischen Schritte in einer Datenpipeline sind Extrahieren, Transformieren und Laden (ETL). „Nach dem Extrahieren der Daten“, erläutert Vilvovsky, „müssen diese einen Bereinigungsprozess durchlaufen, bei dem nur die notwendigen Datenfelder übrigbleiben. Danach werden sie in Formate umgewandelt, die für die geplanten Berechnungen geeignet sind. Mehrere Datenquellen können durch Kombinations- und Aggregationsverfahren zusammengeführt werden.“

Die Daten werden zunächst von einem Benutzer oder einem Prozess erzeugt und müssen dann in eine Datenbank verschoben werden. Diese Schritte werden als Erfassung und Einspeisung bezeichnet. Rohdaten werden zunächst gesammelt und an ein globales Messaging-System wie Kafka gesendet. Von dort aus werden sie über einen Stream-Prozessor wie Apache Flink, Storm und Spark an verschiedene Datenspeicher verteilt.

In diesem Stadium gelten die Daten als teilweise bereinigt. Sie müssen jedoch weiterverarbeitet werden, bevor sie von anderen Ingenieuren, Datenwissenschaftlern und Analysten produktiv genutzt werden können. Jede dieser Gruppen kann die Daten weiterverarbeiten und sie in einem Data Lake oder Warehouse speichern, wo sie für Empfehlungs-, Preis- und andere Modelle sowie für die Erstellung von Berichten verwendet werden können.

Unstrukturierte Daten wie Freitext können in strukturierte Daten umgewandelt, und aus Bildern und PDFs können interessante Teile für zukünftige Analysen extrahiert werden“, erklärt Schaub. „Manchmal können auch Datenquellen von Drittanbietern wie die Ergebnisse einer Websuche, zur Anreicherung der Daten verwendet werden. Der Zweck dieses Prozesses ist es, die Nutzbarkeit der Daten zu verbessern. Einige vertrauliche Daten werden möglicherweise gelöscht oder ausgeblendet. In der letzten Phase sollten die Daten bereit sein, um an den Zielort geladen zu werden.“

Verschiedene Arten von Big-Data-Pipeline-Architekturen

Unternehmen setzen in der Regel drei Arten von Datenpipeline-Übertragungen ein:

  • Beim Batch Streaming werden Datenpakete in einem temporären Speicher zusammengestellt und als Gruppe nach einem Zeitplan versendet. Dies empfiehlt sich bei Latenzproblemen oder wenn der Zugriff auf diese Daten nicht dringend ist. „Der Batch-Ansatz", sagt Vilvovsky, „basiert auf einem periodischen Aufruf der Pipeline – zum Beispiel einmal pro Tag oder Woche. Die Pipeline wird gestartet, schließt die Auftragskette ab und wird wieder heruntergefahren.“
  • Echtzeit-Streaming bezieht sich auf Daten, die ab dem Zeitpunkt ihrer Generierung zur weiteren Speicherung und Verarbeitung weitergeleitet werden, wie zum Beispiel ein Live-Daten-Feed. „Die Streaming-Pipeline berechnet Daten von Sensoren und läuft normalerweise unendlich lange“, erläutert Vilvovsky. „Aus Sicht der Implementierung verwendet die Streaming-Datenverarbeitung Mikro-Batches, die in kurzen Zeitfenstern ausgeführt werden.“
  • Die Lambda-Architektur versucht, Batch- und Echtzeit-Streaming zu kombinieren, indem sie die Daten durch ständiges Anhängen an dieselbe Datei synchronisiert speichert. „Dies ist sehr schwierig, da die Batch- und Echtzeitkomponenten unabhängig voneinander kodiert sind und beim Schreiben der Datei synchron sein müssen“, warnt Schaub. „Daher wird dies am häufigsten mit einem Cloud-Service durchgeführt. Die Lambda-Architektur kann für die Batch- und Stream-Verarbeitung geeignet sein oder auch nicht. AWS Lambda-Funktionen haben einige Einschränkungen. Zum Beispiel beträgt die Lambda-Zeitüberschreitung 15 Minuten und die Speichergröße ist auf zehn GB begrenzt. Für kurzfristige Aufgaben, die nicht viel Speicherplatz pro Aufgabe benötigen, ist dies ein sehr geeigneter Ansatz. Lambda kann auf praktisch unbegrenzte Gleichzeitigkeit skalieren.“

Beispiele für Big-Data-Pipeline-Technologien

Die meisten Unternehmen verlassen sich bei der Verwaltung ihrer Datenressourcen auf Produkte verschiedener Anbieter. Granite Telecommunications, so Bernstein, verwendet MapReduceHadoop, Sqoop, Hive und Impala für die Batch-Verarbeitung. Die Daten stammen aus Flat Files oder Oracle- und SQL-Server-Datenbanken. Für die Echtzeitverarbeitung nutzt das Unternehmen Kafka, PySpark, Hadoop, Hive und Impala.

Ein typisches Unternehmen betreibt laut Narayana sowohl Batch- als auch Echtzeit-Datenpipelines, die ein Data Warehouse wie Snowflake, Redshift oder BigQuery speisen.

Sowohl die Batch- als auch die Echtzeit-Datenpipelines liefern teilweise bereinigte Daten an ein Data Warehouse. Die Data Scientists und Analysten führen in der Regel mehrere Transformationen auf diesen Daten durch, bevor sie die Daten wieder in ihre Modelle oder Berichte einspeisen. Pipelines können auch ETL durchführen. Rohdaten werden aus der Quelle extrahiert und schnell in ein Data Warehouse geladen, wo die Transformation stattfindet.

Best Practices für den Aufbau von Big-Data-Pipelines

„Bei der Skalierung eines Big-Data-Managementsystems verwenden viele Unternehmen aufgrund der Flexibilität, die diese Systeme bieten, mehrere Datenspeicher“, sagt Narayana. Zu diesen Datenspeichern gehören relationale Datenbanken für Transaktionsdaten, NoSQL-Datenbanken für verschiedene Datentypen, Hadoop für die Stapelverarbeitung, Data Warehouses für die Berichterstellung, Data Lakes für Advanced Analytics und kostengünstige Dienste für Cloud-Objektspeicher sowie spezielle Technologien wie Elasticsearch für Protokolle und Suche und InfluxDB für Zeitreihendaten.

Big-Data-Herausforderungen
Abbildung 2: Zehn Herausforderungen mit Big Data, die Unternehmen angehen müssen.

„Dies sind großartige Möglichkeiten für Datenspeicher“, betont Narayana, „aber sie sind nicht so großartig für die Datenverarbeitung durch nichttechnische Gruppen wie Datenwissenschaftler und Datenanalysten. Unternehmen sollten nahtlose Möglichkeiten zum Aufbau und Betrieb von Datenpipelines anbieten. Diese sollten in der Lage sein, Daten zu den niedrigsten Kosten in Bezug auf die physischen Systeme und die betrieblichen Gemeinkosten von einem Datenspeicher zum anderen zu bewegen.“

Big-Data-Pipelines sollten laut Schaub folgende Eigenschaften aufweisen:

  • Sie sollten erweiterbar sein, um so viele andere Dinge wie möglich einbeziehen zu können.
  • Sie sollten skalierbar sein, so dass sie je nach Bedarf des Systems vergrößert oder verkleinert werden können. Die Verkleinerung wird oft vergessen, ist aber wichtig für die Verwaltung der Cloud-Kosten.
  • Sie sollten idempotent sein, das heißt, sie sollten das gleiche Ergebnis erzielen, egal wie oft dieselben Ausgangsdaten verwendet werden. Die Protokollierung sollte zu Beginn und am Ende eines jeden Schritts erfolgen.

„Verstehen Sie die Anforderungen, die sich aus Ihre Beschränkungen bei Funktionen, Datengröße, Speicher, Leistung und Kosten ergeben“, rät Vilvovsky. „Wählen Sie die richtige Architektur und die richtigen Frameworks. Erstellen Sie einen Prototyp für ein oder zwei Anwendungsfälle und stellen Sie sicher, dass er funktioniert. Verwenden Sie geeignete Speicher- und Sicherheitsmethoden für Ihren Datentyp. Informieren Sie sich über die neuen Cloud-Dienste, die ständig auf der Welt entstehen. Die Architektur, die Sie entwickeln wollen, gibt es vielleicht schon als Dienst.“

Erfahren Sie mehr über Datenverwaltung