Apache Flink 1.9 bringt Updates für SQL-Abfragen sowie die Table API

Flink integriert nun Stream- und Batch-Processing in einer Runtime. Eine neue auf Blink aufbauende Query Engine steht für die Table API und SQL parat.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Apache Flink 1.7 bringt temporale Tabellen
Lesezeit: 3 Min.
Von
  • Matthias Parbel

Die Apache Flink Community hat Version 1.9 des Stream-Processing-Frameworks herausgegeben. Um sowohl eine effiziente Verarbeitung von Stream- wie auch Batch-Processing-Anwendungen zu gewährleisten, vereint Flink nun beide Fähigkeiten in einer integrierten Runtime. Zu den weiteren wichtigen Neuerungen zählt eine auf Blink aufbauende Query Engine für SQL und die ebenfalls neue Python Table API.

Nachdem der chinesische E-Commerce- und Technologiekonzern Alibaba zum Jahresauftakt die ursprünglichen Initiatoren des Open-Source-Projekts Apache Flink, das Berliner Start-up-Unternehmen data Artisans, übernommen hatte, hat Alibaba seinen eigenen Flink-Fork Blink wieder zurück in das Flink-Projekt integriert. Blink erlaubt eine noch engere Verzahnung von Stream- und Batch-Processing. Das Operator-Modell der Flink Streaming Runtime lässt sich damit um die Fähigkeit erweitern, selektiv aus verschiedenen Eingabebereichen zu lesen, ohne auf die niedrige Latenz des Push-Modells verzichten zu müssen.

Auf der Grundlage einer integrierten Runtime stellt Flink 1.9 nun eine Blink-basierte Query Engine für SQL die Table API bereit, sodass für Batch-Abfragen höhere Performance zur Verfügung steht und SQL umfassender unterstützt wird. Flink 1.9 deckt TPC-H vollständig ab, in einem der nächsten Releases soll TPC-DS folgen. Die Blink Engine bietet aber auch für Streaming-Abfragen höhere Leistung sowie einige neue Funktionen, darunter Dimension Table Join, TopN sowie Deduplication. Da die Integration von Blink noch nicht vollständig abgeschlossen ist, bleibt die ursprüngliche Flink Query Engine standardmäßig aktiviert, beim Anlegen eines TableEnvironment lässt sich die Blink-Engine aber mit EnvironmentSettings aktivieren.

Mit Einführung der ersten Version einer Python Table API setzt das Flink-Team seine Bemühungen fort, die Unterstützung für Python auszubauen. Die als Preview verfügbare neue Funktion ist als Wrapper angelegt, der Python Table API Methodenaufrufe in Java Table API Calls übersetzt. Derzeit deckt die Funktion lediglich relationale Operationen ab, UDF soll in einem späteren Release ergänzt werden. Entwickler, die die neue Python Table API sofort nutzen möchten, müssen PyFlink derzeit noch manuell installieren, ein pyflink-Package, das sich mit pip installieren lässt, ist in Vorbereitung.

Weitere Details lassen sich der offiziellen Ankündigung von Flink 1.9 entnehmen. Eine komplette Zusammenfassung aller Neuerungen und Bugfixes findet sich in den Release Notes. Das aktuelle Flink-Release steht sowohl im Sourcecode als auch als Binaries mit und ohne Hadoop auf der Apache-Site zum Download bereit. (map)