История изменений
Содержание раздела
- Текущая версия — 6.2.1 (03.03.2023)
- Известные проблемы текущей версии
- Архивные версии
- Версия 6.2 (14.02.2023)
- COMMIT DELTA IMMEDIATE
- WITH в SELECT-запросах и подзапросах
- SELECT-запросы и подзапросы без FROM
- Материализованные представления ADP -> ADP и ADP1 -> ADP2
- INSERT SELECT из ADP1 в ADP2
- Внешние таблицы в GET_ENTITY_DDL
- Ключевые слова IF EXISTS и IF NOT EXISTS в DDL-запросах
- Опциональные ключи в запросах CREATE READABLE/WRITABLE EXTERNAL TABLE для ADB и ADP
- Унификация имен датасорсов в GET_CHANGES и GET_ENTITY_DDL
- Другие изменения
- Исправления
- Версия 6.2 (14.02.2023)
- Версия 6.1.1 (13.01.2023)
- Версия 6.1 (21.12.2022)
- Версия 6.0 (31.10.2022)
- Известные проблемы в версиях до 6.0
- Версия 5.8 (25.08.2022)
- Известные проблемы в версиях до 5.8
- Версия 5.7 (23.06.2022)
- Версия 5.6.1 (07.06.2022)
- Версия 5.6 (19.05.2022)
- Известные проблемы в версиях до 5.6
- Версия 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)
Текущая версия — 6.2.1 (03.03.2023)
- Исправлена ошибка при старте системы, связанная с JSON-логированием.
Известные проблемы текущей версии
- Недоступна одновременная загрузка данных из одного топика Kafka в разные таблицы ADG. Проблема наблюдается в версии 6.2.1 и более ранних версиях системы.
Архивные версии
Версия 6.2 (14.02.2023)
COMMIT DELTA IMMEDIATE
Добавлена возможность закрыть дельту немедленно, не дожидаясь завершения активных операций записи дельты. Для этого запрос COMMIT DELTA
расширен ключевым словом IMMEDIATE
.
Ключевое слово IMMEDIATE
позволяет включить в дельту операции записи, начатые в этой дельте и выполненные в рамках непрерывного диапазона завершенных операций, и исключить из дельты все остальные операции — незавершенные и следующие по номерам за незавершенными.
Операции, исключенные из дельты, становятся отдельными операциями записи без метки времени. Исключенные операции получают свою метку времени при закрытии дельты, следующей после завершения этих операций. До установки метки времени те изменения данных, которые были внесены такими операциями, доступны в запросах на чтение и выгрузку данных при указании номеров операций.
Запрос COMMIT DELTA
без ключевого слова IMMEDIATE
работает так же, как и раньше: если все операции записи дельты завершены, дельта закрывается, иначе выдается ошибка.
Закрыть дельту запросом COMMIT DELTA
или COMMIT DELTA IMMEDIATE
можно, только если завершены все операции записи логической БД, начатые до этой дельты.
WITH в SELECT-запросах и подзапросах
Синтаксис SELECT-запроса расширен опциональным ключевым словом WITH, которое позволяет использовать обобщенные табличные выражения (Common Table Expressions или CTE).
Ключевое слово доступно в запросах к СУБД ADB и ADP.
Ключевое слово WITH
доступно во всех видах SELECT-запросов и SELECT-подзапросов: в отдельных запросах на выборку данных, в подзапросах в составе DDL-запросов на создание логических и материализованных представлений, в подзапросах в составе INSERT SELECT
и т.д.
В табличных выражениях можно использовать любые поддерживаемые ключевые слова, в том числе FOR SYSTEM_TIME
, а также другие табличные выражения того же запроса. В табличных выражениях недоступно использование операторов, изменяющих данные: INSERT
, UPSERT
и DELETE
.
Рекурсивные и материализованные табличные выражения не поддерживаются.
SELECT-запросы и подзапросы без FROM
В SELECT-запросы и подзапросы добавлена возможность не указывать ключевое слово FROM
. Это может быть полезно, например, при вычислении выражений на основе констант.
Возможность доступна в СУБД ADB, ADP и ADQM. Подробнее см. в разделе «Поддержка SQL».
Материализованные представления ADP -> ADP и ADP1 -> ADP2
Добавлена возможность создавать материализованные представления в датасорсах типа ADP на основе данных того же или другого датасорса типа ADP.
INSERT SELECT из ADP1 в ADP2
Добавлена возможность вставки данных с помощью INSERT SELECT
из датасорса типа ADP в другой датасорс типа ADP.
Внешние таблицы в GET_ENTITY_DDL
Запрос GET_ENTITY_DDL
и API-метод /datamarts/{datamart}/entities/{entity}/ddl
теперь поддерживают все виды внешних таблиц: внешние таблицы загрузки и выгрузки, а также внешние readable- и writable-таблицы.
Ключевые слова IF EXISTS и IF NOT EXISTS в 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
.
Опциональные ключи в запросах CREATE READABLE/WRITABLE EXTERNAL TABLE для ADB и ADP
Ключевые слова PRIMARY KEY
и DISTRIBUTED BY
, которые задают первичный ключ и ключ шардирования, стали опциональными в запросах CREATE READABLE EXTERNAL TABLE
и CREATE WRITABLE EXTERNAL TABLE
в случаях, когда связанная standalone-таблица размещается в ADB или ADP.
Также PRIMARY KEY
и DISTRIBUTED BY
по-прежнему опциональны при создании внешней таблицы, если связанная standalone-таблица уже существует в датасорсе.
Унификация имен датасорсов в GET_CHANGES и GET_ENTITY_DDL
В ответах GET_CHANGES
и GET_ENTITY_DDL
унифицировано написание имен датасорсов: теперь имя датасорса всегда возвращается в одинарных кавычках и в верхнем регистре (например, 'ADP'
), независимо от того, как оно было написано в оригинальном DDL-запросе.
Другие изменения
- В SELECT-запросах изменен порядок следования ключевых слов
OFFSET
иFETCH
; теперь используетсяOFFSET... FETCH...
. Прежний порядок (FETCH... OFFSET...
) не рекомендуется использовать, так как его поддержка может быть удалена в будущем. - INSERT INTO download_external_table теперь можно исполнять как подготовленный запрос (prepared statement).
- В секцию конфигурации
zookeeper
добавлен параметрmaxSequenceSize
(ZOOKEEPER_DS_MAX_SEQUENCE_SIZE
). - Добавлена возможность подключения системы к СУБД ADB и ADP, использующим аутентификацию SCRAM-SHA-256.
- Логи об ошибках ADB теперь включают текст ошибки, полученный от ADB.
Исправления
- Исправлена ошибка, которая в некоторых случаях приводила к утечке памяти при загрузке данных в СУБД ADP.
Версия 6.1.1 (13.01.2023)
Версия 6.1.1 доступна в архиве.
Изменения:
- Исправлена ошибка, возникавшая при загрузке данных в СУБД ADB.
Версия 6.1 (21.12.2022)
REST API
Добавлена возможность работать с системой через REST API. REST API поддерживает отправку всех запросов SQL+, а также имеет выделенные методы для работы со схемой данных, дельтами, статистикой и компонентами.
INSERT SELECT ADB -> ADP
Добавлена возможность вставки данных из датасорса типа ADB в датасорс типа ADP с помощью INSERT SELECT
. Теперь вставка данных из датасорсов типа ADB возможна в датасорсы любого типа.
TRUNCATE ACTUAL и ERASE DELTA
- Добавлена поддержка СУБД ADG.
- Удалено ограничение, связанное с невозможностью удаления изменений, которые были добавлены отдельными операциями записи между указанной и предыдущей дельтами: теперь такие изменения также удаляются.
ROLLBACK DELTA
- Удалено ограничение в ADG, связанное с отменой повторных изменений в рамках одной дельты: теперь запрос отменяет такие изменения.
- Удалено ограничение, связанное с необходимостью повторения запроса: теперь запрос удаляет все записи за один вызов, повторный запуск запроса не требуется.
Статистика обработки запросов
- Изменено место хранения значений
ROWS_COUNT
иROWS_COUNT_DELTA
: теперь они хранятся в Zookeeper, а не на сервере системы, и не обнуляются при рестарте системы. - Оптимизирован алгоритм расчета
ROWS_COUNT
иROWS_COUNT_DELTA
: теперь при добавлении новой сущности значения по промежуточным дельтам не рассчитываются.
Конфигурация
- В секцию
zookeeper
добавлены параметрыconnectionRetryCount
(ZOOKEEPER_DS_CONNECTION_RETRY_COUNT
) иoptimisticRetryCount
(ZOOKEEPER_DS_OPTIMISTIC_RETRY_COUNT
).
Изменения в ответах
Изменения в структуре:
- Изменен формат ответа
CHECK_MATERIALIZED_VIEW
:- добавлен столбец
is_sync_lock_exists
; - удален столбец
sync_period
.
- добавлен столбец
- В ответ
CHECK_VERSIONS
добавлена строка с версией REST API.
Изменения в содержимом:
- Изменено форматирование в ответах
GET_ENTITY_DDL
,CHECK_MATERIALIZED_VIEW
,GET_CHANGES
иGET_WRITE_OPERATIONS
: теперь текст запроса, возвращаемый в ответе, включает переносы строк. Раньше текст запроса возвращался без переносов. - Изменено форматирование в ответе
SELECT... ESTIMATE_ONLY
: теперь текст обогащенный запрос содержит символы переноса строк\n
. Раньше текст запроса возвращался без этих символов. - Изменен формат даты, времени и метки в ответе
GET_WRITE_OPERATIONS
: теперь значения возвращаются как дата, время и метка времени соответственно, а не как целое число.
Удаленные ограничения
- Удалено ограничение на символы переноса в условии
WHERE
запросовSELECT
,INSERT SELECT
иDELETE
: теперь доступно сравнение со скалярными значениями строк, содержащими символы переноса строки. - Удалено ограничение на количество столбцов, которые может проверить
CHECK_SUM
(раньше запрос не мог проверить более 50 столбцов).
Работа с компонентами
- Добавлено восстановление соединения с Zookeeper в случае его потери.
- Механизм загрузки данных в ADG теперь использует параметр конфигурации
ADG_CONSUMER_GROUP
вместо настроек на стороне ADG.
Другие изменения в функциональности
- Изменен расчет разницы между двумя явно заданными метками времени в функции
TIMESTAMPDIFF
: теперь для параметровDAY
,HOUR
иMINUTE
возвращается число полных дней/часов/минут без округления вверх. Например, выражениеTIMESTAMPDIFF(DAY, TIMESTAMP '2022-01-15 23:59:59', TIMESTAMP '2022-01-16 00:00:01')
теперь возвращает 0 вместо 1. - Изменен порядок обработки escape-последовательностей в запросах: теперь они сохраняются, а не удаляются.
- В логи для запросов добавлена информация о датасорсах, где были выполнены запросы.
- Удален Logback.xml из JDBC-драйвера. На стороне внешних систем, использующих JDBC, следует отключить JDBC-логирование.
Обновление разделов
- Добавлен раздел «Подключение с помощью HTTP-клиента».
- Раздел «Запросы SQL+» вынесен из главы «Справочная информация» и оформлен отдельной главой.
- Добавлен раздел «Ограничения»; в него перемещен раздел «Ограничения системы» и добавлен новый раздел «Ограничения СУБД».
Версия 6.0 (31.10.2022)
Версия 6.0 доступна в архиве.
Несколько СУБД одного типа
Добавлена возможность работы с несколькими СУБД одного типа. Каждый сервер или кластер СУБД теперь имеет свое имя, по которому к нему можно обратиться с помощью ключевого слова DATASOURCE_TYPE
, и свои параметры конфигурации.
В документации для обозначения сервера или кластера СУБД, находящегося в хранилище данных, введен термин «датасорс». Тип СУБД датасорса обозначается как «тип датасорса».
Изменение данных без дельт
Добавлена возможность загружать и обновлять данные без открытия дельты. Подробнее см. в разделе «Операция записи» -> «Операции в дельте и вне дельты».
Новые запросы, функции, выражения
Запросы:
ALTER TABLE RENAME
,ALTER TABLE ADD COLUMN
,ALTER TABLE RENAME COLUMN
,ALTER TABLE DROP COLUMN
.
Функции:
TIMESTAMPADD
,TIMESTAMPDIFF
.
Выражения с FOR SYSTEM_TIME
, доступные при обращении к логическим таблицам:
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)
.
Изменения в запросах
Ограничения:
- Для
ERASE DELTA
введено ограничение: перед указанной дельтой не должно быть операций записи, выполненных между этой и предыдущей дельтой. - Для
ROLLBACK DELTA
введено ограничение на исполнение в ADG: запрос не отменяет повторные изменения операции, совершенные в рамках одной дельты. - Для
TRUNCATE ACTUAL
удалено ограничение: теперь возможно удаление данных логической таблицы, с которой связано несинхронизированное материализованное представление;
Входящие параметры:
- В
ERASE DELTA
удалена поддержка метки времени; теперь в запросе можно указывать только номер дельты. - В DDL- и SELECT-запросах унифицированы значения
DATASOURCE_TYPE
: теперь значения рекомендуется указывать в одинарных кавычках; значения без кавычек и в двойных кавычках продолжают поддерживаться, но могут быть удалены в будущих версиях.
Ответы:
- Изменен ответ
CHECK_VERSIONS
: теперь имена компонентов, относящихся к датасорсам, возвращаются в формате<имя_датасорса>: <имя_компонента>
. - Изменены ответы на запросы загрузки и обновления данных: теперь вместо пустого объекта ResultSet возвращается ResultSet с одной строкой и столбцом, содержащим номер выполненной операции записи.
- Изменен ответ
SELECT
-запроса с ключевым словомESTIMATE_ONLY
: параметрplugin
переименован вdatasource
. - Изменены следующие строки в ответе
CHECK_DATA
:checksum for delta <delta_num> is OK
→checksum for operations for delta <delta_num> is OK
,checksum mismatch
→checksum for operations for delta <delta_num> mismatch
.
Другое:
- Для
CHECK_SUM
иCHECK_SUM_SNAPSHOT
добавлена возможность расчета контрольной суммы в горячей дельте (только для логических таблиц). - Для
CHECK_DATA
изменена проверка по запросу без столбцов: теперь она выполняется так же, как по запросу со столбцами, — по контрольной сумме, а не количеству записей.
Другие изменения в функциональности
- Обновлены логические типы данных:
- для типа
BIGINT
добавлен алиасINT64
, - тип
INT32
переименован вINTEGER
и для него добавлен алиасINT32
, - тип
INT
больше не используется, но пока продолжает поддерживаться.
- для типа
- Расширена поддержка функций
CURRENT_DATE
,CURRENT_TIME
иCURRENT_TIMESTAMP
в СУБД ADB и ADP: теперь их можно указывать без CAST. - Добавлена возможность запроса JVM-метрик.
Изменения в конфигурации
- В конфигурацию сервиса исполнения запросов и сервиса мониторинга статусов Kafka добавлена секция
prometheus
с параметромenabled
(PROMETHEUS_ENABLED
). - В конфигурации ADB удален параметр
with-history-table
(ADB_WITH_HISTORY_TABLE
). - В конфигурации ADG секции
tarantool
иdb
заменены на секциюdatasource
. - В конфигурации ADG удалена секция
circuitbreaker
. - Изменена секция
datasource
: теперь секция содержит массив элементов, каждый из которых — это набор параметров датасорса, включая секцииmppr
,mppw
иrollback
. - В секцию
datasource
добавлены параметрыname
иenv
.
Обновление разделов
- Удалены понятия актуальных, горячих и архивных записей; вместо них теперь используется понятие «версия данных», номер версии соответствует номеру операции записи (см. раздел «История изменений данных»).
- Введено понятие датасорса, обозначающее сервер или кластер СУБД в хранилище данных.
- Добавлен раздел «Запрос JVM-метрик».
- Переработаны разделы:
- История изменений данных,
- Дельта,
- Операция записи,
- Версионирование данных.
Известные проблемы в версиях до 6.0
- В условии
WHERE
запросовSELECT
,INSERT SELECT
иDELETE
недоступно сравнение со скалярными значениями строк, содержащими символы переноса строки. Ограничение действует во всех версиях до 6.0 включительно. - В запросе
CHECK_SUM
недоступен расчет контрольной суммы для более чем 50 столбцов. Ограничение действует во всех версиях до 6.0 включительно.
Версия 5.8 (25.08.2022)
Версия 5.8 доступна в архиве.
Изменения:
Изменения в общей функциональности
Добавлены запросы:
RESET_STATISTICS
;SYNC
.
Изменены запросы:
- введено ограничение на параллельное выполнение
ROLLBACK DELTA
: теперь запрос возвращает исключение, если система уже выполняет другой запросROLLBACK DELTA
; - в ответ
GET_ENTITY_STATISTICS
добавлены параметрыROWS_COUNT
иROWS_COUNT_DELTA
; - изменен ответ
CHECK_VERSIONS
при сбое компонента: теперь, если компонент вернул ошибку при опросе, система записывает ее в полеversion
, а не возвращает исключение в ответе; - введено ограничение в
CHECK_SUM
: теперь запрос рассчитывает контрольную сумму только в закрытой дельте; - введено ограничение в SELECT: ключевое слово
COLLATE
больше не поддерживается.
Другие изменения:
- добавлен загружаемый тип данных
uuid
; - добавлены параметры конфигурации
CORE_STATISTICS_DATA_COUNT_ENABLED
,TARANTOOL_QUERY_REST_ENDPOINT
иDTM_DELTA_WATCHER_POOL_SIZE
; - добавлено ограничение на псевдонимы (алиасы) сущностей и столбцов: они могут содержать латинские буквы, цифры и символы подчеркивания.
Изменения в поддержке ADG
Для ADG теперь поддерживаются:
- запросы обновления данных:
INSERT VALUES
,INSERT SELECT
иDELETE
; CHECK_SUM_SNAPSHOT
;CHECK_SUM
для логических представлений, основанных на данных ADG;- создание readable- и writable-таблиц, связанных со standalone-таблицами ADG, без поля
bucket_id
, а также запросы загрузки и чтения данных из таких readable- и writable-таблиц без указанияbucket_id
.
Для ADG не поддерживаются:
- соединения
NATURAL JOIN
,RIGHT JOIN
,LEFT JOIN
,FULL JOIN
иCROSS JOIN
; - ключевые слова
LIMIT
иOFFSET
; - функции и арифметические операторы.
Обновление разделов
Добавлены разделы:
- Дельта > Работа с дельтами, закрытыми с датой и временем в будущем;
- Основные понятия > Операция по изменению схемы;
- Основные понятия > История изменений данных;
- Возможности системы;
- Соглашения об именах.
Обновлены разделы:
- термины из раздела «Термины и определения» вынесены в раздел «Основные понятия» как отдельные страницы; раздел «Термины и определения» удален;
- раздел «Введение» переименован в «О системе Prostore» и переработан;
- раздел «Обзор понятий, компонентов и связей» переименован в «Как устроена система» и переработан;
- раздел «Эксплуатация» переименован в «Запуск в эксплуатацию»;
- рекомендации по использованию топиков Kafka вынесены из раздела «Внешняя таблица» в отдельный раздел — «Рекомендации по топикам Kafka».
Известные проблемы в версиях до 5.8
- Создание материализованных представлений на основе одной логической таблицы без группировки и агрегации данных поддерживается только в случае, если таблица и представление расположены в одной логической базе данных. Ограничение действует во всех версиях до 5.8 включительно.
Версия 5.7 (23.06.2022)
Версия 5.7 доступна в архиве.
Изменения:
- добавлены запросы:
TRUNCATE ACTUAL
,ERASE DELTA
,GET_ENTITY_STATISTICS
;
- добавлена возможность размещения материализованных представлений в ADP;
- расширен список операций, хранящихся в журнале: теперь в нем также хранится информация об отмененных операциях;
- расширен синтаксис запроса
GET_CHANGES
: теперь в запросе доступен флаг, который включает вывод отмененных операций; - в
SELECT
-запросах изменен порядок выбора записей:- запросы без ключевого слова
FOR SYSTEM_TIME
теперь выбирают записи, актуальные по состоянию на последнюю дельту по текущему времени сервера; записи дельт, закрытых с будущими датой и временем, не возвращаются; - запросы к standalone-таблицам с выражениями
FOR SYSTEM_TIME STARTED IN
иFOR SYSTEM_TIME FINISHED IN
теперь всегда возвращают пустой результат (раньше эти выражения игнорировались);
- запросы без ключевого слова
- обновлена конфигурация системы:
- для параметра
DTM_METRICS_SCOPE
удалено значениеrequests
, - секция
metrics
заменена на секциюstatistics
, - добавлен параметр
ADP_POOL_REQUEST_TIMEOUT
;
- для параметра
- обновлен дизайн схем.
Версия 5.6.1 (07.06.2022)
Версия 5.6.1 доступна в архиве.
Изменения:
- удалено ограничение на одновременный запуск запросов на создание, изменение и удаление таблиц и представлений: теперь такие запросы попадают в очередь и обрабатываются по порядку;
- в конфигурацию системы добавлен параметр
CORE_DDL_QUEUE_ENABLED
, включающий использование очереди операций по изменению логической схемы; чтобы вернуть прежнее поведение системы, установите значение параметра равнымfalse
; - в раздел «Основные понятия» добавлен подраздел «Очередь операций по изменению схемы».
Версия 5.6 (19.05.2022)
Изменения:
- для материализованных представлений добавлена поддержка таблиц из разных логических баз данных;
- добавлено ключевое слово
LISTAGG
, доступное в SELECT-запросах к ADB и ADP; - в конфигурацию системы добавлен параметр
ADB_MPPR_BUFFER_SIZE
; - расширены возможности запросов
CHECK_SUM
иCHECK_SUM_SNAPSHOT
: теперь расчет контрольной суммы доступен и для логических представлений; - расширен синтаксис
CHECK_SUM_SNAPSHOT
: теперь можно указывать либо номер дельты, либо дату и время, на которые должна быть рассчитана контрольная сумма; - для запроса
DELETE
в условииWHERE
добавлена поддержка подзапросов и JOIN-соединений; - в SELECT-запросе изменен порядок выбора записей по ключевым словам
FOR SYSTEM_TIME STARTED IN
иFOR SYSTEM_TIME FINISHED IN
: теперь возвращается разница в состоянии данных между указанными дельтами, а не все версии записей за этот период; - добавлено ограничение на имена столбцов логических таблиц и материализованных представлений: они не могут начинаться со служебных слов;
- переработан раздел «Запросы SQL+»: запросы разделены по категориям, и для каждого запроса добавлено краткое описание;
- дополнен список ограничений в разделе «Ограничения системы» и справочнике запросов: ограничения, встречавшиеся в блоках примечаний, теперь вынесены в явном виде в список ограничений.
Известные проблемы в версиях до 5.6
- Есть небольшая вероятность кэширования шаблона запроса предыдущей дельты. Если это произошло, кэшированные запросы возвращают устаревшие данные до момента закрытия новой дельты или рестарта системы. Проблема существует во всех версиях до 5.6 включительно.
Версия 5.5 (06.04.2022)
Версия 5.5 доступна в архиве.
Изменения:
- добавлена возможность работать со standalone-таблицами — таблицами, которые не относятся к логической и физической схемам данных;
- добавлены новые сущности, предназначенные для работы со standalone-таблицами: внешняя writable-таблица и внешняя readable-таблица;
- в запрос
CREATE UPLOAD EXTERNAL TABLE
добавлено ключевое словоOPTIONS
; его значениеauto.create.sys_op.enable=false
позволяет создать таблицу, предназначенную для загрузки в standalone-таблицу; - изменен способ возобновления операций по обновлению данных: теперь нужно повторить исходный запрос, добавив в его начало ключевое слово
RETRY
, а повторение запроса без ключевого слова не возобновляет обработку операции; - добавлены новые запросы:
- запросы по управлению внешними writable- и readable-таблицами:
CREATE WRITABLE EXTERNAL TABLE
;DROP WRITABLE EXTERNAL TABLE
;CREATE READABLE EXTERNAL TABLE
;DROP READABLE EXTERNAL TABLE
;
ERASE_CHANGE_OPERATION
;ERASE_WRITE_OPERATION
;
- запросы по управлению внешними writable- и readable-таблицами:
- запрос
INSERT INTO logical_table
переименован в справочнике запросов вINSERT SELECT FROM upload_external_table
: переименование связано с тем, что теперь запрос позволяет загружать данные не только в логические таблицы, но и в standalone-таблицы; синтаксис запроса не изменился, изменилось только обозначение запроса в документе; - в конфигурацию системы добавлены параметры
TARANTOOL_DB_SYNC_BUFFER_SIZE
иADQM_BUFFER_SIZE
; - описан формат служебного топика Kafka;
- в главу «Работа с системой» добавлен раздел «Управление операциями»;
- раздел «Разбор ошибок загрузки и обновления данных» переименован в «Причины ошибок загрузки и обновления данных» и перенесен в главу «Справочная информация»; информация об обработке операций записи вынесена в новый раздел «Управление операциями».
Версия 5.4 (21.02.2022)
Версия 5.4 доступна в архиве.
Изменения:
- начало строки подключения изменено с
jdbc:adtm
наjdbc:prostore
; - запрос
UPSERT VALUES
переименован вINSERT VALUES
, запросUPSERT SELECT
— вINSERT SELECT
; - добавлены новые запросы:
UPSERT VALUES
;CHECK_SUM_SNAPSHOT
;
- обновлена
конфигурация системы
:- добавлен параметр
KAFKA_STATUS_EVENT_TOPIC
; - изменены значения по умолчанию:
- параметр
ADQM_DB_NAME
теперь имеет значение по умолчаниюdefault
; - параметр
ADQM_CLUSTER
теперь имеет значение по умолчаниюdefault_cluster
; - значения параметра
ADQM_SHARDING_EXPR
изменены сcityHash64
иintAdd
наCITY_HASH_64
иINT_ADD
соответственно;
- параметр
- начало путей
io.arenadata
во всех вхождениях заменено наru.datamart
; - добавлены неучтенные ранее параметры для ADG:
TARANTOOL_VERTX_WORKERS
,TARANTOOL_DB_SYNC_CONNECTION_TIMEOUT
,TARANTOOL_DB_SYNC_READ_TIMEOUT
иTARANTOOL_DB_SYNC_REQUEST_TIMEOUT
;
- добавлен параметр
- добавлено ограничение на имена логических сущностей и их столбцов: имя должно начинаться с латинской буквы, после первого символа могут следовать латинские буквы, цифры и символы подчеркивания в любом порядке;
- изменен ответ
GET_CHANGES
в случае отсутствия журнала: теперь возвращается пустой объект ResultSet, а не ошибка; - локализация статуса 2 операции записи изменена с «Ошибка» на «Отменяется»;
- имя логической базы данных в примерах изменено с
sales
наmarketing
.
Версия 5.3 (14.01.2022)
Версия 5.3 доступна в архиве.
Изменения:
- добавлено создание материализованных представлений в ADQM на основе данных ADB;
- добавлена вставка данных из ADB в ADQM с помощью
UPSERT SELECT
; - удалено требование на целочисленные ключи шардирования в логических таблицах: теперь ключ может содержать столбцы с любыми типами данных;
- добавлены новые запросы:
CHECK_MATERIALIZED_VIEW
;DENY_CHANGES
;ALLOW_CHANGES
;GET_CHANGES
;GET_ENTITY_DDL
;
- в системное представление
tables
добавлен новый тип сущности —MATERIALIZED VIEW
; - добавлен перезапуск незавершенной операции по обновлению данных;
- добавлено автоматическое ведение журнала — списка операций по изменению логических сущностей;
- для выгрузки данных добавлен выбор оптимальной СУБД хранилища, аналогичный выбору СУБД для SELECT-запросов;
- из описания запроса
CREATE TABLE
удалено неподдерживаемое ключевое словоDEFAULT
; - добавлен раздел «Зарезервированные слова» со словами, которые не могут использоваться как имена сущностей и имена полей;
- добавлен раздел «Ограничения системы» со списком всех ограничений, имеющихся в запросах системы;
- обновлена конфигурация системы:
- добавлен параметр
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
;
- добавлен параметр
- изменена терминология: архивация актуальных записей теперь называется удалением, а удаление записей с помощью запроса
TRUNCATE HISTORY
— удалением записей с историей.
Версия 5.2 (26.10.2021)
Версия 5.2 доступна в архиве.
Изменения:
- добавлена функция обновления данных — альтернатива загрузке в случае небольших объемов данных; описание доступно в следующие разделах:
- «Обновление данных»;
- «Порядок обработки запросов на обновление данных»;
UPSERT VALUES
;UPSERT SELECT
;DELETE
;
- добавлены новые запросы:
CONFIG_SHOW
;GET_WRITE_OPERATIONS
;RESUME_WRITE_OPERATION
;
- добавлено ключевое слово
COLLATE
, доступное в SELECT-запросах к ADG; - добавлена возможность выгрузки данных из материализованных представлений;
- изменена маршрутизация SELECT-запросов: теперь учитывается не только категория запроса, но и набор узлов кластера, для которых предназначен запрос;
- добавлен раздел «Разбор ошибок загрузки и обновления данных»;
- ограничено исполнение запросов по управлению схемой данных в сервисной базе данных
INFORMATION_SCHEMA
; - изменен перечень операций, отменяемых запросом
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
изменен ccore.metrics.isEnabled
наcore.metrics.еnabled
;
- добавлены параметры
- добавлен раздел «Конфигурация коннекторов»;
- описание конфигурационных параметров системы перенесено из раздела «Конфигурация» в раздел «Конфигурация системы»;
- имя системы заменено на
Prostore
(в соответствии с именем проекта с открытым исходным кодом); - скорректировано описание служебного поля
sys_op
: поле должно отсутствовать во внешней таблице загрузки и логической таблице и должно присутствовать в загружаемых сообщениях топика Kafka.
Версия 5.1 (27.08.2021)
Версия 5.1 доступна в архиве.
Изменения:
- добавлено ключевое слово
ESTIMATE_ONLY
, доступное в SELECT-запросах; - добавлено ключевое слово
LOGICAL_ONLY
, доступное в запросах на создание и удаление логической БД, логической таблицы и материализованного представления; - обновлено описание запросов
CHECK_DATA
иCHECK_SUM
:- добавлен коэффициент нормализации, повышающий максимально допустимое количество записей в проверяемых дельтах;
- изменен расчет контрольных сумм: теперь они считаются по дельтам, а не отдельным операциям записи;
- обновлено описание запроса
CHECK_SUM
:- изменен расчет контрольной суммы по таблице/представлению: теперь расчет аналогичен тому, который выполняется для
CHECK_DATA
; - изменен расчет контрольной суммы по логической БД: теперь контрольные суммы таблиц складываются, а не проходят дополнительный этап хеширования;
- изменен расчет контрольной суммы по таблице/представлению: теперь расчет аналогичен тому, который выполняется для
- в конфигурацию добавлен параметр
DTM_VERTX_BLOCKING_STACKTRACE_TIME
; - добавлена глава «Сборка и развертывание»;
- в главу «Работа с системой» добавлены разделы «Получение информации о SELECT-запросе» и «Проверка месторасположения логической сущности»;
- в главу «Эксплуатация» добавлен раздел «Часовые пояса системы и компонентов».
Версия 5.0 (12.08.2021)
Изменения:
- добавлена СУБД хранилища нового типа — ADP — на основе PostgreSQL;
- добавлена выгрузка данных из СУБД хранилища, указанной в запросе
INSERT INTO download_external_table
; - в системное представление
tables
добавлен столбецtable_datasource_type
; - обновлено описание запроса
CHECK_SUM
: теперь запрос поддерживает расчет контрольной суммы по материализованному представлению; - обновлена конфигурация:
- добавлены параметры для управления СУБД ADP;
- добавлены параметры запроса prepared statement для СУБД ADB:
ADB_PREPARED_CACHE_MAX_SIZE
,ADB_PREPARED_CACHE_SQL_LIMIT
иADB_PREPARED_CACHE
; - в список значений следующих параметров добавлена СУБД ADP:
CORE_PLUGINS_ACTIVE
,DTM_CORE_PLUGINS_RELATIONAL
,DTM_CORE_PLUGINS_ANALYTICAL
,DTM_CORE_PLUGINS_DICTIONARY
,DTM_CORE_PLUGINS_UNDEFINED
; - добавлен параметр
DTM_LOGGING_LEVEL
для управления уровнем логирования; - конкретные IP-адреса заменены на
localhost
;
- добавлен раздел «Схемы развертывания».
Версия 4.1 (26.07.2021)
Версия 4.1 доступна в архиве.
Изменения:
- добавлено ключевое слово
OFFSET
, доступное в SELECT-запросах; - добавлено ключевое слово
FETCH NEXT <N> ROWS ONLY
как полная альтернатива ключевому словуLIMIT <N>
в SELECT-запросах; - обновлено описание запроса
ROLLBACK DELTA
: теперь запрос отменяет как завершенные, так и выполняемые операции записи; - обновлена конфигурация:
- значение параметра
ADB_EXECUTORS_COUNT
изменено с 20 на 3; - значение параметра
ADB_MAX_POOL_SIZE
изменено с 5 на 3; - добавлен новый параметр
DELTA_ROLLBACK_STATUS_CALLS_MS
.
- значение параметра
Версия 4.0 (12.07.2021)
Изменения:
- описаны материализованные представления;
- описаны возможные форматы даты и времени в запросах;
- добавлен раздел «Проверка наличия логической сущности»;
- добавлен раздел «Настройка JSON-логов»;
- в конфигурацию добавлены параметры по управлению материализованными представлениями:
MATERIALIZED_VIEWS_SYNC_PERIOD_MS
,MATERIALIZED_VIEWS_RETRY_COUNT
,MATERIALIZED_VIEWS_RETRY_COUNT
.
Версия 3.7.3 (30.06.2021)
Версия 3.7.3 доступна в архиве.
Изменения:
- обновлена конфигурация:
- в секцию
vertx.pool
добавлены параметрыDTM_CORE_WORKER_POOL_SIZE
иDTM_CORE_EVENT_LOOP_POOL_SIZE
; - путь к параметру
ADB_MAX_POOL_SIZE
изменился сadb.maxSize
наadb.poolSize
; - в секцию
adb
добавлен параметрADB_EXECUTORS_COUNT
;
- в секцию
- описан запрос
ROLLBACK CRASHED_WRITE_OPERATIONS
; - доработаны разделы
CHECK_DATA
иCHECK_SUM
: описаны алгоритм и пример расчета контрольной суммы; - уточнено описание формата загрузки и формата выгрузки данных;
- в разделе «Минимальные системные требования» версия ADG обновлена до 2.7.2.