log
, power
и cbrt
(#9366) (002a810).TRUNC
(#9502) (#9522) (4755817).CORRELATION
(#9383) (cb9d163).Object
в качестве параметра типа для вариативного аргумента UDAF (#9481) (9444fe1).Не удалось разобрать текст после ключевого слова «dont». Перевод текста:
Выбрасывать ошибки ограничения постоянных запросов для не-запросов (#9588) (f4375f1).
Установить таймаут для переадресованных запросов на pull-запросы равным 20 с (#9823) (7ac28eb).
Не блокировать цикл событий в PullQueryQueue (#9409) (9300b46).
Разрешить команде assert values проверять частичные столбцы (#9463) (81a138c).
Исправить VALUE_SCHEMA_ID для работы с необязательными полями Avro (#8919) (54acc05).
Игнорировать схему ID при создании внутренних схем (#9163) (1b327c6).
Выбросить исключение, если схема не найдена из SR во время INSERT (#9457) (49bb8d4).
Избежать регистрации новой версии схемы при INSERT VALUES (#9238) (018ad3a).
Заменить структуры схем отсутствующим именем подключения (#9433) (c778b69).
Отключить SR ID_COMPATIBILITY_STRICT для Protobuf, чтобы разрешить сериализацию с внешними ссылками (#9369) (72608fe).
Не очищать при работе в деградированном режиме (#9452) (0c2d221).
Изменить конфигурационные файлы на основе паролей на Type.PASSWORD (#9717) (e7c5c1f).
Убедиться, что клиенты закрыты от прекондишн чекер (#9391) (f197dc1).
Перенести загрузку UDF на выполнение перед прекондишн чекер (#9392) (2bd3aa6).
Использовать разрешённые конфиги в прекондишн чекере (#9567) (47e8aa6).
По умолчанию использовать get authHeader при использовании basic (#9818) (2059902).
Использовать карту args вместо аргументов метода в сгенерированном Java-коде (#9711) (d5b6dd3).
Версия: 0.28.2 (2022-08-02).
Особенности:
Добавление метрики статуса запроса ksqlDB. (#9283) (5ad9cf8).
Поддержка приостановки/возобновления постоянных запросов (#9203) (9f0f74a).
Добавлены многочисленные тригонометрические UDF. ### Исправления ошибок
donot reset version for release branch.
make api client recognize ddl warnings better.
Map invalid casts to null.
allow YATT to insert into and check contents of DDL sources.
classify KsqlSerializationException as USER error based on topic (KSE-1045).
Create a KsqlSerializationException class.
DESCRIBE FUNCTION failing for annotated UDAFs with initial args.
remove regex from migration tool.
Return proper status code for QPS ratelimit.
use JsonSchemaConverter to support JSON anyOf types.
add getAuthToken method to AuthenticationPlugin interface.
change auth token provider to accept token strings instead of principals.
Excludes Guava from Guava-retrying in order to manage Guava dependencies more reliably.
Removing reverted configuration org.apache.kafka.streams.Streams…
allow trig fxn differences between Java versions in tests.
change consumer_group_member_id tag to just member to match Druid name.
respect authentication.skip.paths properly.
remove topic tag conversion hack and update tests.
Добавление команды ASSERT TOPIC:
Метрика для перезапусков запросов:
Метрика, которая срабатывает при возникновении ошибки в обработке журнала:
Поддержка ProtoBuf как типа контента для запросов pull через /query-stream endpoint:
Поддержка утверждений в инструменте миграции:
Утверждение отсутствия темы:
Автоматическое построение образа Confluent Cloud при каждом слиянии мастера:
Очистка метрики обработки журнала:
Закрытие соединений WebSocket с истёкшими токенами:
Сокращение списка редактируемых свойств API:
Включение функций max/min для типов данных string и bytes:
Введение функции агрегирования ATTR:
Миграция Java-клиента на использование формата application/vnd.ksql.v1+json:
Поддержка всех символов (*) в синтаксисе ссылки на структуру:
Поддержка типов BYTES и time для TopKDistinct, Greatest и Least:
Проверка предварительных условий перед запуском основного приложения:
Разрешение агрегаций без group bys:
Разрешить STREAMS без ключа:
Добавить формат PROTOBUF_NOSR и исправить мультиформатные тесты:
Добавить поддержку BYTES для формата KAFKA (#9180) (844d275).
Позволяет сравнивать результаты CAST. (#9186) (3defb6b).
Неоднозначная ссылка на закрытие вопроса (#9167) (2e7d0db).
Изменить имя группы и расширить CumulativeSum в ThroughputMetricsReporter (#9211) (6bcd47f).
Классифицировать KsqlFunctionException как ошибку USER (f2877e8).
Классифицировать ошибки SR, связанные с отсутствием темы и правами доступа, как ошибки USER (#9072) (90a609d).
Исправить проверку интервала в RocksDBMetricCollectorTest (#9210) (6fee500).
Исправление нескольких ошибок обработки нулевых значений (#9127) (bd90347).
Переместить неправильно размещённые конфигурационные параметры уровня запроса в правильный список (#9144) (86d4fbb).
Повторно извлекать потоки для каждого materializationProviderBuilder (#9036) (4340dfa).
Сбросить сборщик перед повторной настройкой (#9205) (a641a0b).
Вернуть тип контента по умолчанию /query-stream
к application/vnd.ksqlapi.delimited.v1
от application/vnd.ksql.v1+protobuf
(#9145) (3e3322e).
Выбрасывать KsqlFunctionException при агрегировании в sum udaf (#9052) (9e9d10e).
Использовать KsqlConfig движка для построения запросов (#9040) (503e4cd).
Завершить проверку при CREATE CONNECTOR, если коннектор уже существует (#9014) (94a74fa).
Улучшенные/исправленные сообщения об ошибках агрегатных функций (#8977) (57f3596), закрывает #8976.
Включить столбцы заголовков при внедрении схем (#9023) (4b5feb0).
Перенести проверку создания коннектора в фазу проверки (#8999) (73e5463).
Зарегистрировать слушателя состояния. После перезапуска среды выполнения (#9032) (1f7a09a):
Features:
Исправления ошибок:
В запросе присутствуют ссылки на GitHub, но текст запроса не содержит информации о том, что именно нужно перевести. В ответе переведён только основной текст. Текст запроса представляет собой перечень изменений, внесённых в систему KSQL. Определить основной язык текста не представляется возможным, так как он содержит только наименования коммитов и ссылки на них.
В тексте запроса нет фрагментов на каком-либо языке программирования или специальных тегов форматирования. Перевод текста:
key.converter
в качестве StringConverter
, поскольку ksqlDB уже много версий поддерживает типы ключей, отличные от строк.Добавить поддержку типа данных TIMESTAMP для свойства WITH/TIMESTAMP.
Включение псевдостолбцов ROWPARTITION и ROWOFFSET (KLIP-50)
Включить псевдостолбцы ROWPARTITION и ROWOFFSET.
Повторное включение периода GRACE с новой семантикой объединения потоков
Повторно включить период GRACE с новой семантикой объединения потоков.
Добавление понятного сообщения об ошибке при SELECT null AS column
Добавление понятного сообщения об ошибке, когда SELECT используется для создания столбца с нулевым значением.
Разрешение вставки нулевых значений в инструменте миграции
Разрешить вставку нулевых значений в инструмент миграции.
Увеличение времени очистки группы потребителей
Увеличить время очистки группы потребителей.
Позволяет отменять удалённые запросы на вытягивание
Позволяет отменить удалённый запрос на вытягивание.
ClassCastException при удалении источников с двумя или более запросами на вставку
Исключение ClassCastException возникает при удалении источников, содержащих два или более запросов на вставку.
Закрытие командного бегуна при удалении темы команды
Командный бегун закрывается при удалении командной темы.
Не выводит ошибку
Ошибка не выводится.
Не выдавать ошибку при обработке локальных команд, только регистрировать
При обработке локальных команд ошибка не выдаётся, только записывается.
Во время запуска ksql избегать повторного создания удалённой командной темы при наличии действительной резервной копии
Во время запуска KSQL избегать повторного создания удаленной командной темы, если есть действительная резервная копия.
fix_application_id_to_work_with_acls
Исправление fix_application_id для работы с ACL.
Работа с метрикой возвращаемых строк
Метрика возвращаемых строк работает.
Если не существует, вернуть тип
Если не существует, возвращается тип.
Сделать parse_date способным анализировать частичные даты
Функция parse_date может анализировать частичные даты.
Выводить только неудачную строку при разборе исключения
Только неудачная строка выводится при разборе исключения.
Поддержка операторов LIKE и BETWEEN в запросах на извлечение
Поддержка операторов LIKE и BETWEEN в запросах на извлечение. Рефакторинг ConnectFormatSchemaTranslator для использования объекта-транслятора вместо лямбда-функции (#8177) (6d3b351).
Указание типа источника в ошибках ссылочной целостности при удалении (#8253) (03bd713).
Обновление сообщения об ошибке (#8221) (8c30780).
Откаты (reverts)
Версия 0.22.0 (2021-11-03).
Новые функции
Добавление конфигураций для ведения журнала конечных точек (#8249) (21f4e03).
Добавление consumerGroupId в QueryDescription (#8073) (cce585b).
Добавление метрики CumulativeSum для общего количества байтов (#7987) (aa213bd).
Добавление поддержки SOURCE для потоков и таблиц (#8085, #8063, #8061, #8004, #7945, #8022, #8043, #8009) (5416cde, 88c6192, e2c3211, 0d0e85a, 70565f2, a322310, 381b7bf, 2c22b8f).
Добавление методов и классов для выполнения низкоуровневых HTTP-запросов в клиенте ksqldb-api-client (#8118) (aae5f95), закрывает #8042.
Добавление запросов на извлечение данных из потоков (#8126, #8168, #8124, #8143, #8115, #8064, #8045). В запросе представлен список задач и улучшений, связанных с разработкой и тестированием программного обеспечения.
Задачи включают в себя:
Также упоминаются исправления ошибок, такие как:
Это неполный перевод текста, так как некоторые фрагменты не удалось перевести из-за отсутствия контекста или специальных терминов. 0.21.0 (2021-09-15)
Особенности:
В запросе присутствуют ссылки на задачи и коммиты из системы отслеживания ошибок GitHub. Однако в них нет текстовой информации, которую можно было бы перевести. ### Исправления ошибок
Существующие запросы, которые полагались на неопределённое неявное приведение типов, не будут запускаться после обновления, а новые запросы, которые полагаются на неопределённое неявное приведение типов, будут отклонены. Например, foo(INT, INT) не сможет разрешиться против двух базовых сигнатур функций foo(BIGINT, BIGINT) и foo(DOUBLE, DOUBLE). Вызов функции, единственный параметр которой является переменным, с явным значением null также приведёт к отклонению вызова как неопределённого.
Стоит отметить, что запросы, которые опирались на это неопределённое неявное приведение типов, никогда не были действительно поддерживаемыми, поскольку они были бы недетерминированными. Наиболее вероятными UDF, на которые может повлиять это изменение, являются те, у которых есть несколько числовых перегрузок с повторяющейся логикой. Например, если у вас было две UDF foo(INT, INT) и foo(BIGINT, BIGINT), обе из которых полагались на логику, которая возвращает null, если оба входных параметра равны null, то предыдущее поведение привело бы к... Были произведены недетерминированные переходы к одной из двух функций, в которых в любом случае возвращался бы null (из-за дублирующейся логики). Это изменение нарушит существующие запросы, которые полагались на этот недетерминированный переход.
Добавить функции коннектора в java-клиент (#7222) (7766195.
Исправлены ошибки:
0.17.0 (2021-04-26)
Добавлены функции:
(c3fe8a1) - Adds an expression interpreter to improve pull query performance (#7006) (5d2cd83) - implements migrations tool and corresponding commands (#6988) (8bdb09a), (#7161) (2c614cd), (#7190) (4151bae), (#7137) (608cb5e), (#7099) (a75c355), (#7153) (2e546b6), (#7133) (c91e23c), (#7145) (956e799), (#7087) (d4cf400) - add maven wrapper (#7307) (d0ab425) - CLI should fail for unsupported server version (#7097) (a0745b9) - Add timestamp arithmetic functionality (#6901) (e2c06dc) - added script to export antlr tokens to use in frontend editor (#7118) (7e1c180) - makes tables queryable through efficient and flexible table scans (#7155) (71becea), (#7188) (55f5403), (#7085) (65d0df1) - limit the number of active push queries everywhere using "ksql.max.push.queries" config (#7109) (906f4c5) - classify authorization exception as user error (#7061) (a74b77c)
Перевод текста на русский язык:
(c3fe8a1):
И так далее.
В запросе содержится большое количество технической информации, связанной с разработкой и тестированием программного обеспечения. Основной язык текста запроса — английский. Не удалось определить основной язык текста запроса.
В запросе содержатся ключевые слова и фразы, которые могут указывать на то, что текст написан на языке программирования Java или SQL. Однако для точного определения основного языка необходимо больше контекста.
Перевод текста:
3e48540 — не регистрировать данные об ошибках десериализации JSON (MINOR) (#6930) (1834da6);
— ff-4240-upgrade httpclient version (#6935) (19f4d63);
— исправить, как проверка предельного значения буфера оценивает конфигурацию потоков (#6876) (ad1cc2a);
— форматировать аргументы приведения с переданным контекстом (6.0.x) (#7032) (8c0d93d);
— сделать formattimestamp и parsetimestamp по умолчанию utc (#6954) (a5ea98a);
— заставить Select * избегать генерации кода для проекций (#6846) (0896b85);
— NPE при получении конфигурации темы (#6946) (5e026d4);
— удалить изменяемое поле подписчика на конечной точке (#6905) (98c7d73);
— использовать правильное имя для резервного субъекта для временных запросов (#6821) (d044d64), закрывает #6817;
— предоставить поддержку для ключей массива и структуры (#6722) (c7fc2b0);
— поддержка PARTITION BY для нескольких выражений (#6803) (5a6b48e);
— снять ограничение на использование многостолбцового GROUP BY (#6786) (9900623);
— предоставить AVRO и JSON_SR в качестве форматов ключей (#6694) (07dc0c7);
— поддерживать PROTOBUF ключи (#6692) (821faac);
— добавить разделы в вывод PRINT TOPIC (#6641) (1f4eff8);
— добавляет ведение журнала для каждого запроса к ksqlDB (#6615) (57b0c91);
— необязательный KAFKA_TOPIC
(862c59e);
— поддерживает объединение таблиц при несоответствии формата ключа (#6708) (989e52b);
— cli для отображения надгробий в выводе временного запроса (#6462) (ef3039a);
— новый синтаксис для взаимодействия с сеансом. ### BREAKING CHANGES
Запросы с GROUP BY, которые содержат несколько выражений группировки, теперь приводят к нескольким ключевым столбцам, по одному для каждого выражения группировки, а не к одному ключевому столбцу, который является конкатенацией строк выражений группировки. Обратите внимание, что это новое поведение (и критическое изменение) применяется только к новым запросам; существующие запросы продолжат выполняться без прерываний при обновлении сервера ksqlDB.
Соединения типа «ключ-к-ключу» между потоком и таблицей на несоответствующих форматах теперь будут переразбивать таблицу (правую сторону), а не поток. Старые поставленные в очередь команды не будут затронуты, поэтому это изменение должно оставаться незаметным для конечного пользователя.
Добавить конечную точку для возврата конфигурации лимита запроса (#6353) (84d202d).
Добавить commandRunnerCheck в детали проверки работоспособности (#6346) (5f64d05).
Добавить метрики для размера запросов и ответов pull в байтах (#6148) (946d2d3).
Избегать ложных надгробий в выводе таблицы (#6405) (4c7c9b5).
Новый параметр CLI для выполнения команды и выхода (без взаимодействия с CLI) (#6267) (0d60246).
Новая команда для восстановления резервных копий командных тем ksqlDB (#6361) (036df20).
Новый параметр CLI (-f,--file) для выполнения команд из файла. Bug Fixes
Новый синтаксис для взаимодействия с переменными сеанса (define/undefine/show variables) (6474) (df98ef4).
— Это изменение исправляет ошибку, когда ненужные надгробия испускались, когда предложение HAVING фильтровало строку из источника, которой нет в выходной таблице.
Например, учитывая:
sql — исходный поток: CREATE STREAM FOO (ID INT KEY, VAL INT) WITH (...); — агрегировать в таблицу: CREATE TABLE BAR AS SELECT ID, SUM(VAL) AS SUM FROM FOO GROUP BY ID HAVING SUM(VAL) > 0; — вставить некоторые значения в поток: INSERT INTO FOO VALUES(1, -5); INSERT INTO FOO VALUES(1, 6); INSERT INTO FOO VALUES(1, -2); INSERT INTO FOO VALUES(1, -1);
Где ранее содержимое топика-приёмника BAR
содержало записи:
Ключ | Значение | Примечания |
---|---|---|
1. | null. | Бесполезный tombstone: таблица не содержит строку с ключом 1 , поэтому tombstone не требуется. |
1. | {sum=1} | Строка добавлена, так как критерии HAVING теперь выполнены |
1. | null. | Строка удалена, так как критерии HAVING больше не выполняются |
1. | null. | Бесполезный tombstone: таблица не содержит строку с ключом 1 , поэтому tombstone не требуется. |
Топик теперь будет содержать:
Ключ | Значение |
---|---|
1. | {sum=1} |
1. | null. |
Поддержка DDL/DML-инструкций в Java-клиенте.
Поддержка WINDOWEND в WHERE запросов на извлечение данных.
Добавление поддержки взаимной аутентификации SSL для внутрикластерных запросов.
Новая UDF array_remove.
Команда Replay для отправки темы в локальный файл для резервного копирования метахранилища KSQL.
Организация UDF по категориям.
Предоставление идентификатора запроса в CommandStatusEntity (MINOR).
Обход проблемы KAFKA-10179 путём принудительного использования тем журнала изменений для таблиц.
Постоянное использование субъекта журнала изменений в хранилищах состояний таблиц.
Удаление проверки совместимости схемы, если схема существует.
Обеспечение сохранения значений NULL при приведении типов.
ksqlDB не должен усекать десятичные дроби.
Убедиться, что описание UDTF показывает фактическое описание функции.
Повторное использование экземпляра KsqlClient для межузловых запросов.
Миграция log4j в версию Confluent.
Отображение переопределённых свойств в CLI.
Упрощение сообщения об ошибке запроса на извлечение.
Обновление до Vert.x 3.9.1, который зависит от версии Netty, позволяющей использовать перенесённый ALPN в JDK 1.8.0_252, и предоставление предупреждения, если openSSL не установлен.
Оконные таблицы теперь имеют политику очистки compact+delete.
Настройка срока хранения темы на основе предложения о сроке хранения для оконных таблиц.
Конфигурация порта реестра схем в учебном docker compose.
Создание каталога резервных копий метахранилища, если он не существует. BREAKING CHANGES
ID,
I1.V0,
I2.V0,
I3.V0
FROM I1
JOIN I2 ON abs(I1.ID) = I2.ID
JOIN I3 ON I2.ID = I3.ID;
— OUTPUT will have a key column named KSQL_COL_0, or similar.
CREATE TABLE OUTPUT AS
SELECT *
FROM I1
FULL OUTER JOIN I2 ON I1.ID = I2.ID;
The key column can be given a new name, if required, by defining an alias in the projection. A new UDF has been introduced to help define the alias called JOINKEY. It takes the join criteria as its parameters. For example:
— OUTPUT will have a key column named ID.
CREATE TABLE OUTPUT AS
SELECT
JOINKEY(I1.ID, I2.ID) AS ID,
I1.V0,
I2.V0
FROM I1
FULL OUTER JOIN I2 ON I1.ID = I2.ID;
JOINKEY will be deprecated in a future release of ksqlDB once multiple key columns are supported.
Перевод текста запроса на русский язык:
ИДЕНТИФИКАТОР,
I1.V0,
I2.V0,
I3.V0
ИЗ I1
ПРИСОЕДИНИТЬСЯ I2 НА abs(I1.ИДЕНТИФИКАТОР) = I2.ИДЕНТИФИКАТОР
ПРИСОЕДИНИТЬСЯ I3 НА I2.ИДЕНТИФИКАТОР = I3.ИДЕНТИФИКАТОР.
— В OUTPUT будет ключевой столбец с именем KSQL_COL_0 или аналогичный.
СОЗДАТЬ ТАБЛИЦУ OUTPUT КАК
ВЫБРАТЬ *
ИЗ I1
ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ I2 ПО I1.ИДЕНТИФИКАТОРУ = I2.ИДЕНТИФИКАТОР.
Ключевому столбцу можно дать новое имя, если это необходимо, определив псевдоним в проекции. Была введена новая функция UDF, помогающая определить псевдоним под названием JOINKEY. Она принимает критерии соединения в качестве параметров. Например:
— OUTPUT будет иметь ключевой столбец с именем ИДЕНТИФИКАТОР.
СОЗДАТЬ ТАБЛИЦУ OUTPUT КАК
ВЫБЕРИТЕ
JOINKEY (I1.ИДЕНТИФИКАТОР, I2.ИДЕНТИФИКАТОР) КАК ИДЕНТИФИКАТОР,
I1.V0,
I2.V0
ОТ I1
ПОЛНЫЙ ВНЕШНИЙ СОЕДИНЯЕТСЯ I2 ПО I1.ИДЕНТИФИКАТОРУ = I2.ИДЕНТИФИКАТОР.
JOINKEY будет устаревшим в будущем выпуске ksqlDB, как только будут поддерживаться несколько ключевых столбцов. Перевод текста на русский язык:
Псевдоним для ключевого столбца в предложении WITH, например:
CREATE TABLE INPUT (
ROWKEY INT PRIMARY KEY,
ID INT,
V0 STRING
) WITH (
key='ID',
...
);
В приведённом выше запросе столбец ID можно использовать как псевдоним для ROWKEY. Этот подход требовал, чтобы значение сообщения Kafka содержало точную копию ключа.
KLIP-24 устранил ограничение, согласно которому ключевые столбцы должны были называться ROWKEY, что устранило необходимость в синтаксисе WITH(KEY), который был удалён. Кроме того, это изменение устранило требование, чтобы значение сообщения Kafka содержало точную копию ключа.
Обновите свои запросы, удалив KEY из предложения WITH и соответствующим образом назвав свои столбцы KEY и PRIMARY KEY. Например, предыдущее выражение CREATE TABLE теперь можно переписать следующим образом:
CREATE TABLE INPUT (
ID INT PRIMARY KEY,
V0 STRING
) WITH (...);
Если формат значения не DELIMITED, что означает, что столбцы значений зависят от порядка, то удаление столбца значений ID приведёт к ошибке десериализации или загрузке неправильных значений. Если вы используете DELIMITED, рассмотрите возможность переписать его следующим образом:
CREATE TABLE INPUT (
ID INT PRIMARY KEY,
ignoreMe INT,
V0 STRING
) WITH (...);
Select star, то есть select *, больше не расширяется, чтобы включить столбцы ROWTIME. Вместо этого ROWTIME включается в результаты запросов только если явно включён в проекцию, например: select rowtime, *. Это влияет только на новые операторы. Любые представления, ранее созданные с помощью операторов CREATE STREAM AS SELECT или CREATE TABLE AS SELECT, не затрагиваются.
Существующие запросы, которые ссылаются на один столбец GROUP BY в проекции, завершатся ошибкой, если они будут повторно отправлены, из-за дублирования столбца. Те же существующие запросы продолжат работать, если уже запущены, то есть это изменение касается только вновь отправленных запросов. Существующие запросы будут использовать старую семантику запросов.
Push-запросы, которые полагаются на автоматически сгенерированные имена столбцов, могут увидеть изменения в именах столбцов. Pull-запросы и любые существующие постоянные запросы не затрагиваются, например те, что созданы с помощью CREATE STREAM AS SELECT, CREATE TABLE AS SELECT или INSERT INTO.
Сервер ksqlDB больше не поставляется с Jetty. Это означает, что при запуске сервера необходимо предоставить зависимости, специфичные для Jetty, такие как определённые модули входа, используемые для базовой аутентификации, с помощью переменной среды KSQL_CLASSPATH, чтобы они были найдены.
См. раздел «Как настроить ksqlDB для базовой HTTP-аутентификации».
Если вы обновляетесь с версии ksqlDB до 0.7, следуйте этим инструкциям по обновлению.
Поддержка настраиваемого срока хранения и льготного периода для оконных таблиц (#4733) (30d49b3), закрывает #4157.
Добавление UDF REGEXP_EXTRACT (#4728) (a25f0fb).
Добавление UDF ARRAY_LENGTH (#4725) (31a9d9d).
Реализация последнего по смещению (latest_by_offset) UDAF (#4782) (0c13bb0).
Добавление confluent-hub в образ ksqlDB Docker (#4729) (b74867a).
Добавление имени темы к ошибкам десериализации (#4573) (0f7edf6).
Добавить метрики для запросов конечной точки pull (#4608) (23e3868).
Логировать ошибки groupby в обработчике обработки (#4575) (b503d25).
Установить верхний предел количества push-запросов (#4581) (2cd66c7).
Отображать ошибки в CLI красным текстом (#4509) (56f9c9b).
Улучшить формат обнаружения PRINT TOPIC (#4551) (8b19bc6).
Изменить обработку исключений по умолчанию для экстракторов временных меток (#4632) (1576af0).
Создавать схемы при создании темы (#4717) (514025d).
Не отображать десятичные знаки в экспоненциальной записи в CLI (#4723) (3626f42).
Прекратить ведение журнала о создании темы команды при запуске, если она существует (MINOR) (#4709) (f4cec0a).
Специальная обработка переадресованного запроса на извлечение (#4597) (ba4fe74).
Перенести исправления из запроса close (#4662) (8168002).
Вернуть configOverrides обратно в streamsProperties (#4675) (ce74cf8).
CSAS/CTAS с использованием столбца timestamp для вывода rowtime (#4489) (ddddf92).
Патч KafkaStreamsInternalTopicsAccessor, поскольку внутренние компоненты KS изменились (#4621) (eb07370).
Использовать HTTPS вместо HTTP для разрешения зависимостей в Maven archetype (#4511) (f21823f).
Добавить десериализатор для SqlType (#4830) (eed9912). ### 0.7.1 (2020-02-28)
Поддержка пользовательских ширин столбцов в CLI (#4616) (cb66e05). Новый параметр конфигурации ksqlDB CLI позволяет указать ширину каждого столбца в табличном выводе.
ksql> SET CLI COLUMN-WIDTH 10
При заданном значении последующие визуализации вывода используют настройку:
ksql> SELECT * FROM riderLocations
> WHERE GEO_DISTANCE(latitude, longitude, 37.4133, -122.1162) <= 5 EMIT CHANGES;
+----------+----------+----------+----------+----------+
|ROWTIME |ROWKEY |PROFILEID |LATITUDE |LONGITUDE |
+----------+----------+----------+----------+----------+
Поведение по умолчанию, которое определяет ширину столбца на основе ширины терминала и количества столбцов, можно повторно включить с помощью:
ksql> SET CLI COLUMN-WIDTH 0
Обратите внимание, что ksqlDB 0.7.0 имеет ряд критических изменений по сравнению с ksqlDB 0.6.0 (подробности см. в разделе «Критические изменения» ниже). Обязательно ознакомьтесь с этими инструкциями по обновлению и следуйте им, если вы переходите с предыдущей версии ksqlDB.
Тип ключа можно определить в операторе CREATE TABLE или CREATE STREAM, включив определение столбца для ROWKEY в форме ROWKEY <тип примитивного ключа> KEY, например:
CREATE TABLE USERS (ROWKEY BIGINT KEY, NAME STRING, RATING DOUBLE) WITH (kafka_topic='users', VALUE_FORMAT='json');
В настоящее время ksqlDB требует, чтобы имя ключевого столбца было ROWKEY. Поддержка произвольных имён ключей отслеживается #3536.
В настоящее время ksqlDB требует использовать ключи в формате KAFKA. Поддержка дополнительных форматов отслеживается https://github.com/confluentinc/ksql/projects/3.
Интуиция схемы в настоящее время работает только со строковыми ключами. Поддержка дополнительных типов ключей отслеживается № 4462 (интуиция схемы — это когда ksqlDB выводит схему операторов CREATE TABLE и CREATE STREAM из схемы, зарегистрированной в Schema Registry, в отличие от пользователя, предоставляющего набор столбцов в операторе).
Apache Kafka Connect можно настроить для вывода ключей в формате KAFKA, используя конвертер, например, "key.converter": "org.apache.kafka.connect.converters.IntegerConverter"
. Подробности о том, какой конвертер использовать для какого типа ключа, можно найти здесь: https://docs.confluent.io/current/ksql/docs/developer-guide/serialization.html#kafka в столбце «Конвертер подключения».
@rmoff написал вводный блог о примитивных ключах: https://rmoff.net/2020/02/07/primitive-keys-in-ksqldb/.
Исправления ошибок
WINDOWSTART
и WINDOWEND
в качестве системных имён столбцов.
— Установить часовой пояс теста RestQueryTranslationTest для работы в зонах, отличных от UTC.
— Теперь запросы show возвращают правильную Kafka Topic, если строка запроса содержит предложение with.
— Поддержка преобразования STRING в BIGINT для границ окна.
— Поддержка WindowStart() и WindowEnd() в запросах pull.
— Добавить логирование во время восстановления.
— Файлы свойств log4j.
— Сообщать более понятное сообщение об ошибке при использовании AVG с DELIMITED.
— Более понятное сообщение об ошибке для самостоятельного соединения.
— Изменить генерацию идентификатора запроса для работы с запланированными командами.
— Команды CLI могут заканчиваться точкой с запятой и пробелом (MINOR).
— Десятичные дроби в структурах должны отображаться как числовые.
— Не загружать текущий тестовый пример qtt из устаревшего загрузчика.
— Иммутабельность в некоторых других классах (MINOR).
— Включить путь поля, вызывающего ошибку десериализации JSON.
— Повторно ввести FetchFieldFromStruct в качестве общедоступной UDF.
— Показать темы не отображает темы с разным регистром букв.
— Отслеживаемый файл после клонирования в Windows.
— Доступ к массиву теперь начинается с 1 вместо 0.
— Явно запретить табличные функции с источниками таблиц, исправляет #4033.
— Исправить проблемы с многооператорными запросами, которые не проходят проверку.
— NPE при запуске StandaloneExecutor. BREAKING CHANGES
Существующие запросы, которые выполняют PARTITION BY или GROUP BY для одного столбца одного из поддерживаемых примитивных типов ключей, теперь будут устанавливать ключ соответствующего типа, а не STRING, как раньше.
Удалены UDAF-функции WindowStart() и WindowEnd() из KSQL. Вместо этого используйте системные столбцы WindowStart и WindowEnd для доступа к границам окна в выражении SELECT.
Изменился порядок столбцов для внутренних тем. Формат DELIMITED не может обработать это совместимым образом. Следовательно, это критическое изменение для любых существующих запросов, использующих формат DELIMITED и имеющих внутренние темы. Это изменение было сделано по двум причинам:
Любой запрос к оконному источнику, который использует ROWKEY в проекции SELECT, увидит, что содержимое ROWKEY изменится с отформатированной строки, содержащей базовый ключ и границы окна, на просто базовый ключ. Запросы могут получить доступ к границам окна с помощью WINDOWSTART и WINDOWEND.
Соединения с оконными источниками теперь включают столбцы WINDOWSTART и WINDOWEND с обеих сторон в SELECT *.
WINDOWSTART и WINDOWEND теперь являются зарезервированными именами системных столбцов. Любой запрос, который ранее использовал эти имена, необходимо изменить: например, присвоить столбцам другое имя. Эти имена столбцов зарезервированы для использования в качестве системных столбцов при работе с потоками и таблицами, имеющими оконный ключ.
Автономные литералы, которые раньше были двойными, теперь могут интерпретироваться как BigDecimal. В большинстве сценариев это не повлияет на какие-либо запросы, поскольку DECIMAL может автоматически преобразовываться в DOUBLE; в случае, если литерал стоит отдельно, схема вывода будет DECIMAL вместо DOUBLE. Чтобы указать двойной литерал, используйте научную нотацию (например, 1,234E-5).
Ответ от RESTful API изменился для некоторых команд в этом коммите: тип SourceDescription больше не имеет поля format. Вместо него есть поля keyFormat и valueFormat. Ответ теперь включает свойство state для каждого запроса, которое указывает состояние запроса. В запросе скорее всего текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.
ROWKEY в результирующей схеме объединений мог измениться. Когда ROWKEY всегда был STRING, было возможно объединить столбец INTEGER со столбцом BIGINT. Теперь это не так. Объединение требует, чтобы столбцы объединения были одного типа. (См. https://github.com/confluentinc/ksql/issues/4130, который отслеживает добавление поддержки возможности CAST критериев объединения). Там, где объединение двух столбцов INT ранее приводило бы к схеме, содержащей ROWKEY STRING KEY, оно не привело бы к ROWKEY INT KEY.
CREATE STREAM INPUT (ROWKEY STRING KEY, ID INT) WITH (...);
CREATE TABLE OUTPUT AS SELECT COUNT(*) AS COUNT FROM INPUT GROUP BY ID;
CREATE STREAM INPUT (ROWKEY STRING KEY, ID INT) WITH (...);
CREATE STREAM OUTPUT AS SELECT ROWKEY AS NAME FROM INPUT PARTITION BY ID;
KTable.transformValues
, нам больше не нужно создавать таблицу, сначала создавая поток, затем выполняя выбор/группу/агрегат на нём. Вместо этого мы можем просто использовать StreamBuilder.table
.
Это изменение делает переход, удаляя типы StreamToTable
и вызовы и заменяет их либо TableSource
, либо WindowedTableSource
, копируя существующий шаблон для StreamSource
и WindowedStreamSource
.
Оно также восстанавливает изменение в KsqlConfig
, которое гарантирует, что оптимизация топологии включена по умолчанию. Это было верно для 5.4.x, но было непреднамеренно отключено.
С включённой конфигурацией оптимизации и новым шагом построения KSQL больше не создаёт тему журнала изменений для резервного хранилища состояния таблиц. В этом нет необходимости, так как исходная тема сама по себе является журналом изменений. Изменение включает новые тесты в table.json
, чтобы подтвердить, что тема журнала изменений не создаётся по умолчанию и создаётся, если пользователь отключает оптимизацию.
Это изменение также удаляет строку в TestExecutor
, которая явно устанавливает оптимизацию топологии на all
. Тест должен не... Вот перевод текста на русский язык:Из-за этого, возможно, не был обнаружен баг, отключающий оптимизации.
_confluent-ksql-<service-id>ksql-rest-app-command-runner
будет находиться в состоянии ERROR.static: разрешить логической схеме иметь поля в любом порядке (#3422) (d935af3).
static: разрешить оконные запросы без ограничений на rowtime (#3438) (6593ee3).
static: сбой при ROWTIME в проекции (#3430) (2f27b68).
static: поддержка частичных дат и времени в границах WindowStart (#3435) (99f6e24).
static: поддерживать ROWKEY в проекции статических запросов (#3439) (9218766).
static: переключиться на использование UTC по умолчанию для парсера частичного datetime (#3473) (81557e3).
static: неупорядоченная сериализация элементов таблицы и метастолбцов (#3428) (3b23fd6).
Добавить KsqlRocksDBConfigSetter для ограничения памяти и установки количества потоков (#3167) (cdcaa2d).
Добавить logs/ в .gitignore (MINOR) (#3353) (81272cf).
Добавить смещение в QueuedCommand и флаг в Command (#3343) (fd112a4).
Добавить опцию для datagen для бесконечной генерации (MINOR) (#3307) (6281738).
Добавить REST /metadata путь для отображения информации о сервере KSQL (заменяет /info) (#3313) (8be29b9).
Добавить SHOW TYPES. Улучшения надёжности для интеграции Connect
Запуск рабочего процесса Connect, встроенного в JVM KSQL
Проверка разрешений createTopic на SandboxedKafkaTopicClient
Поддержка формата KAFKA в DataGen
Опрос конфигураций connect и автоматическая регистрация источников
Обёртывание временных меток в выражениях ROWTIME с помощью STRINGTOTIMESTAMP
Введение ConnectClient для REST-запросов
Синтаксис для CREATE CONNECTOR (только синтаксис)
Подключение для создания коннекторов
Общая поддержка UDFs
Улучшение CLI для временных запросов с заголовками и интервалами
Формат Kafka
Добавить базовую поддержку синтаксиса ключей
Добавление авторизации через REST и Websocket
Массивы должны быть доступны с конца тоже
Десятичная математика с другими числами
Новые функции datetime UNIX_TIMESTAMP и UNIX_DATE
Не заспамлять логи определениями конфигурации (#3044) (94904a3).
Искать индекс нового ключевого поля только один раз, а не для каждой обработанной строки (#3020) (fda1c7f).
Конечная точка /query
rest должна возвращать действительный JSON (#3819) (b278e83).
Решить проблему с изменением в KafkaAvroDeserializer (#3372). - Отменить предыдущее исправление и учесть изменения в KafkaAvroDeserializer (#3437) (bed164b).
Разрешить использование тем с префиксом в конфигурациях (#3691) (939c45a), закрывает #817.
Применять фильтр перед плоским отображением в логическом планировщике (#3730) (f4bd083).
Временное решение для RestQueryTranslationTest (#3326) (677e03c).
Менее строго проверять конфигурацию (#3599) (3c80cf1), закрывает #2279.
Улучшенное сообщение об ошибке при недопустимом часовом поясе в строке даты и времени (#3449) (e93c445).
Улучшенное сообщение об ошибке, когда пользователи вводят синтаксис старого стиля для запроса (#3397) (f948ec0).
Изменения, необходимые для совместимости с KIP-479 (#3466) (567f056).
Создан новый тест для ручного запуска генерации топологии из IDE, и удалена main() из TopologyFileGenerator (#3609) (381e563).
Не разрешать вставки в таблицы с нулевым ключом (#3605) (7e326b7), закрывает #3021.
Не допускать создания предложения WITH с недопустимым WINDOW_SIZE (#3432) (96bfc11).
Не выдавать NPE для нулевых столбцов (#3647) (6969768), закрывает #3617.
Обеспечить работу конфигурации сервера по умолчанию с IP6 (исправляет #3309) (#3310) (92b03ec).
Сообщение об ошибке, если UDAF имеет тип STRUCT без схемы (#3407) (49f456e).
Исправить неработающий тестовый случай преобразования карты (#3694) (b5ea24c).
Исправить NPE при печати записей с пустым значением (MINOR) (#3470) (47313ff).
Исправить проблему с анализом переопределений свойств списка (#3601) (6459fa1).
Исправить тест для окончательного PR KIP-307 (#3402) (d77db50).
Улучшить сообщение об ошибке на запрос или печать на /ksql (#3337) (dae28eb).
Улучшение сообщения об ошибке печати темы. 3356: ошибка в переписанной структуре EXPLAIN.
3412: поддержка UDAFs с разной промежуточной схемой.
3318: возможность разбора пустой схемы STRUCT (MINOR).
3747: некоторые переименования вокруг KsqlFunction и т. д.
3516: стандартизация приведения типов данных в KSQL.
3423: опечатка в примере статического запроса WHERE.
3802: обновление имён процессоров переразбивки для KAFKA-9098.
3488: использование корректного интерфейса Immutable.
3464, 3723, 3486, 3820, 3695, 3474, 3421, 3703, 3595, 3433, 3652, 3314, 3550, 3318, 3747, 3516, 3531, 3412, 3351, 3423, 3802, 3488: без перевода. - 3441: стабилизировать StaticQueryFunctionalTest (#3442) (44ae3a0), закрывает #3441.
COLLECT_LIST
можно применять к таблицам (#3104) (c239785).Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )