Aufbau einer IoT- und Data Lake Plattform
Gemeinsam mit unserem Kunden, dem größten Verkehrsunternehmen Deutschlands, haben wir eine Plattform für die gemeinsame Umsetzung von IoT- und KI-Projekten entwickelt. Dabei haben wir unter anderem 32 Datenquellen aus verschiedenen IoT-Message-Brokern und AWS-Accounts angebunden. Die Plattform unterstützt derzeit mehr als 20 Abteilungen innerhalb des Unternehmens.
Auf einen Blick:
- Branche: Verkehrsunternehmen
- Projektziel: Aufbau einer IoT- und Data Lake Plattform für Datenexploration, Dashboarding, sowie die Entwicklung und den Betrieb von IoT- und KI-Anwendungen
- Technologien: AWS-Native Services, AWS-Glue, AWS-Lambda, Amazon Data Streams, Data Firehouse, Apache Spark, AWS-Step Function, AWS-Event Bridge, AWS-SQS, Apache Hudi (Table Layer), AWS Athena (Query Layer), AWS Cloud Development Kit (CDK) in Python
- Dauer: 3 Jahre
Die Ausgangslage
Das Transportunternehmen operiert zwischen mehreren deutschen Städten und bildet ein großes Transportnetzwerk. Damit dieses Netzwerk reibungslos funktioniert, analysiert die IT-Abteilung des Unternehmens regelmäßig die bestehende Infrastruktur sowie das Sicherheits- und Betriebsmanagement.
Zu diesem Zweck nutzt das Verkehrsunternehmen verschiedene Datensysteme aus unterschiedlichen Abteilungen, wie z.B. AWS Accounts, REST APIs und IoT Message Broker (AMQP, MQTT). Eine zentrale Plattform für die Datenexploration oder die Entwicklung von KI-Anwendungen fehlte. Die Verteilung der Daten im Unternehmen über verschiedene Abteilungen hinweg führte zu einem erhöhten Kommunikations- und Organisationsaufwand.
Außerdem behinderte dies die Nutzung von IoT- und Streaming-Daten und schränkte die Fähigkeit des Unternehmens ein, Erkenntnisse für betriebliche Verbesserungen zu nutzen. Infolgedessen kam es häufig zu Fehlern bei der Datennutzung und zu einem Mangel an Sicherheits- und Betriebsmanagementpraktiken, was zu Ineffizienzen führte und die Betriebsrisiken weiter erhöhte. Um diesen Herausforderungen zu begegnen, haben wir gemeinsam mit dem Kunden eine IoT- und Data Lake-Plattform entwickelt.
Wir zeigen Ihnen, wie wir dabei vorgegangen sind.
Ziel war es, verschiedenen Abteilungen die Verarbeitung von Daten zu ermöglichen, damit diese wichtige Insights für Projektsteuerung und -entwicklung erlangen. Damit dies mit möglichst wenig Aufwand für die Mitarbeiter verbunden ist, soll eine einheitliche Plattform geschaffen werden, die gleichzeitig Fehler bei der Datenverarbeitung auf ein Minimum reduziert.
Unser Lösungsansatz
Der Lösungsansatz umfasste mehrere Schritte, darunter der Aufbau einer IoT-Data Lake Plattform, die Datenintegration und der Aufbau der Lakehouse Architektur. Sehen wir uns die einzelnen Schritte genauer an.
Die technische Implementierung:
Schritt 1: Die Entwicklung der AWS-basierten Data-Lake-Plattform
Das erste Ziel bestand darin, die verschiedenen Datenquellen an einem zentralen Ort zu speichern und zugänglich zu machen. Wir haben uns daher für den Aufbau eines skalierbaren Data Lake mit nativen AWS-Diensten entschieden. Damit können wir verschiedene Datenquellen, einschließlich IoT- und Streaming-Daten, integrieren, speichern und analysieren. Dabei war es uns wichtig, dass die Plattform eine dauerhafte Datenspeicherung und -verfügbarkeit bietet, damit Geschäftsanwender im gesamten Unternehmen zuverlässig auf Daten aus verschiedenen Quellen zugreifen können. Der Vorteil von Data Lake ist, dass sowohl strukturierte als auch unstrukturierte Daten wie Verträge, Bilder oder Audiodateien gespeichert werden können. Um diese Daten für weitere Anwendungen nutzbar zu machen, müssen sie durch einen ETL-Prozess in strukturierte Daten (Tabellen) umgewandelt werden.
Schritt 2: Datenintegration und ETL-Prozesse
Mit Schritt 1 haben wir den gemeinsamen Zugriff auf die verschiedenen Daten sichergestellt. Damit das Verkehrsunternehmen diese in standardisierten Anwendungsfällen verarbeiten kann, haben wir ETL-Pipelines unter Verwendung von AWS-Glue, AWS Lambda, Amazon Data Streams und AWS Data Firehose implementiert. Den dafür verwendeten ETL-Code haben wir in Python und Spark geschrieben, um eine effiziente Datentransformation und ein effizientes Laden der Daten zu gewährleisten. Außerdem war es uns wichtig, diese Datenströme und komplexen Workflows zu automatisieren, um den manuellen Aufwand an dieser Stelle nochmals zu reduzieren. Dazu haben wir die Orchestrierung der ETL-Routen mit AWS Step-Functions, AWS EventBridge und AWS SQS gesteuert.
Schritt 3: Die Implementierung der Lakehouse Architektur
In den vorangegangenen Schritten haben wir an der Datenspeicherung und -abfrage gearbeitet, die die Grundlage für die gemeinsame Nutzung der Daten von einem zentralen Ort aus bildet. Um diese Abfrage so effizient wie möglich zu gestalten und den Data Lake zu verwalten, haben wir die Lakehouse-Architektur integriert. Diese erweitert den Data Lake um eine Tabellenschicht mit Apache Hudi und um eine Abfrageschicht mit AWS Athena. Die daraus resultierenden Lakehouse-Funktionen ermöglichen eine effiziente Datenabfrage, Versionskontrolle und Verwaltung des Data Lake.
Schritt 4: Infrastructure as Code (IaC)
In dieser Phase verwendeten wir das AWS Cloud Development Kit (CDK) in Python, um die Infrastruktur vollständig einzurichten, einheitliche Bereitstellungspraktiken zu fördern und die Verwaltung zu vereinfachen. Wir verwalteten die Codeversionierung und CI/CD-Pipelines in GitLab, einschließlich Unit- und Ingestion-Tests, statische Sicherheitstests der Anwendung (Fortify, Mend), Codequalitätsprüfungen (SonarQube) und Geheimhaltungsmanagement (Gitleaks).
Darüber hinaus haben wir die Kontinuierliche Bereitstellung (CD) mit getrennten Umgebungen für Entwicklung (DEV), Integration (IAT) und Produktion (PRD) sichergestellt. Die von uns speziell für den Kunden entwickelte Plattform basiert auf höchsten Sicherheitsstandards und ermöglicht ortsunabhängigen Zugriff, Nutzung und Abruf von Daten. Das Verkehrsunternehmen soll in die Lage versetzt werden, aktuelle Daten für seine Anwendungsfälle zu nutzen, ohne sich um deren Transformation kümmern zu müssen.
Ein Kernteam von 14 internen Mitarbeitern arbeitete an dem Projekt. Dazu gehörten ein Product Owner, ein Sales Delivery Manager, ein Datenarchitekt, ein Cloud-Architekt, DevOps-Ingenieure und Data Engineers. Damit das Projekt nicht nur oberflächlich seinen Zweck erfüllte, sondern speziell für die Anforderungen unseres Kunden funktionierte, arbeiteten 2 weitere Datasolut Data Engineers mit ihrem Fachwissen an der Umsetzung des Projektes.
Unser Vorgehen im Überblick
1.
Speicherung der verschiedenen Datenquellen an einem zentralen Ort (Data Lake), um Zugriff auf Daten zu gewährleisten.
2.
Implementierung von ETL-Pipelines für eine standardisierte Datenverarbeitung.
3.
Damit der Data Lake einheitlich verwaltet werden kann und die Datenabfrage effizient verläuft, implementieren wir eine Lakehouse Architektur.
Wir konnten 32 Datenquellen, z.B. aus AWS-Accounts und IoT-Message-Brokern, erfolgreich anbinden und so eine umfassende Datenverfügbarkeit sicherstellen. Da das Unternehmen unseres Kunden unterschiedliche Anforderungen an die Dateneingabe hat, legten wir großen Wert auf Flexibilität bei der Dateneingabe. Wir realisierten verschiedene Dateneingabefrequenzen von wöchentlichen Batch-Loads bis hin zu kontinuierlichem Streaming. Außerdem sollte das Datenmanagement so skalierbar wie möglich sein.
Zu diesem Zweck haben wir die Verwaltung von Terabytes an Daten getestet, was die Fähigkeit der Plattform beweist, große und wachsende Datensätze zu verarbeiten. Die Plattform unterstützt derzeit 20 Abteilungen innerhalb des Unternehmens, die alle Daten für Analysen und Anwendungsentwicklung nutzen, wobei die Teams der Abteilungen aus 10 bis 20 Datenanalysten und Ingenieuren bestehen.
Die implementierte IoT- und Data Lake-Plattform hat die Fähigkeit des Unternehmens, Daten zu untersuchen, Dashboards zu erstellen und IoT- und KI-Anwendungen zu entwickeln, erheblich verbessert.
Wollen Sie mehr über das Thema Aufbau einer Datenplattform erfahren? Dann kontaktieren Sie uns!
Ihr Ansprechpartner
Ob und wie künstliche Intelligenz Ihnen weiterhelfen kann, können Sie in einem ersten, unverbindlichen Gespräch mit uns herausfinden.
In diesem Gespräch erfahren Sie:
- Wie Ihr Use-Case technisch am besten umgesetzt werden kann
- Wie wir maximal sicher mit Ihren Kundendaten umgehen
- Wie lange wir für die Umsetzung benötigen und wie ein konkreter Projektplan aussehen könnte