Разработчики KSQL, потокового SQL-движка для Apache Kafka, выпустили версию 0.3 с улучшениями для надежности и использования ресурсов.
KSQL разработан, чтобы упростить чтение, запись и обработку потоковых данных в реальном времени в любом масштабе с использованием семантики, подобной SQL. Он поддерживает операции потоковой обработки, включая агрегирование, объединения, управление окнами и сеансами.
KSQL теперь находится на ежемесячном графике выпуска. Последняя версия, KSQL 0.3, содержит ряд новых функций, основанных на запросах пользователей, а также улучшения в написании языка, чтобы сделать его более надежным и лучше использовать ресурсы.
Первое, что представляет интерес в обновленной версии, — это поддержка Avro и интеграция с Confluent Schema Registry. До сих пор в KSQL можно было использовать данные в форматах JSON и с разделителями. Разработчики говорят, что, по понятным причинам, они получали запросы на поддержку других форматов данных, и Avro был самым востребованным.
Apache Avro — это система сериализации данных, которая была разработана в рамках проекта Apache Hadoop и также используется Kafka. Acro использует JSON для определения типов данных и протоколов. Он сериализует данные в компактном двоичном формате.
Новая поддержка Avro в этом выпуске KSQL обеспечивается за счет интеграции с Confluent Schema Registry, который является частью Confluent Platform с открытым исходным кодом. Это означает, что теперь вы можете запускать запросы KSQL, которые читают и записывают данные Avro.
Использование Confluent Schema Registry означает, что поддержка Avro более полная, чем вы могли ожидать. Если вы хотите создать ПОТОК или ТАБЛИЦУ, KSQL выводит необходимую информацию из связанной схемы Avro в реестре конфлюентных схем. Это означает, что вам не нужно вручную определять схемы Avro, а затем сопоставлять их со столбцами и типами KSQL в ваших операторах DDL.
Вы также можете конвертировать между Acro, JSON и форматами данных с разделителями в реальном времени, используя всего одну строку KSQL. Вы также можете создавать объединения между потоками и таблицами в KSQL независимо от базовых форматов данных. Разработчики говорят, что особого синтаксиса не требуется; объединение разных источников данных «просто работает», потому что внутренняя модель данных KSQL автоматически преобразуется между различными форматами данных за вас.
Другими основными улучшениями этой версии KSQL являются добавление начальных показателей метрик и возможность наблюдать за тем, что происходит в KSQL. Для потоков и таблиц в языке появился новый
DESCRIBE EXTENDED <имя потока / таблицы>
Оператор, который показывает статистику, такую как количество сообщений, обрабатываемых за секунду, общее количество сообщений, время, когда было получено последнее сообщение, а также соответствующие показатели сбоев.
Разработчики также улучшили оператор EXPLAIN