Последняя версия Apache Flink была выпущена с переписанной моделью развертывания и процессов, а также с поддержкой широковещательного состояния.
Apache Flink — это платформа с открытым исходным кодом для распределенной потоковой и пакетной обработки данных. Он состоит из механизма потоковых данных, который обеспечивает распределение данных, обмен данными и отказоустойчивость для распределенных вычислений по потокам данных. Flink включает несколько API, включая DataSet API для статических данных, встроенных в Java, Scala и Python; API DataStream для неограниченных потоков, встроенных в Java и Scala; API таблиц с SQL-подобным языком выражений, встроенным в Java и Scala; и потоковый SQL API, который позволяет выполнять SQL-запросы к потоковым и пакетным таблицам, с синтаксисом, основанным на Apache Calcite.
Одним из дополнений к последней версии является новый клиент SQL CLI, который является первым шагом к добавлению службы для выполнения потоковых и пакетных SQL-запросов. Клиент предоставляет оболочку SQL для выполнения исследовательских запросов к потокам данных.
Разработчики переработали и повторно реализовали большие части модели процессов Flink и говорят, что, хотя над этой переработкой еще предстоит работа, уже реализованные изменения позволяют более естественным образом развертывать Kubernetes и означают, что все запросы к JobManager теперь выполняются через REST. Улучшения также добавляют поддержку динамического распределения ресурсов и динамического высвобождения ресурсов в планировщиках YARN и Mesos для лучшего использования ресурсов. В более поздней версии можно будет докерировать задания и развертывать их естественным образом как часть развертывания контейнера.
Разработчики, использующие Flink, просили о новой поддержке широковещательного состояния. Состояние широковещательной передачи реплицируется на все параллельные экземпляры функции и обычно может использоваться там, где у вас есть два потока, обычный поток данных вместе с потоком управления, который обслуживает правила, шаблоны или другие сообщения конфигурации. Изменения в обработке обычного потока настраиваются сообщениями управляющего потока. Посредством широковещательной передачи правил или шаблонов всем параллельным экземплярам функции они могут применяться ко всем событиям обычного потока.
Следующее улучшение направлено на повышение эффективности восстановления после сбоев. При обычном использовании Flink записывает копии состояния приложения в удаленное постоянное хранилище и загружает их обратно в случае сбоя. Это гарантирует, что информация о состоянии не будет потеряна, но восстановление состояния требует времени. Новая функция, восстановление локального состояния задачи, добавляет возможность хранить копию состояния приложения на локальном диске каждой машины, поэтому восстановление происходит быстрее.
Другие улучшения включают расширенную поддержку соединений для SQL и API таблиц с добавлением поддержки оконных внешних эквивалентных соединений; и улучшено чтение и запись сообщений JSON от и до соединителей.