Release notes
Содержание раздела
- Версия 6.10 (25.06.2024)
- Версия 6.9 (02.05.2024)
- Версия 6.8.1 (21.02.2024)
- Версия 6.8 (13.02.2024)
- Версия 6.7 (22.11.2023)
- Версия 6.6 (04.10.2023)
- Версия 6.5 (11.08.2023)
- Версия 6.4 (31.05.2023)
- Версия 6.3 (04.04.2023)
- Версия 6.2.1 (03.03.2023)
- Версия 6.2 (14.02.2023)
- Версия 6.1.1 (13.01.2023)
- Версия 6.1 (21.12.2022)
- Версия 6.0 (31.10.2022)
- Известные проблемы
- Версия 5.8 (25.08.2022)
- Известные проблемы
- Версия 5.7 (23.06.2022)
- Версия 5.6.1 (07.06.2022)
- Версия 5.6 (19.05.2022)
- Версия 5.5 (06.04.2022)
- Версия 5.4 (21.02.2022)
- Версия 5.3 (14.01.2022)
- Версия 5.2 (26.10.2021)
- Версия 5.1 (27.08.2021)
- Версия 5.0 (12.08.2021)
- Версия 4.1 (26.07.2021)
- Версия 4.0 (12.07.2021)
- Версия 3.7.3 (30.06.2021)
Даунгрейд на более старую версию Prostore не поддерживается.
Допустимо объединять в кластер только одинаковые версии Prostore.
Версия 6.10 (25.06.2024)
Новая функциональность
- Запросы:
GET_TS
,ALTER TABLE ADD DATASOURCE
.
- Возможность подключения произвольных брокеров Kafka для загрузки и выгрузки данных.
Изменения
- Команда
ERASE_WRITE_OPERATION
расширена опциональным флагом принудительной отмены операции. - Для команды
RECOVER_DATASOURCE
изменен порядок выбора датасорса-источника: теперь приоритетным среди датасорсов подходящего типа считается тот датасорс, который не участвует в retention-правилах восстанавливаемой таблицы. - Добавлена блокировка запуска DDL-запросов во время исполнения
ERASE DELTA
. - Изменена логика сохранения пути к топику Kafka во внешних таблицах загрузки и выгрузки: теперь в путь без указания порта не подставляется номер порта, действующий по умолчанию.
- Добавлена проверка имен топиков, указываемых при создании внешней таблицы.
- Оптимизирована скорость вставки данных
INSERT/UPSERT VALUES
с помощью запроса prepared statement, содержащего большое количество параметров. - Для команды
GET_WRITE_OPERATIONS
изменен алгоритм расчета хеша, возвращаемого в столбцеquery
по запросам вставки и удаления данных. - Из конфигурации удалены неиспользуемые параметры:
ADQM_CONSUMER_GROUP
,ADQM_BROKERS
иADQM_MPPW_LOAD_TYPE
.
Исправления
- Удалено ограничение, из-за которого внешняя таблица загрузки должна была принадлежать той же логической БД, что и целевая таблица, куда загружаются данные.
- Исключено автоматическое пересоздание сущностей в информационной схеме при отсутствии изменений в метаданных сущности.
Дополнительные действия при обновлении
При обновлении с версии ниже 6.7 на версию 6.10 выполните все действия по обновлению, указанные для версии 6.7.
Новая функциональность, изменения и исправления связанных компонентов
Версия 6.9 (02.05.2024)
Новая функциональность
- Запрос
UPDATE
для обновления значений столбцов таблицы. - Указание логического типа Avro
link
при выгрузке значений типаLINK
из СУБД ADB, ADP и ADQM. - Обновление записей standalone- и прокси-таблиц, размещенных в ADP, с помощью функции загрузки данных из Kafka.
- Возврат данных HTTP-методом
query
в Avro-формате.
Изменения
HTTP-метод query
:
- Расширен формат URL:
- список значений параметра
format
расширен новыми значениями для работы с Avro-форматом; - добавлен параметр
compressionLevel
.
- список значений параметра
- Изменено тело запроса:
- добавлены параметры
fetchSize
иfetchTimeoutMs
; - для параметра
maxRowsToRead
изменен порядок обработки нулевого и отрицательных значений, а также добавлено возможное значениеnull
.
- добавлены параметры
JDBC-драйвер:
- JDBC-драйвер расширен поддержкой методов по управлению курсорами СУБД.
- Изменен порядок обработки тайм-аута
Statement.setQueryTimeout
с времени получения полного ответа на время начала получения ответа. - Изменен порядок работы JDBC-драйвера с сервисом исполнения запросов:
- взаимодействие этих компонентов переведено на публичный HTTP API (с закрытого HTTP API) по протоколу HTTP/2 в Avro-формате;
- добавлена возможность выбора формата обмена данными между этими компонентами.
- Добавлена возможность задавать максимальное количество запросов, синхронно исполняемых в одном подключении.
Конфигурация:
- Добавлены параметры:
ZOOKEEPER_KAFKA_CONNECTION_RETRY_COUNT
,ZOOKEEPER_DS_WRITE_OPTIMISTIC_RETRY_COUNT
,KAFKA_JET_RETRY_COUNT
,ADP_MPPW_CONNECTOR_RETRY_COUNT
,ADP_MPPR_CONNECTOR_RETRY_COUNT
,DELTA_ROLLBACK_RETRY_COUNT
,DELTA_ROLLBACK_RETRY_TIMEOUT_MS
,WRITE_OPERATION_ROLLBACK_RETRY_COUNT
,WRITE_OPERATION_ROLLBACK_RETRY_TIMEOUT_MS
.
- Удалены неиспользуемые параметры
ADB_FETCH_SIZE
иADP_FETCH_SIZE
.
Взаимодействие с СУБД:
- Добавлена проверка актуальности FDW-серверов ADP и механизм их пересоздания в случае неактуальности.
- Улучшена информативность ошибок, возникающих при загрузке данных в ADB.
Версии используемого ПО:
- Рекомендуемая к установке операционная система изменена с Centos 7 на Альт 8 СП (8.4).
- Обновлена версия клиента Vert.x Kafka, используемого системой.
Другие изменения:
- Для операций записи в разных таблицах логической БД добавлена гарантия возрастания меток времени в соответствии с порядком, в котором операции были завершены.
- Механизм отката неуспешных операций загрузки данных расширен возможностью отката операции даже при отсутствии внешней таблицы, использовавшейся в запросе.
- Улучшен механизм восстановления соединения с ZooKeeper при выгрузке данных.
- Улучшена стабильность работы компонентов при проблемах с сетевой инфраструктурой.
Исправления
- Исправлена ошибка, возникавшая при использовании функции
TIMESTAMPDIFF
для данных ADQM. - Исправлено некорректное логирование ошибки, возникавшей при обработке retention-правил, как успешного результата.
- Исправлен расчет статистики для асинхронных запросов по HTTP API.
- Исправлен механизм проверки количества загруженных записей из Kafka, из-за которого операция могла считаться успешной при загрузке разного количества записей в целевые датасорсы.
- Исправлен некорректный возврат дубликатов записей при запросе к партиционной таблице с неравномерно разложенными данными.
- Исправлена ошибка, приводившая к невозможности выполнения
RETRY INSERT SELECT
в виде preparedStatement в случаях, если в SELECT-подзапросе было указано ключевое словоDATASOURCE_TYPE
.
Дополнительные действия при обновлении
При обновлении с версии ниже 6.7 на версию 6.9 выполните все действия по обновлению, указанные для версии 6.7.
Новая функциональность, изменения и исправления связанных компонентов
- DTM Tools 1.17.
- Версия ADP, рекомендуемая к установке, изменена с 13.5 на 13.14.
- Обновлена версия клиента Vert.x Kafka для коннекторов: Kafka-Postgres reader, Kafka-Postgres writer, Kafka Jet writer, Kafka-Clickhouse reader и Kafka-Clickhouse writer.
- В конфигурацию коннекторов Kafka-Postgres writer и Kafka Jet writer добавлены параметры
POSTGRES_CONNECT_RETRY_COUNT
иPOSTGRES_CONNECT_RETRY_TIMEOUT_MS
.
Версия 6.8.1 (21.02.2024)
- Исправлена ошибка, возникавшая при исполнении SELECT-запросов с выражением
FOR SYSTEM_TIME STARTED/FINISHED
для standalone-таблиц с помощью preparedStatement (включая параметризованный запрос REST API).
Версия 6.8 (13.02.2024)
Новая функциональность
- Запросы:
CREATE INDEX
,DROP INDEX
,GET_INDEXES
.
- Режим работы кластера с автоматически выбираемым лидером.
INSERT SELECT
ADP → ADG.- Материализованные представления с источником и приемником в одном датасорсе.
- Чтение и выгрузка данных из всех задействованных партиций партиционированной таблицы.
Изменения
Формат запросов:
- Для запроса
CREATE MATERIALIZED VIEW
добавлена возможность не указывать ключевое словоDATASOURCE_TYPE
с датасорсом-источником.
Формат ответов:
- Ответы запросов на загрузку и обновление данных расширены столбцом
rowsAffected
. - Массив в столбце
write_op_finished
ответаGET_DELTA_HOT
расширен атрибутомrowsAffected
. - Ответ SELECT-запроса с ключевым словом
ESTIMATE_ONLY
расширен и теперь может содержать несколько строк — по количеству задействованных датасорсов.
HTTP API:
- Массив
delta_hot.writeOperationsFinished.cnList
в ответах методов, возвращающих информацию об открытой дельте, расширен свойствомrowsAffected
. - В ответы методов, возвращающих информацию о сущностях, добавлен массив
materializedCnList
.
Сигнальный топик Kafka:
- Формат даты и времени в поле
datetime
ключа сообщения расширен и теперь может содержать от 0 до 6 знаков долей секунды. - Для событий
DATAMART_SCHEMA_CHANGED
в сигнальном топике Kafka расширен список полей и добавлена поддержка внешних таблиц. - Для событий
WRITE_OK
в сигнальном топике Kafka добавлена регистрация количества затронутых строк таблицы в полеrowsAffected
.
Конфигурация:
- Добавлен параметр
KAFKA_STATUS_EVENT_EXTERNAL_DDL_ENABLED
. - Добавлены секции параметров
pnode
иwebclient
. - Удалены параметры
ADG_WEB_CLIENT_MAX_POOL_SIZE
иADQM_WEB_CLIENT_MAX_POOL_SIZE
.
ROLLBACK DELTA
:
- Для
ROLLBACK DELTA
добавлена возможность откатывать дельту при наличии незавершенных операций записи, начатых до открытой дельты. - Для
ROLLBACK DELTA
добавлена блокировка новых операций записи во время отката дельты.
Другие изменения:
- Изменен порядок запуска некоторых процессов в кластере: теперь в режиме работы кластера, действующем по умолчанию, синхронизацией материализованных представлений и расчетом значения
ROWS_COUNT
в статистике занимается только нода-лидер. - Для команд
RESUME_WRITE_OPERATION
,ROLLBACK CRASHED_WRITE_OPERATIONS
,ERASE_WRITE_OPERATION
иROLLBACK DELTA
добавлена возможность прерывать выполняемые операции загрузки данных в СУБД ADB. - Для команд
ALTER TABLE ...
добавлена возможность изменять логические таблицы при наличии в них завершенных операций записи, выполненных в открытой дельте. - Команды
ENABLE_DATASOURCE
,DISABLE_DATASOURCE
иDROP DATABASE
расширены механизмом, повторяющим попытку обновления динамической конфигурации в ZooKeeper в случае внутренней ошибки. - Команда
ERASE DELTA
расширена механизмом, перезапускающим синхронизацию материализованных представлений, которые принадлежат целевой логической БД, но построены на данных других логических БД, начиная с нулевой дельты. - Лог-сообщения по обработке данных согласно retention-правилам расширены идентификаторами незавершенных операций записи, препятствующих запуску retention-правил.
- Для функции, вычисляющей контрольную сумму в командах
CHECK_DATA
,CHECK_SUM
иCHECK_SUM_SNAPSHOT
, удалено свойствоLEAKPROOF
. - Изменен текст ошибки для запросов вида
<таблица,_не_существующая_в_датасорсе_исполнения_запроса> FOR SYSTEM_TIME AS OF DELTA_NUM <номер_несуществующей_дельты>
: теперь возвращается текстDelta does not exist
вместоQueried entity is missing for the specified DATASOURCE_TYPE...
.
Исправления
- Исправлена ошибка
CHECK_VERSIONS
, возникавшая при сетевой недоступности компонента. - Исправлена ошибка
TRUNCATE ACTUAL
, приводившая к пересчету значения параметра статистикиROWS_COUNT
вместо его обнуления. - Исправлена ошибка, возникавшая при вставке данных из логической таблицы в standalone-таблицу, когда standalone-таблица и данные логической таблицы находились в разных физических схемах.
- Исправлена неконсистентность данных, которая возникала в материализованных представлениях, построенных на данных нескольких логических БД, в случае закрытия дельт с явной установкой времени в нескольких связанных логических БД.
- Исключена вероятность частичной видимости изменений в последней закрытой дельте.
Дополнительные действия при обновлении
При обновлении с версии ниже 6.7 на версию 6.8 выполните все действия по обновлению, указанные для версии 6.7.
Новая функциональность, изменения и исправления связанных компонентов
- DTM Tools 1.16.
- Версия ADB обновлена до 6.26.0.
- Обновлены версии коннекторов: Kafka-Postgres reader, Kafka-Postgres writer и Kafka Jet writer.
Версия 6.7 (22.11.2023)
Новая функциональность
- Запросы:
GET_CN
,ENABLE_STATISTICS_ROWS_COUNT
,DISABLE_STATISTICS_ROWS_COUNT
.
- Выражения
FOR SYSTEM_TIME STARTED TS (datetime1, datetime2)
иFOR SYSTEM_TIME FINISHED TS (datetime1, datetime2)
в SELECT-запросах. - Типы событий
WRITE_OK
иWRITE_CANCEL
в сигнальном топике Kafka. - Доступность записей, добавленных и удаленных вне дельты, сразу после завершения операций записи.
- Оптимизированный инкрементальный расчет
ROWS_COUNT
иROWS_COUNT_DELTA
в статистике.
Изменения
Формат ответов:
- Из ответов
GET_DELTA_*
иCOMMIT DELTA
удален столбецcn_to
. - Ответы запросов на загрузку и обновление данных расширены столбцом
ts
. - Из ответа
CHECK_VERSIONS
удалена информация о коннекторе Kafka-Greenplum reader (PXF).
HTTP API:
- Добавлены поля
id
,lastTs
,lastTslogPage
,statisticsRowsCountEnabled
иhistoryInTslogOnly
в ответ/datamarts/{datamart}/entities/{entity}
; - Поле
writeOperationsFinished.cnList
в ответах/datamarts/{datamart}/deltas/latest
и/datamarts/{datamart}/deltas/latest_hot
преобразовано из списка значений в список объектов. - Удалено поле
cnTo
из ответов методов по дельтам.
Ограничения:
- Удалено ограничение в
COMMIT DELTA IMMEDIATE
на отсутствие незавершенных операций записи, начатых до открытия дельты. - Добавлена возможность запуска системы при недоступности некоторых или всех СУБД хранилища.
- Добавлено ограничение на
RECOVER_DATASOURCE
при наличии открытой дельты или незавершенных операций записи. - Добавлено ограничение на
UPSERT VALUES
с внешней writable-таблицей без первичного ключа.
Конфигурация:
- Добавлена секция параметров
tslog
. - Добавлен параметр
KAFKA_STATUS_EVENT_WRITE_OPERATIONS_ENABLED
. - Добавлен параметр
CORE_STATISTICS_DATA_COUNT_PERIOD_MS
. - Значение параметра
ADB_MPPW_USE_ADVANCED_CONNECTOR
изменено наtrue
.
Расширение формата метки времени в запросах:
CHECK_SUM_SNAPSHOT
,TRUNCATE HISTORY
,TRUNCATE ACTUAL
,COMMIT DELTA
,GET_DELTA_BY_DATETIME
.
Изменения в работе с ADB:
- Рекомендуемая версия ADB изменена с 6.17.5 на 6.25.1.
- Изменен коннектор, используемый для загрузки данных в ADB.
- Изменен шаблон имен консьюмер-групп, которые формирует улучшенный PXF-коннектор при загрузке данных в ADB.
- Изменен порядок выбора первого сообщения при загрузке данных в ADB с помощью новой внешней таблицы загрузки.
Другие изменения:
- Список зарезервированных слов расширен словом
ts
. - Изменен механизм отбора записей в запросах:
CHECK_SUM_SNAPSHOT
с меткой времени,TRUNCATE HISTORY
с меткой времени,TRUNCATE ACTUAL
.
Исправления
- Исправлена проблема загрузки данных, которая возникала при использовании одинаковых имен окружений в нескольких СУБД.
Известные проблемы
- Возможна нецелостная синхронизация материализованных представлений, если дельты закрываются с явной установкой даты и времени дельты в прошлом или будущем.
- Запросы
SELECT... FOR SYSTEM_TIME...
к данным материализованных представлений, синхронизированным до версии 6.7, возвращают результаты, смещенные примерно на дельту назад. - Недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG.
Дополнительные действия при обновлении
- До обновления на версию 6.7 закройте дельты и дождитесь синхронизации материализованных представлений во всех логических базах данных окружения.
- Если планируется закрывать дельты командой
COMMIT DELTA IMMEDIATE
, после обновления на версию 6.7 в каждой логической таблице сделайте пустую операцию записи (например, запросомINSERT INTO tbl SELECT * FROM tbl WHERE 1=0
).
Новая функциональность, изменения и исправления связанных компонентов
- DTM Tools 1.16.
- Обновлены версии PXF-коннекторов: Kafka-Greenplum reader, Kafka-Greenplum writer, Greenplum-Clickhouse и Greenplum-Tarantool.
Версия 6.6 (04.10.2023)
Новая функциональность
- Асинхронные запросы по HTTP.
- Прокси-таблицы.
- Запрос
CREATE PROXY TABLE
. - Удаление записей из всех задействованных партиций запросом
DELETE
к партиционированной таблице. INSERT SELECT FROM external_table
:- загрузка данных с применением
WHERE
,LIMIT
и/илиOFFSET
; - ключевое слово
RETRY
.
- загрузка данных с применением
- Метод
setMaxRows
в JDBC-интерфейсеStatement
.
Изменения
- Синтаксис запросов:
- Запрос
CREATE TABLE
расширен ключевым словомOPTIONS
. - Запросы
GET_DELTA_*
расширены параметром, задающим имя логической базы данных. - Запрос
RECOVER_DATASOURCE
расширен параметром, задающим количество восстанавливаемых операций записи за один проход.
- Запрос
- HTTP API:
- Добавлены методы управления асинхронными операциями.
- Тело запроса
query
расширено опциональным флагомasync
. - Список кодов ответа расширен кодом 404.
- Конфигурация:
- Значение параметра конфигурации
ADB_MPPW_FDW_TIMEOUT_MS
увеличено до 1200. - Удалена неиспользуемая секция параметров
core:plugins:category:autoSelect
.
- Значение параметра конфигурации
- Компоненты:
- Функции сервиса мониторинга статусов Kafka (
status monitor
) включены в состав сервиса исполнения запросов (query execution core
). - Оптимизирована загрузка данных в партиции с помощью коннектора
Kafka Jet writer
.
- Функции сервиса мониторинга статусов Kafka (
- Добавлено ограничение на одновременную запись данных в партиционированную таблицу и ее партиции.
- Отключен неиспользуемый механизм определения подкатегории запроса на основе количества задействованных узлов.
- Системное представление
information_schema.tables
расширено столбцомdefinition
. - Набор возможных типов физических таблиц расширен новым типом — таблицей, соответствующей прокси-таблице.
- В список зарезервированных слов добавлены
proxy
иsys_<any_string>
.
Исправления
- Запуск без брокера сообщений Kafka.
- Переподключение к ZooKeeper при потере соединения.
- Обращение к сущностям информационной схемы с именами, начинающимися на
SYS
.
Известные проблемы
- В версиях 6.6 и ниже недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG.
Новая функциональность, изменения и исправления связанных компонентов
Версия 6.5 (11.08.2023)
Новая функциональность
- Восстановление датасорсов с помощью запросов:
DISABLE_DATASOURCE
,ENABLE_DATASOURCE
,RECOVER_DATASOURCE
.
- Материализованные представления на основе партиционированных таблиц.
- Загрузка данных из Kafka с помощью внешних readable-таблиц.
- Поддержка кластера коннекторов
Kafka-Postgres reader
иKafka-Postgres writer
.
Изменения
Конфигурация:
- Увеличено значение параметра
ADB_MPPW_DEFAULT_MESSAGE_LIMIT
. - Добавлены секции параметров
core.jet
,core.kafka.consumer
иspringdoc
. - Для параметров загрузки и выгрузки из ADP добавлена поддержка списка из нескольких коннекторов.
HTTP API:
- Запрос метода
/datamarts[/{datamart}]/query
расширен опциональным параметромmaxRowsToRead
. - Ответ метода
/datamarts/{datamart}/entities/{entity}
расширен опциональным параметромlastCn
. - Ответ метода
/versions
расширен строкой с версией коннектора Kafka Jet writer.
Другие изменения:
- Запрос
CREATE READABLE EXTERNAL TABLE
расширен ключевым словомFORMAT
и параметрами ключевого словаOPTIONS
. - Запрос
INSERT SELECT FROM external_table
расширен поддержкой внешних readable-таблиц. - Ответ
COMMIT DELTA
расширен полямиdelta_num
,cn_from
иcn_to
. - Ответ
CHECK_VERSIONS
расширен строкой с версией коннектора Kafka Jet writer. - Для СУБД ADB и ADP изменен формат имен индексов первичных ключей.
- Отмена операции загрузки данных расширена проверкой на остановку загрузки из Kafka.
Исправления
- Конфликт номеров операций записи при одновременном закрытии дельты и выполнении операции вне дельты.
- Ошибка в SELECT-запросах с
WITH
в подзапросе. - Ошибка в ADQM при выполнении
ALTER TABLE RENAME
. - Переименование индексов физических таблиц в ADB и ADP при выполнении
ALTER TABLE RENAME
.
Известные проблемы
- В версиях 6.5 и ниже недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG.
Новая функциональность, изменения и исправления связанных компонентов
Версия 6.4 (31.05.2023)
Новая функциональность
- Разграничение доступа по ролям.
- Партиционирование данных в СУБД ADP.
- Логирование IP-адресов отправителей запросов.
Изменения
- В конфигурацию добавлен параметр
CORE_DEFAULT_ROLES
.
Известные проблемы
- В версиях 6.4 и ниже недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG.
Версия 6.3 (04.04.2023)
Новая функциональность
- Retention-правила.
- Аутентификация по JWT.
- Материализованные представления ADP -> ADG.
- HTTP-метод
/swagger-ui
. - Запросы:
CHECK_JWKS
,ALTER TABLE ADD RETENTION
,ALTER TABLE DROP RETENTION
.
Изменения
- Синтаксис
CREATE TABLE
расширен ключевым словомRETENTION
. - Ответ
GET_ENTITY_DDL
расширен информацией о retention-правилах. - В запросы HTTP API добавлен заголовок
Authorization
. - В ответах HTTP API изменен формат метаданных логических сущностей.
- Физическая схема данных расширена таблицами
<table_name>_history_<source>
. - JSON-логи расширены идентификаторами владельцев JWT.
- Для ADB и ADP добавлен индекс на столбец
sys_to
физических таблиц*_actual
. - Для ADB изменен алгоритм обработки запросов с Round Robin на очередь.
Конфигурация:
- добавлена секция
datacooling
; - добавлен параметр
AUTH_JWKS_URI
; - изменено значение параметра
ZOOKEEPER_DS_OPTIMISTIC_RETRY_COUNT
: 5 -> 20.
Исправления
ALTER TABLE ADD/RENAME/DROP COLUMN
иALTER TABLE RENAME
с ключевым словомIF EXISTS
/IF NOT EXISTS
.
Известные проблемы
- В версиях 6.3 и ниже недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG.
Особенности миграции
- Перед миграцией на версию 6.3 необходимо выключить все ноды Prostore.
Версия 6.2.1 (03.03.2023)
- Исправлена ошибка при старте системы, связанная с JSON-логированием.
Версия 6.2 (14.02.2023)
Новая функциональность
COMMIT DELTA IMMEDIATE
.WITH
в SELECT-запросах и подзапросах.- SELECT-запросы и подзапросы без
FROM
для ADB, ADP и ADQM. - Материализованные представления ADP_n -> ADP_n и ADP_n -> ADP_m.
INSERT SELECT
ADP_n -> ADP_m.- Поддержка внешних таблиц в запросе
GET_ENTITY_DDL
и API-методе/datamarts/{datamart}/entities/{entity}/ddl
. - Ключевое слово
IF NOT EXISTS
в запросах:CREATE DATABASE
,CREATE TABLE
,CREATE MATERIALIZED VIEW
,CREATE DOWNLOAD EXTERNAL TABLE
,CREATE UPLOAD EXTERNAL TABLE
,CREATE WRITABLE EXTERNAL TABLE
,CREATE READABLE EXTERNAL TABLE
.
- Ключевое слово
IF EXISTS
в запросах:DROP DATABASE
,ALTER VIEW
,DROP VIEW
,DROP DOWNLOAD EXTERNAL TABLE
,DROP UPLOAD EXTERNAL TABLE
,DROP WRITABLE EXTERNAL TABLE
,DROP READABLE EXTERNAL TABLE
.
INSERT INTO download_external_table
как подготовленный запрос (prepared statement).
Изменения
- Для
CREATE READABLE/WRITABLE EXTERNAL TABLE
ключевые словаPRIMARY KEY
иDISTRIBUTED BY
стали опциональными при размещении standalone-таблиц в ADB или ADP. - В ответах
GET_CHANGES
иGET_ENTITY_DDL
унифицированы имена датасорсов. - В SELECT-запросах изменен порядок следования
OFFSET
иFETCH
. - Добавлен параметр конфигурации
ZOOKEEPER_DS_MAX_SEQUENCE_SIZE
. - Для ADB и ADP добавлена поддержка аутентификации SCRAM-SHA-256.
- В логи добавлен текст ошибки ADB.
Исправления
- Исправлена ошибка, приводившая в некоторых случаях к утечке памяти при загрузке данных в ADP.
Версия 6.1.1 (13.01.2023)
- Исправлена ошибка, возникавшая при загрузке данных в ADB.
Версия 6.1 (21.12.2022)
Новая функциональность
- HTTP API.
INSERT SELECT
ADB -> ADP.TRUNCATE ACTUAL
иERASE DELTA
для ADG.
Изменения
- В ответ
CHECK_MATERIALIZED_VIEW
добавлен столбецis_sync_lock_exists
; из ответа удален столбецsync_period
. - В ответ
CHECK_VERSIONS
добавлена строка с версией HTTP API. - В ответы
GET_ENTITY_DDL
,CHECK_MATERIALIZED_VIEW
,GET_CHANGES
иGET_WRITE_OPERATIONS
добавлена поддержка переносов строк. - В ответе
SELECT... ESTIMATE_ONLY
в текст обогащенного запроса добавлены символы\n
. - Для
ROLLBACK DELTA
удалены ограничение на отмену повторных изменений в ADG и необходимость повторения запроса. - Для
GET_ENTITY_STATISTICS
оптимизирован алгоритм расчетаROWS_COUNT
иROWS_COUNT_DELTA
, и хранение этих значений перенесено в Zookeeper. - Для
SELECT
,INSERT SELECT
иDELETE
удалено ограничение на символы переноса в условииWHERE
. - Для
CHECK_SUM
удалено ограничение на количество столбцов в запросе. - Для
TRUNCATE ACTUAL
иERASE DELTA
снято ограничение на удаление изменений, внесенных отдельными операциями записи. - Добавлена поддержка параметра конфигурации
ADG_CONSUMER_GROUP
. - Добавлены параметры конфигурации
ZOOKEEPER_DS_CONNECTION_RETRY_COUNT
иZOOKEEPER_DS_OPTIMISTIC_RETRY_COUNT
. - Для функции
TIMESTAMPDIFF
изменен расчет разницы между указанными метками времени. - Изменена обработка escape-последовательностей в запросах.
Логи:
- Для JSON-логов добавлена поддержка идентификаторов HTTP-запросов.
- Логи расширены информацией о задействованных датасорсах.
- Из JDBC-драйвера удален Logback.xml.
Исправления
- Потеря соединения с Zookeeper.
GET_ENTITY_STATISTICS
для логических таблиц, созданных с указаниемLOGICAL_ONLY
.- Разница в работе функции
TIMESTAMP_DIFF
для разных СУБД. - Ошибка инициализации ADB.
ROLLBACK DELTA
для дельты, открытой после отдельной операции записи.- Сравнение в условии
WHERE
со строковой константой, содержащей символы новой строки. - Формат даты, времени и метки в ответе
GET_WRITE_OPERATIONS
.
Версия 6.0 (31.10.2022)
Новая функциональность
- Поддержка нескольких СУБД одного типа.
- Загрузка и обновление данных без открытия дельты.
- Запросы:
ALTER TABLE RENAME
,ALTER TABLE ADD COLUMN
,ALTER TABLE RENAME COLUMN
,ALTER TABLE DROP COLUMN
.
- Функции
TIMESTAMPADD
иTIMESTAMPDIFF
. - Выражения для логических таблиц:
FOR SYSTEM_TIME AS OF CN sys_cn
,FOR SYSTEM_TIME STARTED CN (sys_cn1, sys_cn2)
,FOR SYSTEM_TIME FINISHED CN (sys_cn1, sys_cn2)
.
- JVM-метрики.
- Расчет контрольной суммы в открытой дельте с помощью
CHECK_SUM
иCHECK_SUM_SNAPSHOT
.
Изменения
- Для
ERASE DELTA
добавлено ограничение, что перед дельтой не должно быть отдельных операций записи. - Для
ERASE DELTA
удалена поддержка метки времени. - Для
ROLLBACK DELTA
добавлено ограничение на отмену повторных изменений операции в ADG. - Для
TRUNCATE ACTUAL
удалено ограничение на логические таблицы, связанные с несинхронизированными материализованными представлениями. - Для DDL- и SELECT-запросов унифицированы значения
DATASOURCE_TYPE
. - В ответ
CHECK_VERSIONS
добавлены имена датасорсов. - В ответы запросов загрузки и обновления данных добавлен номер операции записи.
- В ответе
SELECT... ESTIMATE_ONLY
переименован параметрplugin
->datasource
. - В ответе
CHECK_DATA
изменены формулировки про расхождения в данных. - Для
CHECK_DATA
изменена проверка без столбцов. - Для ADB и ADP расширена поддержка функций
CURRENT_DATE
,CURRENT_TIME
иCURRENT_TIMESTAMP
.
Конфигурация:
- добавлен параметр
PROMETHEUS_ENABLED
; - добавлены параметры
name
иenv
в секциюdatasource
; - удален параметр
ADB_WITH_HISTORY_TABLE
; - удалена секция
circuitbreaker
для ADG; - заменены секции
tarantool
иdb
->datasource
для ADG; - секция
datasource
превращена в массив элементов.
Логические типы данных:
- для типа
BIGINT
добавлен алиасINT64
, - тип
INT32
переименован вINTEGER
и для него добавлен алиасINT32
, - тип
INT
больше не используется.
Исправления
RESET_STATISTICS
без параметров.- Количество запросов чтения в
GET_ENTITY_STATISTICS
для логических представлений на основеCOUNT
. - SELECT-запросы без алиасов логических представлений.
RETRY DELETE
для ADG.- Значения
sys_close_date
в ADQM для дат в далеком будущем. - Обновленные записи в материализованных представлениях.
- Признак nullable-столбца, возвращаемый по JDBC.
Известные проблемы
- В условии
WHERE
запросовSELECT
,INSERT SELECT
иDELETE
недоступно сравнение со строковыми константами, содержащими переносы строки. - В запросе
CHECK_SUM
недоступен расчет контрольной суммы для более чем 50 столбцов.
Версия 5.8 (25.08.2022)
Новая функциональность
- Запросы
RESET_STATISTICS
иSYNC
. - Загружаемый тип данных
uuid
.
Изменения
- Для
ROLLBACK DELTA
добавлено ограничение на параллельное выполнение запросов. - Для
CHECK_SUM
добавлено ограничение на расчет контрольной суммы в открытой дельте. - Для SELECT-запросов удалена поддержка
COLLATE
. - Добавлено ограничение на символы в алиасах сущностей и столбцов.
- В ответ
GET_ENTITY_STATISTICS
добавлены параметрыROWS_COUNT
иROWS_COUNT_DELTA
. - Добавлены параметры конфигурации:
CORE_STATISTICS_DATA_COUNT_ENABLED
,TARANTOOL_QUERY_REST_ENDPOINT
иDTM_DELTA_WATCHER_POOL_SIZE
Для ADG добавлена поддержка:
INSERT VALUES
,INSERT SELECT
,DELETE
иCHECK_SUM_SNAPSHOT
;CHECK_SUM
для логических представлений на основе на данных ADG;- readable- и writable-таблиц без поля
bucket_id
.
Для ADG удалена поддержка:
NATURAL JOIN
,RIGHT JOIN
,LEFT JOIN
,FULL JOIN
иCROSS JOIN
;LIMIT
иOFFSET
;- функций и арифметических операторов.
Исправления
- Приведение к JDBC-типу в SELECT-запросах к внешним readable-таблицам.
- Кэш материализованного представления.
- Верхний регистр в значении параметра
LOCATION
внешней readable-таблицы. - Ответ
CHECK_VERSIONS
при сбое компонента.
Известные проблемы
- Материализованные представления на основе одной логической таблицы без группировки и агрегации данных доступны, только если таблица и представление расположены в одной логической БД.
Версия 5.7 (23.06.2022)
Новая функциональность
- Запросы:
TRUNCATE ACTUAL
,ERASE DELTA
,GET_ENTITY_STATISTICS
.
- Материализованные представления ADB -> ADP.
- Очередь DDL-запросов.
Изменения
- Журнал расширен отмененными DDL-операциями.
- Синтаксис
GET_CHANGES
расширен флагом для вывода отмененных операций. - Для SELECT-запросов изменен порядок выбора записей с
FOR SYSTEM_TIME
.
Конфигурация:
- для параметра
DTM_METRICS_SCOPE
удалено значениеrequests
; - секция
metrics
заменена на секциюstatistics
; - добавлен параметр
ADP_POOL_REQUEST_TIMEOUT
.
Исправления
- Выбор устаревших данных.
- Переключение между нодами ADQM при выполнении одной операции записи.
- Валидация
LOCATION
вCREATE READABLE EXTERNAL TABLE
иCREATE WRITABLE EXTERNAL TABLE
. - Синхронизация материализованных представлений с логическими БД, чьи дельты закрыты с будущими датой и временем.
- Ошибка
ERASE_CHANGE_OPERATION is not an EDDL statement
вERASE_CHANGE_OPERATION
. - Приведение BOOLEAN-значения к JDBC-типу в запросах
INSERT INTO
для ADQM. - Блокировка DDL-операций после выполнения
DROP TABLE
с указанием несуществующей СУБД. - SELECT-запросы с
FOR SYSTEM_TIME STARTED IN
иFOR SYSTEM_TIME FINISHED IN
к standalone-таблицам.
Версия 5.6.1 (07.06.2022)
- Добавлен параметр конфигурации
CORE_DDL_QUEUE_ENABLED
.
Версия 5.6 (19.05.2022)
Новая функциональность
- Материализованные представления на основе таблиц из разных логических БД.
- Ключевое слово
LISTAGG
в SELECT-запросах к ADB и ADP. - Расчет контрольной суммы для логических представлений с помощью
CHECK_SUM
иCHECK_SUM_SNAPSHOT
.
Изменения
- Добавлен параметр конфигурации
ADB_MPPR_BUFFER_SIZE
. - Синтаксис
CHECK_SUM_SNAPSHOT
расширен меткой времени. - Для
DELETE
добавлена поддержка подзапросов и JOIN-соединений в условииWHERE
. - Для SELECT-запросов изменен порядок выбора записей с
FOR SYSTEM_TIME STARTED/FINISHED IN
. - Добавлено ограничение на имена столбцов логических таблиц и материализованных представлений, начинающиеся со служебных слов.
Исправления
INSERT SELECT
с подзапросом, содержащимCURRENT_DATE
,CURRENT_TIME
илиCURRENT_TIMESTAMP
иDATASOURCE_TYPE = 'ADB'
.FOR SYSTEM_TIME
для логических представлений.DELETE
в ADQM.DELETE
с алиасом в подзапросе.ERASE_WRITE_OPERATION
для отменяемых операций загрузки данных.- Дубликаты записей при выполнении
INSERT VALUES
в ADQM. - Материализованные представления, связанные с логическими таблицами в других логических БД.
Известные проблемы
- Есть небольшая вероятность кэширования шаблона запроса предыдущей дельты.
Версия 5.5 (06.04.2022)
Новая функциональность
- Поддержка standalone-таблиц.
- Запросы:
CREATE WRITABLE EXTERNAL TABLE
,DROP WRITABLE EXTERNAL TABLE
,CREATE READABLE EXTERNAL TABLE
,DROP READABLE EXTERNAL TABLE
,ERASE_CHANGE_OPERATION
,ERASE_WRITE_OPERATION
.
- Ключевое слово
RETRY
для перезапуска операций по обновлению данных.
Изменения
- Синтаксис
CREATE UPLOAD EXTERNAL TABLE
расширен ключевым словомOPTIONS
. - Добавлены параметры конфигурации
TARANTOOL_DB_SYNC_BUFFER_SIZE
иADQM_BUFFER_SIZE
.
Исправления
DROP TABLE
с указанием СУБД.- Формат поля
changeDateTime
в сигнальном топике Kafka. - Порядок столбцов ключей шардирования в
INFORMATION_SCHEMA
. DROP TABLE
иDROP MATERIALIZED VIEW
для сущностей неподходящих типов.
Версия 5.4 (21.02.2022)
Новая функциональность
- Запросы
UPSERT VALUES
иCHECK_SUM_SNAPSHOT
.
Изменения
- Изменено начало строки подключения:
jdbc:adtm
->jdbc:prostore
. - Переименованы запросы:
UPSERT VALUES
->INSERT VALUES
,UPSERT SELECT
->INSERT SELECT
. - Добавлено ограничение на символы в именах логических сущностей и их столбцов.
Конфигурация:
- добавлен параметр
KAFKA_STATUS_EVENT_TOPIC
; - значение параметра
ADQM_DB_NAME
изменено наdefault
, параметраADQM_CLUSTER
— наdefault_cluster
; - значения параметра
ADQM_SHARDING_EXPR
изменены:cityHash64
->CITY_HASH_64
,intAdd
->INT_ADD
; - изменено начало путей во всех вхождениях:
io.arenadata
->ru.datamart
.
Исправления
- Приведение
INT
-BOOLEAN
в JOIN-соединениях запросаCREATE MATERIALIZED VIEW
. - Возможность создания нескольких дельт в одну секунду.
GET_ENTITY_DDL
для системных представленийINFORMATION_SCHEMA
.- Агрегация данных с помощью
COUNT
в запросах на выгрузку из ADQM. - Тип данных
UUID
в условии типаWHERE uuid_col IN ('uuid_value')
. - Обработка некорректного имени поля в топике Kafka.
- Агрегационные запросы к логическим таблицам, размещенным в ADQM и имеющим первичный ключ типа
UUID
. - Ошибка при определении категории и подкатегории SELECT-запроса.
- JDBC-сериализация значений
NULL
. - Ответ
GET_CHANGES
при отсутствии журнала.
Версия 5.3 (14.01.2022)
Новая функциональность
- Материализованные представления ADB -> ADQM.
UPSERT SELECT
ADB -> ADQM.- Запросы:
CHECK_MATERIALIZED_VIEW
,DENY_CHANGES
,ALLOW_CHANGES
,GET_CHANGES
,GET_ENTITY_DDL
.
- Журнал DDL-операций.
- Выбор оптимальной СУБД хранилища для выгрузки данных.
- Перезапуск незавершенных операций по обновлению данных.
Изменения
- Для ключей шардирования логических таблиц удалено требование на столбцы целочисленного типа.
- Системное представление
tables
расширено новым типом сущности —MATERIALIZED VIEW
.
Конфигурация:
- добавлены параметры
ADQM_SHARDING_EXPR
иADB_MPPW_USE_ADVANCED_CONNECTOR
; - удален параметр
EDML_DATASOURCE
; - изменен путь до параметра
ADB_WITH_HISTORY_TABLE
:adb:mppw:with-history-table
->adb:with-history-table
; - из пути до параметров
ADG_MAX_MSG_PER_PARTITION
иADG_CB_FUNC_IDLE
удалена секцияkafka
.
Исправления
- SELECT-запросы:
- обработка
IN
; - сравнение с константами в условии
WHERE
; - разница в количестве параметров между запросом и шаблоном;
LIMIT
в подзапросах;- дублирование алиаса сущности в подзапросе;
- запрос с ключевым словом
ORDER BY
, указанным послеDATASOURCE_TYPE
.
- обработка
- Подготовленный запрос (prepared statement) с динамическими и статическими типами данных.
- Дублирование параметров в
CONFIG_SHOW
. - Создание логического представления с
DATASOURCE_TYPE
. - Пересоздание материализованного представления с тем же именем.
- Ошибка инициализации при наличии в хранилище только СУБД ADP.
- Ответ
GET_WRITE_OPERATIONS
дляUPSERT VALUES
. UPSERT SELECT
без списка столбцов целевой таблицы.- ADQM:
- первичные ключи с типом
DATE
; - записи открытой дельты в материализованных представлениях;
- исторические записи после
UPSERT VALUES
; RESUME_WRITE_OPERATIONS
иCHECK_TABLE
.
- первичные ключи с типом
Версия 5.2 (26.10.2021)
Новая функциональность
- Запросы:
UPSERT VALUES
,UPSERT SELECT
,DELETE
,CONFIG_SHOW
,GET_WRITE_OPERATIONS
,RESUME_WRITE_OPERATION
.
- Ключевое слово
COLLATE
в SELECT-запросах к ADG. - Выгрузка данных из материализованных представлений.
- Маршрутизация на основе набора целевых узлов кластера.
Изменения
- Для
INFORMATION_SCHEMA
добавлено ограничение на DDL-запросы. - Для
ROLLBACK DELTA
изменен перечень отменяемых операций.
Конфигурация:
- добавлены параметры
AUTO_RESTORE_STATE
,ADB_MAX_RECONNECTIONS
,ADB_QUERIES_BY_CONNECT_LIMIT
иADB_RECONNECTION_INTERVAL
; - добавлена секция
autoSelect
; - удален параметр
CORE_TIME_ZONE
; - изменен путь к параметру
DTM_METRICS_PORT
:management.server.port
->server.port
; - изменен путь к параметру
DTM_CORE_METRICS_ENABLED
:core.metrics.isEnabled
->core.metrics.еnabled
.
Исправления
- Микросекунды в условии
WHERE
в SELECT-запросах. RIGHT JOIN
со значениямиNULL
в запросах на выгрузку данных.- Кириллица в условии
WHERE
запросовCREATE VIEW
/ALTER VIEW
.
Версия 5.1 (27.08.2021)
Новая функциональность
- Ключевое слово
ESTIMATE_ONLY
в SELECT-запросах. - Ключевое слово
LOGICAL_ONLY
в запросах на создание и удаление логической БД, логической таблицы и материализованного представления.
Изменения
- Для
CHECK_DATA
иCHECK_SUM
добавлен коэффициент нормализации и изменен расчет контрольных сумм. - Добавлен параметр конфигурации
DTM_VERTX_BLOCKING_STACKTRACE_TIME
.
Исправления
- Имена и размер логических типов данных
CHAR
иUUID
вINFORMATION_SCHEMA
. - Выгрузка данных с
LIMIT
. - Обогащение запроса на чтение данных для ADQM.
JOIN
в запросах на чтение данных для ADQM.- Запрос
CONFIG_STORAGE_ADD
. - Календарь в JDBC-методах
getDate
,getTime
иgetTimestamp
. - Обновление столбца
table_datasource_type
в системном представленииINFORMATION_SCHEMA.TABLES
. - Назначение категории «Другой запрос» (Undefined) для SELECT-запросов.
Версия 5.0 (12.08.2021)
Новая функциональность
- Поддержка СУБД хранилища нового типа — ADP (на основе PostgreSQL).
- Выгрузка данных из указанной СУБД хранилища.
- Расчет контрольной суммы для материализованного представления с помощью
CHECK_SUM
.
Изменения
- В системное представление
tables
добавлен столбецtable_datasource_type
.
Конфигурация:
- добавлены параметры для управления СУБД ADP, а также
ADB_PREPARED_CACHE_MAX_SIZE
,ADB_PREPARED_CACHE_SQL_LIMIT
,ADB_PREPARED_CACHE
иDTM_LOGGING_LEVEL
; - значения параметров расширены значением
ADP
:CORE_PLUGINS_ACTIVE
,DTM_CORE_PLUGINS_RELATIONAL
,DTM_CORE_PLUGINS_ANALYTICAL
,DTM_CORE_PLUGINS_DICTIONARY
,DTM_CORE_PLUGINS_UNDEFINED
; - IP-адреса заменены на
localhost
.
Исправления
- Ключевое слово
IN
с количеством элементов более 20.
Версия 4.1 (26.07.2021)
Новая функциональность
- Ключевые слова
OFFSET
иFETCH NEXT <N> ROWS ONLY
в SELECT-запросах.
Изменения
- Для
ROLLBACK DELTA
расширен список отменяемых операций.
Конфигурация:
- значение параметра
ADB_EXECUTORS_COUNT
изменено с 20 на 3, параметраADB_MAX_POOL_SIZE
— с 5 на 3; - добавлен параметр
DELTA_ROLLBACK_STATUS_CALLS_MS
.
Версия 4.0 (12.07.2021)
Новая функциональность
- Материализованные представления ADB -> ADG.
Изменения
- Добавлены параметры конфигурации:
MATERIALIZED_VIEWS_SYNC_PERIOD_MS
,MATERIALIZED_VIEWS_RETRY_COUNT
иMATERIALIZED_VIEWS_RETRY_COUNT
.
Исправления
- Ошибка
FDW server already exists
при загрузке данных. - Метаданные, возвращаемые для логических типов
LINK
иUUID
. - SELECT-запросы с
COUNT
иLIMIT
/FETCH NEXT N ROWS ONLY
. - Загрузка данных в логические таблицы, размещенные в ADQM и имеющие первичный ключ типа
INT32
.
Версия 3.7.3 (30.06.2021)
Новая функциональность
- Запрос
ROLLBACK CRASHED_WRITE_OPERATIONS
.
Изменения
Конфигурация:
- добавлены параметры:
DTM_CORE_WORKER_POOL_SIZE
,DTM_CORE_EVENT_LOOP_POOL_SIZE
иADB_EXECUTORS_COUNT
; - изменен путь к параметру
ADB_MAX_POOL_SIZE
:adb.maxSize
->adb.poolSize
.