Automatisierte Data Pipelines für die Verarbeitung von IoT-Daten
In der heutigen, digital vernetzten Welt generieren Unternehmen eine Fülle von Daten, die wertvolle Einblicke bieten können. Doch um ihr Potenzial voll auszuschöpfen, bedarf es effizienter und zuverlässiger Lösungen zur Datenverarbeitung. Hier kommen automatisierte Daten-Pipelines ins Spiel. In diesem Artikel erfahren Sie, was genau eine Datenpipeline ist und wie sie funktioniert. Anschließend zeigen wir Ihnen, wie sie ETL-Pipelines für die Verarbeitung Ihrer IoT-Daten einsetzen können, um diese gewinnbringend zu nutzen.
Was ist eine Datenpipeline? Eine Definition
Eine Datenpipeline ist ein automatisierter Prozess, der Daten von einer Quelle zu einem Ziel transportiert, transformiert und bereinigt. Sie besteht aus einer Reihe von Schritten oder Komponenten, die in einer bestimmten Reihenfolge ausgeführt werden, um Rohdaten in nutzbare Informationen umzuwandeln.
Kernkomponenten einer Datenpipeline:
- Datenquellen: Die Ausgangspunkte der Daten, die von Sensoren, Datenbanken, APIs oder anderen Systemen stammen können.
- Ingestion: Der Prozess des Sammelns und Importierens der Rohdaten in das Pipeline-System.
- Transformation: Die Umwandlung der Rohdaten in ein Format, das für die Analyse oder Weiterverarbeitung geeignet ist. Dies kann das Bereinigen, Filtern, Aggregieren oder Anreichern der Daten umfassen.
- Speicherung: Das Ablegen der verarbeiteten Daten in einem Datenspeicher, wie einer Datenbank, einem Data Warehouse oder einem Data Lake.
- Analyse und Visualisierung: Der finale Schritt, bei dem die verarbeiteten Daten für Berichte, Dashboards oder maschinelles Lernen verwendet werden.
Warum automatisierte Data Pipelines wichtig sind
Oft liegen Daten in einem Unternehmen an den verschiedensten Orten, wie beispielsweise in verschiedenen Datenbanken (SQL, NoSQL etc.), in interne Filesystemen oder im Cloudspeicher (z. B. Azure, AWS, Google etc.). Im Laufe der Jahre können sich dadurch sogenannte „Dateninseln“ bilden, wo die Daten zwar in verschiedenen Formaten abgelegt werden, allerdings keine richtige Versionierung und Standardisierung haben. Das führt dazu, dass der Mehrwert der Daten oft nicht vollständig ausgeschöpft wird, da Rohdaten nicht mit sauberen Analysedaten gleichzusetzen sind.
Eine robuste Extraktion und Transformation von Daten bildet ein wichtiges Fundament, damit ein Unternehmen eine gewisse Datenreife erreicht. Wird kein Daten-Pipeline-Prozess für viele bereits bestehende Datenlandschaften in einem Unternehmen implementiert, läuft das Unternehmen damit Gefahr, den Mehrwert aus diesen Daten nicht zu erkennen. Somit erreicht es eine höhere Datenqualität und Datenreife nur sehr schwer bis gar nicht. Den richtigen Reifegrad von Daten in einem Unternehmen zu erreichen, erfordert oft viel Aufwand und einen stabilen Daten-Pipeline-Prozess, denn nur mit einer richtigen Datenreife kann ein Unternehmen eine höhere Datennutzung, mehr Datenpotenzial, sowie eine bessere Datenintegration im gesamten Unternehmen erreichen [1].
Vorteile einer Datenpipeline:
- Automatisierung: Data Pipelines reduzieren den manuellen Aufwand und minimieren Fehler durch automatisierte Prozesse.
- Effizienz: Eine Datenpipeline beschleunigt den Datenfluss und die Verarbeitung, was zu schnelleren Erkenntnissen führt.
- Skalierbarkeit: Es können große Datenmengen verarbeitet und bei Bedarf erweitert werden.
- Zuverlässigkeit: Data Pipelines gewährleisten, dass Daten konsistent und genau verarbeitet werden.
Um einen soliden Überblick über Datenlandschaften (Datendomänen) zu bekommen und kontrolliert Daten zu transformieren, zu bereinigen und anreichern zu können, wird oft ein zentraler ETL-Prozess als Data Pipeline Prozess eingesetzt, damit eine Standardisierung und Versionierung der Analysedaten am Ende gewährleistet sind.
Folgende Abbildung zeigt vereinfacht dargestellt wie durch Data Engineering und Analyse aus Rohdaten saubere und verwertbare Analysedaten werden:
Was bedeutet ETL?
ETL steht für „Extract“ (Extraktion), „Transform“ (Transformieren) und „Load“ (Laden) und beschreibt einen Datenintegrationsprozess. Im Rahmen dieses Prozesses werden Daten aus mehreren internen oder externen Datenquellenin einheitliche Datenspeicher überführt [2], welche anschließend in einem Datenmanagementsystem (z. B. Data-Warehouse) abgelegt werden. Der ETL-Prozess wird häufig als eine allgemeine Vorgehensweise gesehen, um Daten möglichst kontrolliert zu verarbeiten. Der Begriff ETL-Pipeline wird hingegen häufig verwendet, wenn über die technische Sichtweise und Implementierung gesprochen wird.
Der ETL-Prozess besteht aus drei Hauptphasen:
- Extract: Die Extraktion der Daten aus verschiedensten Datenquellen (intern oder extern).
- Transform: Die Transformation der Datenstrukturen und Dateninhalte in ein vorgegebenes Zielschema des Zielspeicherortes.
- Load: Das Laden bzw. Ablegen der Daten an einem Zielort (z. B. in einer Datenbank).
Die Datensätze im Quellsystem werden zuerst selektiert, wobei eine Anbindung und der Zugriff auf diese Quellsysteme gewährleistet sein müssen. Anschließend werden diese Daten aus dem Quellsystem geladen (Extract) (z. B. über eine REST-API, Datenbankzugriff oder SFTP) und für die Transformierung an einem temporären Speicherort abgelegt. Anschließend wird die Transformation auf das Zielschema durchgeführt.
Die drei ETL-Hauptphasen im Detail
Die drei ETL-Hauptphasen sind wie folgt definiert:
Extraktion
Der ETL-Prozess beginnt mit dem Schritt der Extraktion, indem die Daten aus den angebundenen Datenquellen zunächst selektiert werden und dann in einen Zwischenspeicher überführt werden. Der Zwischenspeicher kann z. B. einfach ein Verzeichnis auf einem System sein, wo Dateien abgelegt werden, wie etwa CSV-Dateien, oder aber auch eine Datenbank, wo nur semistrukturierte Daten temporär für den weiteren Transformationsschritt abgelegt werden. Es wird zwischen internen und externen Datenquellen unterschieden. Interne Datenquellen sind beispielsweise Abfragen an eine interne Datenbank oder Dateien von internen Servern. Externe Datenquellen sind unter anderem API-Abfragen an eine externe Schnittstelle mit einem API-Key.
Transformation
Im Rahmen der Transformation werden die zuvor abgelegten temporären Daten in ein Programm geladen und darauf werden Transformationsregeln angewendet. Bevor dieser Schritt erfolgt, müssen die Transformationsregeln und das Zielschema der Daten am Ende vorab festgelegt werden. Bei diesem Schritt werden bei großen Datenmengen auch mehr Ressourcen benötigt. Die notwendige Rechenleistung für größere Datenmengen kann durch externe „Jobs“ (Scheduler) erreicht werden und die Transformation kann dadurch auch beliebig auf leistungsstarken virtuellen Maschinen geschehen. Ein Beispiel wäre, eine interne virtuelle Maschine stößt einen „externen Job“ in der Cloud an, wartet nur auf die Antwort (Response) vom Job und bekommt den Dateipfad ausgeliefert. Mit dem Dateipfad kann dann auf die transformierten Daten zugegriffen werden. Bei der Transformation sollte immer bedacht werden, dass di die Komplexität durch viele Transformationsregeln und eine Parallelisierung der „Jobs“ schnell steigen kann.
Laden
Wurden die Daten erfolgreich transformiert, kann ein weiterer Job bzw. ein Ladeprozess die Daten an einen Zielort ablegen. Ein Zielort ist oft ein Data-Warehouse, also eine Datenbank, welche für Analysezwecke gedacht ist. Das Ablegen der transformierten Daten kann sofort nach der Transformation erfolgen, indem eine Programmroutine beispielsweise durch ein Event gestartet wird, nachdem die Datei nach der Transformation im temporären Zielort abgelegt worden ist. Das Laden kann aber auch durch eine festgelegte zeitliche Programmroutine, wie etwa tägliche oder wöchentliche Programmroutinen, durchgeführt werden.
Relevanz des ETL-Prozesses im IoT
Um Daten mit nachgelagerten Analysen auszuwerten und einen Mehrwert aus diesen Daten zu ziehen, ist ein ETL-Prozess oft ein sehr wichtiger Bestandteil eines Unternehmens. Oft werden im Bereich des IoT (Internet of Things) und IIoT (Industrial Internet of Things) besonders viele Logdaten mit Informationen über Kommunikationsprotokolle und Netzwerkparameter generiert. Diese Netzwerkparameter werden oft beim Testen von IoT-Geräten mit sogenannten „Sniffer“ ausgelesen und oftmals unstrukturiert in losen Logdateien abgelegt. Die Logdateien können sehr groß werden und nicht alle Netzwerkinformationen sind immer relevant für Analysezwecke. Um die relevanten Informationen so aufzubereiten, dass diese beispielsweise für eine Ursachenanalyse genutzt werden können, in der Anomalien im Netzwerk erkannt werden sollen (z. B. Intrusion Detection), ist oft ein ETL-Prozess notwendig. Dieser verarbeitet die Daten spezifisch für jede Datendomäne und legt sie im definierten Zieldatenformat für Analysezwecke ab. In Zeiten von Big Data und Machine Learning haben Datenpipeline Prozesse, wie der ETL-Prozess im IoT/IIoT-Bereich sehr stark an Relevanz zugenommen. Weiterhin werden sehr viele Telemetriedaten im IoT-Kontext verarbeitet, welche im besten Fall auch automatisiert analysiert werden sollten, um schnelle Einblicke in die Messwerte und Verhaltensweisen der Feld-Endgeräte zu bekommen.
Herausforderungen bei der Implementierung eines ETL-Prozesses
Einen vollautomatisierten ETL-Prozess in einem Unternehmen zu implementieren und alle Datenlandschaften zu integrieren kann mit einem großen Aufwand einhergehen. Die Einrichtung und das Testen der ETL-Pipeline können viel Zeit in Anspruch nehmen, bis der gesamte ETL-Prozess vollständig betriebsbereit und stabil ist. Da eine ETL-Pipeline die Daten nach zeitlich definierten Routinen verarbeitet, kann eine ETL-Pipeline langsam sein und auch die Fehlerbehebung erschweren. Bevor eine ETL-Pipeline in einem Unternehmen implementiert werden soll, muss die ETL-Architektur gut durchdacht sein. Zudem muss die Traceability, also die Rückverfolgbarkeit der einzelnen Schritte in einer ETL-Pipeline gewährleistet sein, falls Fehler auftreten und Daten vom definierten Zielformat abweichen. Weiterhin sollte von Anfang an ein Konzept für ein Fehlerprotokoll bestehen, damit die Fehlerbehandlung und Wartungsschritte vereinfacht werden.
Fazit: Data Pipelines sind essenziell für eine effiziente Datennutzung
Datenpipelines sind essenziell für moderne Datenverarbeitungsarchitekturen, insbesondere im Kontext von IoT, wo kontinuierlich große Mengen an Daten generiert werden. Sie ermöglichen es Unternehmen, diese Daten effizient zu nutzen, um fundierte Entscheidungen zu treffen und wertvolle Einblicke zu gewinnen. Wir von ithinx beraten Sie gerne zu Ihrem IoT-Datenmanagement und unterstützen Sie bei der reibungslosen Integration automatisierter Datenpipelines.
– Ismar Halilcevic, Systems Engineer (ithinx)
Quellen
[1] Reis, J. und Housley, M. (2023). Handbuch Data Engineering – Robuste Datensysteme planen und erstellen, Seite 40. O’Reilly Media, Inc., Sebastopol, CA 95472. ISBN: 9783960107682, 3960107684.
[2] Reichle, F. (2014). Datenaustausch zwischen SAP BW und relationalen Datenbanken: Entwurf und Entwicklung eines ETL-Prozesses, Seite 6. Diplomica Verlag, Hermannstal 119 k, 22119 Hamburg. ISBN: 9783958506022, 395850602X.