Verarbeitung von Datenströmen im Big Data Umfeld

Implementierung und Evaluierung einer Verarbeitung von Datenströmen im Big Data Umfeld am Beispiel von Apache Flink

Eine steigende Datenmenge in den Rechenzentren und der Wunsch nach einer Realtime-Verarbeitung dieses gigantischen Volumens führt zu einem Auftrieb von Stream-Processing-Systemen. In der Open Source Welt erlangt neben Apache Spark auch zunehmend das Framework Apache Flink Aufmerksamkeit.

In Kundenprojekten wird bereits Spark erfolgreich eingesetzt und das Thema Data Streaming bekommt immer mehr Bedeutung. Flink wurde unter der Prämisse „streaming first“ entwickelt und wird bereits produktiv von namhaften Firmen eingesetzt. Das Thema erlangte auch bei integration-factory Interesse, um mit den Möglichkeiten aktueller Technologien vertraut zu sein. So entstand in Zusammenarbeit mit der Hochschule für Technik, Wirtschaft und Kultur Leipzig eine Masterarbeit mit dem Titel „Implementierung und Evaluierung einer Verarbeitung von Datenströmen im Big Data Umfeld am Beispiel von Apache Flink“.

Das Ziel dieser war es zu evaluieren, ob Apache Flink bzw. welche Schnittstellen sich für die Programmierung datenverarbeitender Jobs in kundentypischen Big Data Umgebungen auf Basis von Apache Hadoop eignen. Dabei werden zunächst wichtige Grundlagen und Konzepte vermittelt, wie zum Beispiel was Datenströme eigentlich sind, was es mit Windowing auf sich hat und welche Konsistenzgarantien erreicht werden können. Flink wird ebenfalls am Anfang betrachtet, um dem Leser einen umfangreichen und dennoch kompakten Einblick in das Framework zu geben. Schwerpunkte hierbei sind die Architektur, die Möglichkeiten der Event-Time Verarbeitung, das State-Management bzw. das Checkpointing und in besonderer Tiefe die Schnittstellen DataStream-API und FlinkSQL.

Im Hauptteil der Arbeit wurden Use Cases aus Kundenprojekten extrahiert, welche mithilfe der DataStream-API und FlinkSQL prototypisch implementiert wurden. Die Ausführung fand im hausinternen Big Data Labor statt. Als Datenquellen dienten ein S3-Speicher, eine relationale Datenbank und Apache Kafka als Streaming-Quelle. Bei der beispielhaften Verarbeitung von Covid19 Daten des Robert-Koch-Instituts wurde unter Einsatz von typischen Operationen wie Filtern, Gruppieren und Joining mit einer Dimensionstabelle die 7-Tagesinzidenz für jeden Tag pro Landkreis berechnet. Die Resultate landeten im weitverbreiteten Parquet-Format in einer Hive-Tabelle.

Für die anschließende Evaluierung konnten relevante Kriterien extrahiert, strukturiert und gewichtet werden, um als Grundlage für die Analytic Hierarchy Process Methode zu dienen. Die Ergebnisse sind eine Entscheidungshilfe für integration-factory, um Flink als Technologie im eigenen Portfolio einordnen zu können, und dienen zur Orientierung für mögliche weitere Betrachtungen.

Die Arbeit führte zu einer Wissensbereicherung zum Thema Stream-Processing-Systeme und ist die Grundlage, um die Expertise in diesem Bereich auch unter einem Einsatz von Apache Flink auszubauen.