Apache Flink 1.7 bringt temporale Tabellen

Das Stream-Processing-Framework gibt mit Temporal Tables eine Sicht auf den Tabelleninhalt zu einem bestimmten Zeitpunkt.

In Pocket speichern vorlesen Druckansicht
Apache Flink 1.7 bringt temporale Tabellen
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Die Macher von Apache Flink haben Version 1.7 des Stream-Processing-Framworks herausgegeben und seit dem im August erschienenen Flink 1.6 gut 360 Issues geschlossen. Zu den nennenswerten Neuerungen gehören temporale Tabellen und Joins und das Pattern-Matching über MATCH_RECOGNIZE. Außerdem lässt sich das User-State-Schema nun für lang laufende Anwendungen im Betrieb ändern.

Mit sogenannten Temporal Tables führt Flink 1.7 ein neues Konzept für eine parametrisierte Sicht auf die Historie einer Tabelle sowie deren Inhalt zu einem bestimmten Zeitpunkt ein. Als Beispiel nennt das zugehörige Google-Doc eine Tabelle mit Wechselkursen, die sich mit der Zeit konstant wächst. Eine temporale (nicht temporäre) Tabelle ist eine Ansicht, die den jeweiligen Status der Wechselkurse zu einem bestimmten Zeitpunk widerspiegelt. Damit lässt sich unter anderem ein Stream von Bestellungen in unterschiedlichen Währungen mit dem jeweils korrekten Wechselkurs verbinden. Temporale Joins ermöglichen analog zu den Temporal Tables das ANSI-SQL-konforme Zusammenfügen von Streaming-Daten mit einer sich stetig ändernden Tabelle.

Ein weiteres neues Konzept von Flink 1.7 ist der Einsatz von Pattern-Matching in Streaming-SQL. Die Macher sprechen für die aktuelle Umsetzung von einem initialen Support der neuen musterbasierten Suche, und die Funktion befindet sich noch in der Beta-Phase. Sie verbindet die CEP-Bibliothek (Complex Event Processing) von Flink mit SQL in den mit SQL:2016 eingeführten MATCH_RECOGNIZE-Befehl.

Mit der sogenannten State Evolution können Administratoren das User-States-Schema während des Verlaufs anpassen, wobei die Kompatibilität zu vorherigen Speicherpunkten bestehen bleibt. So lassen sich Spalten zu einem Schema hinzufügen oder daraus entfernen, um anzupassen, welche Features festgehalten werden sollen.

Die REST API von Flink ist ab sofort versioniert, damit externe Anwendungen gegen eine stabile API unabhängig von der jeweiligen Flink-Version entwickeln können. Die Macher haben zudem die Table- und SQL-APIs erweitert, die nun unter anderem Zugriff auf die integrierten Funktionen TO_BASE64, LOG2, LTRIM, REPEAT, REPLACE, COSH, SINH und TANH bietet.

Flink 1.7 enthält nun einen Konnektor für Kafka 2.0, der beim Lesen und Schreiben eine sogenannte Exactly-Once-Garantie gibt, also sicherstellt, dass die Daten exakt einmal ankommen. Dieselbe Garantie gilt für die StreamingFileSink für AWS-S3-Dateisysteme. Bei den Programmiersprachen unterstützt Flink neuerdings vollständig Scala 2.12, was vor allem hinsichtlich des aktuellen Scala-Ökosystems interessant sein dürfte.

Weitere Details lassen sich der offiziellen Ankündigung von Flink 1.7 entnehmen. Alle Neuerungen und Bugfixes finden sich in den Release Notes. Das aktuelle Flink-Release steht sowohl im Sourcecode als auch als Binaries mit und ohne Hadoop (2.4 bis 2.8) auf der Apache-Site zum Herunterladen bereit. (rme)