T-Systems-Claim-Logo
Suchen
Blaue Stadtsilhouette umrahmt von blauen und violetten Linien

NextGen Data Lake: AWS Glue oder Amazon EMR?

Vergleich zwischen zwei Amazon Web Services zur Data Ingestion mithilfe von automatisierten Data Pipelines

09. September 2021Laszlo Hadhazy

Data Pipelines mit AWS ETL

Ohne Big-Data-Analysen läuft heute nichts mehr. Unternehmen, die darüber nachdenken, automatisierte Pipelines für die Data Ingestion bzw. Datenaufnahme mit Amazon Web Services zu implementieren und einen modernen Data Lake aufzubauen, haben dafür mehrere Möglichkeiten. Dieser Artikel evaluiert innerhalb der Amazon Web Services zwei Hauptlösungen für die Data Ingestion: AWS Glue und AWS EMR.

Die Ausgangssituation

Ein Netz aus sechs blauen Kugeln, die um eine Leiterplatte herum angeordnet sind

Mithilfe einer lokalen Oracle Exadata-Datenbank nimmt der Client Konfigurationsdaten aus verschiedenen Netzwerken auf und führt sie zusammen. Der Vorgang dauert pro Technologie mehr als zwei Stunden. Diese Prozesse müssen kostengünstig in die AWS-Cloud migriert werden. Eine weitere wichtige Anforderung ist es, die Zeit für die Data Ingestion zu verkürzen. Im Folgenden werden zwei beliebte Amazon-Dienste auf die Erreichung dieser Ziele hin evaluiert: AWS Glue, ein serverloses Framework mit Spark-ETL-Logik, und Amazon EMR, eine Hadoop-Umgebung, die in EC2-Serverinstanzen ausgeführt wird.

Sowohl AWS Glue als auch AWS Elastic MapReduce (EMR) bieten Mechanismen zum Erstellen der ETL-Logik (Extrahieren, Transformieren, Laden), die erforderlich sind, um die Eingabe von Rohdaten aus dem Data Lake, meist als gezippte TXT-Datei, in formatierte Tabellenstrukturen umzuwandeln. 

AWS Glue: schnelle Big-Data-Analysen

AWS Glue ist speziell für den Betrieb von ETL-Vorgängen konzipiert; mit minimalem Aufwand können Workflows erstellt und überwacht werden. Der Vorteil von AWS Glue ist, dass es sich um eine serverlose Anwendung handelt und daher wenig Infrastruktur und keine manuelle Wartung der Serverressourcen erforderlich ist. Der Service kann automatisch Python- oder Scala-Code generieren. Außerdem können die Rechenressourcen einfach durch Anpassen der während eines Glue-Jobs verwendeten Worker-Prozesse (Anzahl der DPUs) skaliert werden. Als Managed Service ist diese Lösung aber auch teurer und weniger flexibel – besonders verglichen mit Amazon EMR. 

EMR: kostengünstige Data Ingestion Pipeline

AWS EMR kann als wesentlich umfangreichere Lösung neben vielen anderen Datenbankprozessen auch ETL-Vorgänge ausführen und bietet eine mit minimal höherem Verwaltungsaufwand: Auch wenn während der Ausführung des Datenaufnahmeworkflows mehrere EC2-Instanzen hochgefahren werden, ist der EMR-Cluster von vorübergehender Natur, d.h. er wird automatisch beendet, wenn alle Schritte abgeschlossen sind. EMR ist eine der kostengünstigsten ETL-Lösungen, insbesondere angesichts der Spot-Instanzen, die beim Start des Clusters angegeben werden könnten. Auch wenn die Skalierung der Ressourcen nicht so nahtlos vonstatten geht wie bei AWS Glue, bietet EMR eine flexible Möglichkeit, On-Demand-Instanzen mit Spot-Instanzen zu kombinieren und Richtlinien für die automatische Skalierung zu definieren, wenn bestimmte EMR-Metriken erfüllt sind. 

Für das Endergebnis einer 22-minütigen Laufzeit wurde der Instanztyp r5.4xlarge mit 1 Master- und 2 Core-Knoten verwendet. Dadurch werden insgesamt 48 vCPUs und 370 GB Rechenressourcen bereitgestellt. Randnotiz: Die r5.xlarge-Instanz bot nicht genügend Speicher für die Fertigstellung des Jobs. Die r5.2xlarge-Instanz benötigte ca.  25 % mehr Zeit bis zur Fertigstellung.

Orchestrierung

IM-Ingestion-Data-Flow

Für die Ausführung der Datenaufnahmeschritte wurde eine AWS Step Function State Machine implementiert. Zum Auslösen des Workflows kann ein S3-PutObject-Ereignis verwendet werden, um das Eintreffen einer gezippten Eingabedatei auf dem S3-Bucket von der DataSync-Aufgabe zu signalisieren.

Ingestion-Datenfluss mit AWS EMR als ETL-Engine

ETL-Workflow-Orchestrierung mit AWS Step-Funktion

IM-ETL-Flow-Orchestration

Fazit:

Der mit Amazon EMR implementierte ETL-Workflow konnte die Aufnahme von Batch-Rohdaten in etwa 30 Minuten oder weniger realisieren. EMR bietet mehrere leistungsstarke ETL-Lösungen für Big-Data-Analysen wie Apache Spark mit einer hochgradig anpassbaren und skalierbaren Infrastruktur. Durch die Definition von Instanzflotten und -gruppen in der Phase der EMR-Clustererstellung kann man Spot-Instanzen nutzen und hat eine kostengünstige, leistungsstarke Rechenumgebung. Das Ergebnis der ETL-Geschäftslogik wird im komprimierten Parquet-Tabellenformat gespeichert, einem allgemein empfohlenen Spaltenformat für den Datenzugriff. Darüber hinaus besteht der Vorteil der Verwendung des zentralen S3-Datensees darin, dass er sich gut in alle Datenanalyselösungen wie AWS Glue, EMR, Athena und Redshift integrieren lässt. Am Ende spricht nichts dagegen, beim Aufbau eines Data Lakes mit beiden Services zu arbeiten und sie je nach Anforderung einzusetzen. 

Zur Person
Laszlo Hadhazy – AWS Solution Architect

Laszlo Hadhazy

AWS Solution Architect, T-Systems International GmbH

Profil und alle Artikel ansehen

Das könnte Sie auch interessieren:

Besuchen Sie t-systems.com außerhalb von Germany? Besuchen Sie die lokale Website für weiterführende Informationen und Angebote für Ihr Land.