Hagebau Connect
Data Lake und Data Warehouse in der AWS-Cloud
Hagebau Connect
Kunde
Hagebau Connect
Branche: E-Commerce
im Bereich Bau und Heimwerken
Firmensitz: Hamburg
Eingesetzte Technologien
- Data Lake
- AWS-Lambda
- Python 3
- AWS S3
- ETL
- Spring Batch/Boot, Java
- Docker
- AWS Elastic Container Service
- Data Warehouse
- AWS Aurora (PostgreSQL kompatibler Datenbank-Cluster)
- Übergreifend
- AWS CloudWatch
- Terraform
Quantifizierbare Benefits
- Kostenersparnis durch Verzicht auf wartungsintensive Server-Infrastruktur und zusätzliches Personal.
- Durch den Wegfall von Lizenzkosten und eingeführtem On-Demand Pricing konnten die betrieblichen Kosten drastisch reduziert werden.
- Gesteigerte Umsetzungsgeschwindigkeit durch gezieltes Verallgemeinern im Softwareentwicklungsprozess.
- Flexible, interoperable und langlebige Datenanwendungen wurden erstellt.
- Versionskontrollen und Wartbarkeit der Systemlandschaft wurde durch Infrastructure as Code (IaC) vereinfacht.
Ausgangssituation
Das Kundenprojekt wurde bei der Tochter eines, in der DIY-Branche tätigen, Unternehmens, welches eine Kette von Bau-, Heimwerker- und Fachmärkten betreibt, durchgeführt. Die hagebau connect GmbH & Co KG ist dabei für E-Commerce, Online-Marketing und die Customer Experience verantwortlich und muss dementsprechend verschiedenste, operative Systeme (ERP, Web-Shop, Logistiksysteme, CRM, u.a.), sowie Systeme von Geschäftspartnern und Drittanbietern zeitnah anbinden. Zur langfristigen Speicherung sollte ein Data Lake etabliert werden, welcher die Daten dauerhaft und Datenschutzrichtlinien konform im Quellformat speichert.
Herausforderungen
Vor Beginn unseres Projektes wurde ein lizenziertes, grafisches ETL-Werkzeug ausgewählt. Durch manuelles Kopieren und Konfigurieren der neu entwickelten bzw. angepassten ETL-Jobs erfolgte die Produktivsetzung auf einem Job-Server (eine große, virtuelle Maschine). Mit der wachsenden Anzahl von ETL-Jobs erwies sich der Job-Server als nicht performant und unzuverlässig, so dass die zeitlich gesteuerte Ausführung regelmäßig zum Erliegen kam. Die Daten mussten infolge manuell mit Bedacht nachgeladen werden. Das manuelle Testen und Bereitstellen von ETL-Jobs erwies sich ebenfalls als zeitintensiv und fehleranfällig.
Damit untertägige Datenänderungen für die Fachanwender im Reporting auswertbar sind, sollte ein Großteil der Bewirtschaftung von Data Lake und Data Warehouse (DWH) in einem stündlichen Zyklus erfolgen. Für die Datenbeladung und Berechnung von materialisierten Views im DWH wurde somit zu regelmäßigen Zeitpunkten eine deutlich größere Rechenleistung benötigt als der Job-Server anbieten konnte.
Das Lösungskonzept
Das DWH ist ein zentraler Bestandteil von modernen, datengetriebenen Unternehmen. Daten werden in einem Data Lake zusammengetragen, ins DWH geladen und dort für Auswertungen und Analysen aufbereitet. Aufgrund von wachsenden Datenmengen, steigendem Informationsbedarf, sowie der Notwendigkeit von IT- und Datensicherheit, erhöhen sich stetig die Anforderungen an den Betrieb von DWH-Anwendungen.
Der Einsatz von Cloud-Infrastruktur und -Diensten ermöglichte es Data Lake und DWH flexibel, skalierbar und kostentransparenter zu betreiben. Durch die Cloud können neue Projekte ohne Vorlaufzeit und ohne Vorabkosten für eine interne Beschaffung und Bereitstellung von IT-Infrastruktur initiiert werden. Im Gegensatz zu On-Premise Lösungen stehen die Kosten für Datenverarbeitung sowie -Speicherung stets in Relation zur Nutzung. Redundante, skalierbare Dienste, welche vom Cloud-Anbieter selbst aktualisiert und gewartet werden, liefern die notwendige Performance, Verfügbarkeit und Sicherheit für moderne DWH-Anwendungen.
Warum AWS?
Amazon Web Services (AWS) ist Marktführer unter den Cloud-Anbietern und bietet zahlreiche Cloud-Dienste für die Speicherung und Verarbeitung von beliebig großen Datenmengen. Für die Integration stellt AWS entsprechende Schnittstellen, eine ausgereifte Dokumentation, sowie Bibliotheken für alle gängigen Programmiersprachen bereit. Dies ermöglicht die mühelose Einbindung von Cloud-Diensten in beliebige Anwendungen.
Ein flexibler Data Lake
Zur Speicherung der Daten im Quellformat wurde der Cloud-Dienst AWS S3 gewählt. Bei AWS S3 handelt es sich um einen Objektspeicher mit branchenführender Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung. Objekte (bspw. Dateien) werden in sogenannten Buckets anhand eines eindeutigen Namens gespeichert. Durch die Verwendung von Namenspräfixen ist es möglich eine virtuelle Ordnerstruktur zu etablieren. In diesem Fall erfolgte die fachliche Strukturierung des Data Lake anhand des Quellsystems und der Datenart (z.B. erp/invoice). Darüber hinaus wurde eine zeitliche auf dem Ablagedatum basierende Partitionierung geschaffen (z.B. 2023/04/30). Dadurch war es möglich, bestimmte fachliche Objekte eines ausgewählten Zeitraums für eine Weiterverarbeitung gezielt zu lokalisieren.
Für die Anbindung von Quellsystemen an den Data Lake existieren diverse Möglichkeiten. Die Abbildung zeigt vier konkrete Integrationen, welche im Rahmen des Kundenprojektes implementiert wurden:
- Ereignisgesteuerte, HTTP-basierte Integration mittels API-Gateway, das vom Quellsystem bei bestimmten Ereignissen oder Datenänderungen aufgerufen wird
- Zeitlich gesteuerte Integration, bei welcher in regelmäßigen Abständen auf ein Quellsystem über vorhandene Schnittstellen zugegriffen wird
- Ablage von Massendaten durch das Quellsystem mit Hilfe der S3 API
- Manuelle oder automatisierte Ablage von Daten via SFTP
Grundsätzlich findet sich für jedes vorhandene System eine geeignete Variante.
AWS Data Warehouse
Das DWH wurde als relationaler Datenbankcluster betrieben. AWS bietet hierfür den Cloud-Dienst Amazon Aurora. Dieser übernimmt den Betrieb und die Verwaltung des verteilten Datenbankmanagementsystems. Dieses ist durch Datenbank-Snapshots, sowie regelmäßige, automatische Backups nicht nur vor Ausfällen oder Naturkatastrophen geschützt, sondern kann auf eventuelle, strengere Datenschutzmaßnahmen individuell angepasst werden. Da es sich um eine PostgreSQL-kompatible Datenbank handelt, ist das Berechtigungskonzept der Datenbank nicht AWS-spezifisch und ein herkömmlicher Datenbank-Client kann für Zugriffe verwendet werden.
Eine notwendige Bereinigung, im Sinne der Datenschutzgrundverordnung, sowie die gezielte Ablage der Quelldaten im Lake erfolgten durch die Ausführung von Funktionen über AWS-Lambda, eine ereignisgesteuerte Ausführungsumgebung für Code. Dieser Cloud-Dienst ermöglicht es Funktionen in vordefinierten Laufzeitumgebungen für Node.js, Python3, u.a. skalierbar auszuführen, ohne die darunterliegende Infrastruktur verwalten zu müssen. Funktionsaufrufe finden dabei stets in Folge eines Ereignisses bspw. einer Anfrage per HTTP oder einer regelmäßigen, zeitlichen Auslösung statt.
Aus alt mach neu – Die Ablösung des Job-Servers durch Amazon ECS
ETL-Jobs lesen die Objekte aus dem Data Lake, extrahieren die Daten und laden diese anschließend in das DWH. Mit Hilfe von Spring Batch/Boot ließen sich mit wenig Code performante, Streaming-basierte Batch-Jobs implementieren, die unterschiedlichste Datenformate (z.B. JSON, XML, CSV, Excel) verarbeiten.
Für den Betrieb in der Cloud bietet AWS den Elastic Container Service (ECS), eine skalierbare Laufzeitumgebung für containerisierte Anwendungen. In AWS ECS können die ETL-Jobs als regelmäßige, zeitliche Aufgaben definiert werden, so dass eine konkrete Jobinstanz letztendlich die Ausführung eines entsprechend parametrisierten Docker-Containers ist. Durch dieses wohl orchestrierte Zusammenspiel verschiedener AWS-Dienste gelang es in diesem Projekt also einen alten, langsamen Server mit hohen Lizenzkosten durch moderne Cloud-Lösungen zu ersetzen und so nicht nur Zeit, sondern auch Geld zu sparen.
Warum cimt?
cimt unterstützt seit vielen Jahren Kunden bei der Konzipierung, Umsetzung und dem Betrieb von DWH-Anwendungen. Unsere Expertise im Bereich der Individualentwicklung unter Verwendung von Open Source Software und Cloud-Technologien ermöglicht es uns, effiziente und nachhaltige IT-Lösungen für unsere Kunden zu implementieren.
Um die Einstiegshürde zu senken, bieten wir Ihnen die beschriebene Referenzarchitektur in Kombination mit Infrastructure as Code (IaC) Definition als Startpunkt für neue Business Intelligence Projekte an. Ein solcher Ansatz beschleunigt einerseits die technische Initiierung Ihrer Vorhaben und minimiert andererseits mögliche Fehlerquellen beim Aufbau Ihrer Cloud-Infrastruktur.
Unsere Lösung ermöglicht es, Ihr DWH kostengünstig, effizient und wartungsarm zu implementieren und zu betreiben. So können Ihre BI-Ziele durch eine bessere Nutzung der vorhandenen Ressourcen und unter Verwendung der zuverlässigsten Cloud-Plattform auf dem Markt erreicht werden.