Ограничения системы

Содержание раздела
  1. ALTER TABLE ADD COLUMN
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения партиционирования
    4. Другие ограничения
  2. ALTER TABLE ADD DATASOURCE
  3. ALTER TABLE ADD RETENTION
    1. Ограничения выполнения
    2. Ограничения партиционирования
    3. Ограничения снапшот-таблиц
    4. Другие ограничения
  4. ALTER TABLE DROP COLUMN
    1. Ограничения выполнения
    2. Ограничения партиционирования
    3. Другие ограничения
  5. ALTER TABLE DROP RETENTION
  6. ALTER TABLE RENAME
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения партиционирования
    4. Другие ограничения
  7. ALTER TABLE RENAME COLUMN
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения партиционирования
    4. Другие ограничения
  8. ALTER VIEW
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения SELECT-подзапроса
    4. Другие ограничения {##alter_view_other}
  9. BEGIN DELTA
  10. CHECK_DATA
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  11. CHECK_SUM
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  12. CHECK_SUM_SNAPSHOT
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  13. CHECK_TABLE
  14. COMMIT DELTA
  15. CREATE DATABASE
  16. CREATE DOWNLOAD EXTERNAL TABLE
  17. CREATE MATERIALIZED VIEW
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения столбцов
    4. Ограничения SELECT-подзапроса
    5. Другие ограничения
  18. CREATE PROXY TABLE
    1. Ограничения выполнения
    2. Ограничения имен
    3. Другие ограничения
  19. CREATE READABLE EXTERNAL TABLE
  20. CREATE SNAPSHOT TABLE
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения retention-правил
    4. Ограничения опций
    5. Другие ограничения
  21. CREATE TABLE
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения ключей
    4. Ограничения retention-правил
    5. Ограничения партиционированных таблиц и партиций
    6. Ограничения снапшот-таблиц
    7. Ограничения опций
    8. Другие ограничения
  22. CREATE UPLOAD EXTERNAL TABLE
  23. CREATE VIEW
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения SELECT-подзапроса
    4. Другие ограничения
  24. CREATE WRITABLE EXTERNAL TABLE
  25. DELETE
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения ключевых слов
    4. Ограничения партиционирования
    5. Другие ограничения
  26. DENY_CHANGES
  27. DISABLE_DATASOURCE
  28. DISABLE_STATISTICS_ROWS_COUNT
  29. DROP DATABASE
  30. DROP MATERIALIZED VIEW
  31. DROP TABLE
  32. DROP_VIEW
  33. ENABLE_DATASOURCE
  34. ENABLE_STATISTICS_ROWS_COUNT
  35. ERASE DELTA
    1. Ограничения выполнения
    2. Ограничения на другие операции
    3. Ограничения сущностей
    4. Другие ограничения
  36. ERASE_WRITE_OPERATION
  37. GET_CHANGES
  38. GET_CN
  39. GET_ENTITY_STATISTICS
    1. Общие ограничения
    2. Ограничения значений ROWS_COUNT
  40. GET_TS
  41. GET_WRITE_OPERATIONS
  42. INSERT INTO download external table
  43. INSERT SELECT FROM external_table
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения ключевых слов
    4. Ограничения партиционирования
    5. Ограничения смещений (офсетов) Kafka
    6. Другие ограничения
  44. INSERT SELECT
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения партиционирования
    4. Другие ограничения
  45. INSERT VALUES
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения партиционирования
    4. Другие ограничения
  46. RECOVER_DATASOURCE
  47. RESET_STATISTICS
  48. RESUME_WRITE_OPERATION
  49. ROLLBACK CRASHED_WRITE_OPERATIONS
  50. ROLLBACK DELTA
  51. SELECT
    1. Ограничения сущностей
    2. Ограничения FOR SYSTEM_TIME
    3. Ограничения других ключевых слов
    4. Ограничения соединений
    5. Ограничения партиционирования
    6. Другие ограничения
  52. SELECT FROM INFORMATION_SCHEMA
  53. SET_MODE_READONLY
  54. TRUNCATE ACTUAL
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения WHERE
    4. Другие ограничения
  55. TRUNCATE HISTORY
  56. TRUNCATE TSLOG
  57. UPDATE
    1. Ограничения выполнения
    2. Ограничения СУБД
    3. Ограничения сущностей
    4. Ограничения партиционирования
    5. Другие ограничения
  58. UPSERT VALUES
    1. Ограничения выполнения
    2. Ограничения СУБД
    3. Ограничения сущностей
    4. Ограничения партиционирования
    5. Другие ограничения

ALTER TABLE ADD COLUMN

Ограничения выполнения

Ограничения имен

Ограничения партиционирования

  • При добавлении столбца в партиционированную таблицу необходимо добавить соответствующий столбец во все ее партиции.
  • При добавлении столбца в партицию необходимо добавить соответствующий столбец в связанную партиционированную таблицу и другие ее партиции.

Другие ограничения

  • Можно добавить только nullable-столбец.
  • После изменения таблицы запросы к связанным логическим и материализованным представлениям могут стать недоступными. В этом случае нужно пересоздать сбойные представления.
  • Информационная схема обновляется асинхронно, поэтому столбец может не сразу добавиться в информационную схему.

ALTER TABLE ADD DATASOURCE

  • Выполнение запроса недоступно в следующих случаях:
    • таблица участвует в незавершенной операции записи;
    • в логической БД открыта дельта;
    • в логической БД установлен запрет на изменение сущностей.
  • Параллельное выполнение ALTER TABLE ADD DATASOURCE и ERASE DELTA может привести к неконсистентности данных.
  • Можно добавить датасорсы:
    • любого типа — для пустой обычной логической таблицы или партиции;
    • ADB, ADP — для непустой обычной логической таблицы или партиции с данными в другом датасорсе ADB/ADP;
    • ADP — для партиционированной таблицы.
  • Информационная схема обновляется асинхронно, поэтому датасорс таблицы может не сразу добавиться в информационную схему.

ALTER TABLE ADD RETENTION

Ограничения выполнения

Ограничения партиционирования

  • Retention-правила партиционированной таблицы не применяются к ее партициям.

Ограничения снапшот-таблиц

  • Retention-правила доступны только для снапшот-таблиц с включенным отслеживанием удаления записей.
  • Retention-правила снапшот-таблиц могут только удалять информацию об удаленных записях; охлаждение этой информации не поддерживается.

Другие ограничения

  • Датасорс-источник и датасорс-приемник в retention-правиле должны быть одного типа.

ALTER TABLE DROP COLUMN

Ограничения выполнения

Ограничения партиционирования

  • При удалении столбца из партиционированной таблицы необходимо удалить соответствующий столбец изо всех ее партиции.
  • При удалении столбца из партиции необходимо удалить соответствующий столбец из связанной партиционированной таблицы и других ее партиций.

Другие ограничения

  • Недоступно удаление столбца, входящего в первичный ключ или ключ шардирования.
  • После изменения таблицы запросы к связанным логическим и материализованным представлениям могут стать недоступными. В этом случае нужно пересоздать сбойные представления.
  • Информационная схема обновляется асинхронно, поэтому столбец может не сразу удалиться из информационной схемы.

ALTER TABLE DROP RETENTION

ALTER TABLE RENAME

Ограничения выполнения

Ограничения имен

Ограничения партиционирования

  • Переименование партиционированной таблицы недоступно, если у нее есть партиции.

Другие ограничения

  • После изменения таблицы запросы к связанным логическим и материализованным представлениям могут стать недоступными. В этом случае нужно пересоздать сбойные представления.
  • Информационная схема обновляется асинхронно, поэтому таблица может не сразу переименоваться в информационной схеме.

ALTER TABLE RENAME COLUMN

Ограничения выполнения

Ограничения имен

Ограничения партиционирования

  • При переименовании столбца в партиционированной таблице необходимо переименовать соответствующий столбец во всех ее партициях.
  • При переименовании столбца в партиции необходимо переименовать соответствующий столбец в связанной партиционированной таблице и других ее партициях.

Другие ограничения

  • Недоступно переименование столбца, входящего в первичный ключ или ключ шардирования.
  • После изменения таблицы запросы к связанным логическим и материализованным представлениям могут стать недоступными. В этом случае нужно пересоздать сбойные представления.
  • Информационная схема обновляется асинхронно, поэтому столбец может не сразу обновиться в информационной схеме.

ALTER VIEW

Ограничения выполнения

Ограничения имен

Ограничения SELECT-подзапроса

Другие ограничения {##alter_view_other}

  • Информационная схема обновляется асинхронно, поэтому представление может не сразу обновиться в информационной схеме.
  • Системные столбцы источника доступны через представление, если только они явно указаны в запросе на создание/изменение представления.

BEGIN DELTA

  • Выполнение запроса невозможно при наличии незавершенного запроса на создание, удаление или изменение таблицы или представления.
  • Если в запросе указан номер открываемой дельты, он должен быть равен номеру последней закрытой дельты + 1.

CHECK_DATA

Ограничения сущностей

  • Недоступна проверка партиционированных таблиц, а также логических и материализованных представлений.
  • Максимальное количество проверяемых записей в одной сущности ограничено и регулируется коэффициентом нормализации.

Ограничения точности

  • Есть небольшая вероятность, что контрольные суммы совпадут для разных наборов данных, поэтому возможен ложноположительный результат проверки.
  • Значения типа FLOAT и DOUBLE могут приводить к расхождениям при проверке из-за разницы в точности типов.

Другие ограничения

  • Недоступна проверка изменений, внесенных операциями записи после последней закрытой дельты.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

CHECK_SUM

Ограничения сущностей

  • Контрольная сумма по всей логической базе данных рассчитывается только по данным логических таблиц и снапшот-таблиц. Данные логических и материализованных представлений не учитываются.
  • Расчет контрольной суммы недоступен для сущностей:
    • логических представлений, основанных на данных СУБД ADQM;
    • логических представлений, основанных на данных прокси-таблиц и standalone-таблиц;
    • партиционированных таблиц;
    • прокси-таблиц.
  • Максимальное количество записей в одной сущности, по которым можно рассчитать контрольную сумму, ограничено и регулируется коэффициентом нормализации.

Ограничения точности

  • Есть небольшая вероятность, что контрольные суммы совпадут для разных наборов данных.
  • Значения типа FLOAT и DOUBLE могут приводить к расхождениям в контрольных суммах из-за разницы в точности типов.

Другие ограничения

  • Расчет контрольной суммы в открытой дельте доступен только для логических таблиц и снапшот-таблиц.
  • Изменения, совершенные после последней закрытой дельты, учитываются в расчете только при запросе по открытой дельте. Если открытой дельты нет, контрольную сумму таких изменений рассчитать невозможно.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

CHECK_SUM_SNAPSHOT

Ограничения сущностей

  • Контрольная сумма логической БД рассчитывается только по данным логических таблиц, снапшот- и прокси-таблиц. Данные логических и материализованных представлений не учитываются.
  • Контрольные суммы снапшот- и прокси-таблиц рассчитываются по их текущим данным и не зависят от указанной дельты или момента времени.
  • Расчет контрольной суммы недоступен для сущностей:
    • логических представлений, основанных на standalone-таблицах;
    • партиционированных таблиц.
  • Количество записей в одной сущности, по которым можно рассчитать контрольную сумму, ограничено и регулируется коэффициентом нормализации.

Ограничения точности

  • Есть небольшая вероятность, что контрольные суммы совпадут для разных наборов данных.
  • Значения типа FLOAT и DOUBLE могут приводить к расхождениям в контрольных суммах из-за разницы в точности типов.

Другие ограничения

  • Расчет контрольной суммы в открытой дельте доступен только для логических таблиц.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

CHECK_TABLE

  • Запрос не проверяет staging-таблицы, динамически создаваемые для снапшот-таблиц.

COMMIT DELTA

  • Если в запросе указаны дата и время закрытия дельты, они должны быть больше даты и времени последней закрытой дельты в логической БД.
  • Закрытие дельты без ключевого слова IMMEDIATE доступно, только если завершены операции записи в логические таблицы и все операции по изменению схемы (включая DDL-операции по снапшот-таблицам).

CREATE DATABASE

  • Имя логической БД должно быть уникально в рамках окружения и соответствовать соглашения об именах.
  • Логическая БД не может иметь имя INFORMATION_SCHEMA.
  • Не рекомендуется включать в имя логической БД более одного символа подчеркивания (_) подряд, если в хранилище есть СУБД ADG.

CREATE DOWNLOAD EXTERNAL TABLE

CREATE MATERIALIZED VIEW

Ограничения выполнения

Ограничения имен

  • Имена представления, столбцов и псевдонимов должны соответствовать соглашениям об именах.
  • Имена столбцов должны быть уникальны в рамках представления.

Ограничения столбцов

  • Порядок и типы данных столбцов, выбираемых из источника, должны совпадать с порядком и типами данных столбцов в представлении (исключение — признак sys_op в инкрементальных подзапросах, который не учитывается при проверке).
  • Первичный ключ должен включать все столбцы ключа шардирования.

Ограничения SELECT-подзапроса

  • Подзапрос не может содержать:
    • системные столбцы sys_op, sys_from и sys_to в списке выбираемых столбцов без указания псевдонимов;
    • ключевое слово FOR SYSTEM_TIME (кроме инкрементальных подзапросов);
    • системные представления INFORMATION_SCHEMA,
    • ключевое слово ORDER BY;
    • ключевое слово LIMIT.
  • Снапшот-таблицы поддерживаются только в инкрементальных подзапросах и подзапросах к внешней системе.
  • Система не проверяет корректность подзапроса при создании представления.

Другие ограничения

  • Представления должны размещаться в логических БД, в которых нет логических таблиц.
  • Представления, построенные на соединении логических таблиц с прокси-таблицами или standalone-таблицами, могут содержать не все изменения прокси-таблиц и standalone-таблиц из-за того, что такие таблицы не поддерживают версионирование данных.
  • При наличии представлений на основе инкрементального подзапроса к партиционированным таблицам необходимо загружать и обновлять данные в указанных таблицах, а не их партициях; изменения, внесенные напрямую партиции, не попадут в такие представления.
  • Информационная схема обновляется асинхронно, поэтому созданное представление может не сразу появиться в информационной схеме.

CREATE PROXY TABLE

Ограничения выполнения

Ограничения имен

  • Имена таблицы и ее столбцов должны соответствовать соглашениям об именах.
  • Имена столбцов должны быть уникальны в рамках прокси-таблицы.

Другие ограничения

  • Первичный ключ, если он указан, должен включать все столбцы ключа шардирования.
  • Информационная схема обновляется асинхронно, поэтому созданная таблица может не сразу появиться в информационной схеме.
  • HTTP-запросы с одинаковым значением queryId и одинаковым списком датасорсов в DATASOURCE_TYPE/конфигурации создают прокси-таблицы в одном датасорсе, только если он включен при исполнении всех таких запросов.

CREATE READABLE EXTERNAL TABLE

  • Имена таблицы и ее столбцов должны соответствовать соглашениям об именах.
  • Имена и порядок столбцов должны совпадать во внешней таблице и связанной standalone-таблице.
  • В readable-таблице, предназначенной для загрузки данных из Kafka в логическую или снапшот-таблицу, последним должен быть указан столбец sys_op с типом BIGINT. Столбец используется в служебных целях; без него данные не загрузятся.
  • Информационная схема обновляется асинхронно, поэтому созданная таблица может не сразу появиться в информационной схеме.

CREATE SNAPSHOT TABLE

Ограничения выполнения

Ограничения имен

  • Имена таблицы и ее столбцов должны соответствовать соглашениям об именах.
  • Имена столбцов должны быть уникальны в рамках таблицы.

Ограничения retention-правил

  • Retention-правила доступны только для снапшот-таблиц с включенным отслеживанием удаления записей.
  • Retention-правила снапшот-таблиц могут только удалять информацию об удаленных записях; охлаждение этой информации не поддерживается.

Ограничения опций

  • Опция set.on.conflict.do недоступна для снапшот-таблиц без первичного ключа.
  • Опция set.delete.tracking.enable=true несовместима с опциями set.on.conflict.do=error и set.on.conflict.do=nothing.

Другие ограничения

  • Датасорсы снапшот-таблиц могут быть только типа ADP.
  • Снапшот-таблицы без первичного ключа поддерживают только добавление записей, не поддерживая обновление и удаление.
  • В снапшот-таблицах с опциями set.on.conflict.do=error и set.on.conflict.do=nothing невозможно обновление текущих записей (для error возвращается ошибка; для nothing пропускаются записи с дубликатами первичного ключа).
  • Информационная схема обновляется асинхронно, поэтому созданная таблица может не сразу появиться в информационной схеме.

CREATE TABLE

Ограничения выполнения

Ограничения имен

  • Имена таблицы и ее столбцов должны соответствовать соглашениям об именах.
  • Имена столбцов должны быть уникальны в рамках таблицы.

Ограничения ключей

  • Первичный ключ должен включать все столбцы ключа шардирования и все столбцы ключа партиционирования.

Ограничения retention-правил

  • Retention-правила доступны только для датасорсов типа ADB и ADP.
  • Датасорс-источник и датасорс-приемник в правиле должны быть одного типа.
  • Retention-правила партиционированных таблиц не применяются к их партициям.
  • Retention-правила снапшот-таблиц могут только удалять информацию об удаленных записях; охлаждение этой информации не поддерживается.

Ограничения партиционированных таблиц и партиций

  • Датасорсы партиционированных таблиц и партиций могут быть только типа ADP.
  • Вложенное партиционирование недоступно: партиция не может быть иметь свои партиции.
  • Диапазоны партиционирования:
    • Диапазоны партиции должны быть заданы от меньшего значения к большему без пересечения диапазонов между собой.
    • Диапазоны партиций, относящихся к одной партиционированной таблице, должны включать все возможные значения ключа партиционирования без пересечения диапазонов между собой.
  • Партиционированная таблица и все ее партиции должны находиться в одной логической БД и иметь одинаковую структуру.
  • Retention-правила партиционированной таблицы не применяются к ее партициям.

Ограничения снапшот-таблиц

  • Датасорсы снапшот-таблиц могут быть только типа ADP.
  • Снапшот-таблицы без первичного ключа поддерживают только добавление записей, не поддерживая обновление и удаление.
  • Retention-правила доступны только для снапшот-таблиц с включенным отслеживанием удаления записей.
  • Retention-правила снапшот-таблиц могут только удалять информацию об удаленных записях; охлаждение этой информации не поддерживается.
  • В снапшот-таблицах с опциями set.on.conflict.do=error и set.on.conflict.do=nothing невозможно обновление текущих записей (для error возвращается ошибка; для nothing пропускаются записи с дубликатами первичного ключа).

Ограничения опций

  • Опция set.on.conflict.do недоступна для снапшот-таблиц без первичного ключа.
  • Опция set.delete.tracking.enable=true несовместима с опциями set.on.conflict.do=error и set.on.conflict.do=nothing.

Другие ограничения

  • Информационная схема обновляется асинхронно, поэтому созданная таблица может не сразу появиться в информационной схеме.
  • HTTP-запросы с одинаковым значением queryId и одинаковым списком датасорсов в DATASOURCE_TYPE/конфигурации создают прокси-таблицы в одном датасорсе, только если он включен при исполнении всех таких запросов.

CREATE UPLOAD EXTERNAL TABLE

CREATE VIEW

Ограничения выполнения

Ограничения имен

Ограничения SELECT-подзапроса

  • SELECT-подзапрос не может содержать:
  • Ключевое слово DATASOURCE_TYPE в SELECT-подзапросе игнорируется.

Другие ограничения

  • Информационная схема обновляется асинхронно, поэтому созданное представление может не сразу появиться в информационной схеме.
  • Системные столбцы источника доступны через представление, если только они явно указаны в запросе на создание/изменение представления.

CREATE WRITABLE EXTERNAL TABLE

  • Имена таблицы и ее столбцов должны соответствовать соглашениям об именах.
  • Имена и порядок столбцов должны совпадать во внешней таблице и связанной standalone-таблице.
  • Информационная схема обновляется асинхронно, поэтому созданная таблица может не сразу появиться в информационной схеме.

DELETE

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.
  • Не допускается параллельное выполнение идентичных запросов.

Ограничения сущностей

  • Запрос доступен для логических, снапшот-, прокси- и standalone-таблиц.
  • Удаление записей standalone-таблиц и прокси-таблиц доступно только из СУБД ADB и ADP.
  • Невозможно удаление записей из снапшот-таблиц с комбинациями опций:
    • set.delete.tracking.enable=true + set.on.conflict.do=error (возвращается ошибка);
    • set.delete.tracking.enable=true + set.on.conflict.do=nothing (удаление пропускается без ошибки).

Ограничения ключевых слов

  • В условии WHERE не допускается использование функций, которые приводят к разным результатам в разных СУБД. Примеры таких функций — это операции над числами с плавающей запятой: сравнение с ними, округление и т.д.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.

Ограничения партиционирования

  • Условие в запросе на удаление данных из партиционированной таблицы должно быть вычисляемо в каждом из датасорсов, где расположены данные партиций, из которых удаляются записи.
  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Другие ограничения

  • Запрос не удаляет данные с меткой времени, превышающей текущее время сервера.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, необходимых для записи данных.

DENY_CHANGES

  • Выполнение запроса недоступно при наличии другого запрета изменений или незавершенного запроса на создание, удаление или изменение логической таблицы, постоянной прокси-таблицы или представления.

DISABLE_DATASOURCE

  • Запрос доступен только для СУБД ADB и ADP.

DISABLE_STATISTICS_ROWS_COUNT

  • Запрос доступен только для обычных логических таблиц, партиционированных таблиц, логических представлений и материализованных представлений.

DROP DATABASE

  • Не рекомендуется удалять логическую БД, имя которой содержит более одного символа подчеркивания (_) подряд, если в инсталляции есть СУБД ADG.
  • Недоступно удаление сервисной базы данных INFORMATION_SCHEMA.

DROP MATERIALIZED VIEW

DROP TABLE

  • Выполнение запроса недоступно, если таблица участвует в незавершенной операции записи или установлен запрет на изменение сущностей.
  • Удаление партиционированной таблицы из всех или последнего датасорса недоступно, если у нее есть партиции.

DROP_VIEW

ENABLE_DATASOURCE

  • Запрос доступен только для СУБД ADB и ADP.

ENABLE_STATISTICS_ROWS_COUNT

  • Запрос доступен только для обычных логических таблиц, партиционированных таблиц, логических представлений и материализованных представлений.

ERASE DELTA

Ограничения выполнения

Выполнение запроса недоступно, если в логической БД:

Ограничения на другие операции

Ограничения сущностей

  • Запрос не удаляет операции в снапшот-таблицах.
  • Запрос не обновляет материализованные представления, которые связаны с очищаемыми таблицами и находятся в других логических БД. Такие представления продолжают хранить данные, удаленные из таблиц.

Другие ограничения

  • Если данные не были предварительно сохранены в виде бэкапа, после удаления их невозможно восстановить средствами системы.
  • После выполнения запроса до следующей операции записи последней операцией записи в логической БД считается последняя среди операций в логических таблицах (операции в снапшот-таблицах не учитываются).

ERASE_WRITE_OPERATION

  • Не гарантируется отмена всех изменений по операции, выполняющейся в СУБД на момент запуска запроса:
    • если операция запущена запросом обновления данных или синхронизацией материализованных представлений;
    • если операция запущена запросом загрузки данных и отменяется запросом ERASE_WRITE_OPERATION с флагом true.
  • Запрос пропускает операции со статусом 1 (Подготовлена), не отменяя их, и всегда возвращает успешный ответ для них.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

GET_CHANGES

  • Для логических баз данных, которые не изменялись после версии 5.2, возвращается пустой объект ResultSet.

GET_CN

  • Запрос доступен для сущностей:
    • логических таблиц;
    • снапшот-таблиц;
    • материализованных представлений;
    • простых логических представлений, построенных на подзапросе к логической таблице или материализованному представлению;
    • логических БД.
  • Если в запросе есть именованные параметры, их имена должны соответствовать соглашениям об именах.
  • После выполнения ERASE DELTA до следующей операции записи последней операцией записи в логической БД считается последняя среди операций в логических таблицах (операции в снапшот-таблицах не учитываются).

GET_ENTITY_STATISTICS

Общие ограничения

  • При перезапуске ноды все значения статистики, кроме ROWS_COUNT, обнуляются.
  • Статистика не собирается по внешним таблицам загрузки и выгрузки, а также системным представлениям.

Ограничения значений ROWS_COUNT

  • По умолчанию ROWS_COUNT рассчитывается для сущностей, размещенных в СУБД ADB, ADP и (или) ADQM и имеющих следующие типы: обычная логическая таблица, партиционированная таблица, простое логическое представление без условия, материализованное представление.
  • После обнуления статистики значения остаются равными NULL до следующего расчета статистики.

GET_TS

  • Запрос доступен для сущностей:
    • логических таблиц;
    • снапшот-таблиц;
    • материализованных представлений;
    • простых логических представлений, построенных на подзапросе к логической таблице или материализованному представлению;
    • логических БД.
  • Если в запросе есть именованные параметры, их имена должны соответствовать соглашениям об именах.

GET_WRITE_OPERATIONS

  • Запрос не возвращает информацию о завершенных операциях записи.

INSERT INTO download external table

  • Имена и порядок следования столбцов должны совпадать в SELECT-подзапросе на выгрузку данных и во внешней таблице выгрузки.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

INSERT SELECT FROM external_table

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.

Ограничения сущностей

  • Запрос недоступен для логических и материализованных представлений.
  • Невозможно обновление текущих записей в таблицах:
    • в снапшот-таблицах с опциями set.on.conflict.do=error (возвращается ошибка) и set.on.conflict.do=nothing (пропускаются записи с дубликатами первичного ключа);
    • в прокси- и standalone-таблицах, размещенных в ADB, ADQM или ADG (возвращается ошибка или добавляются записи с дубликатами первичного ключа — в зависимости от СУБД).
  • Невозможно удаление записей из снапшот-таблиц с комбинациями опций:
    • set.delete.tracking.enable=true + set.on.conflict.do=error (возвращается ошибка);
    • set.delete.tracking.enable=true + set.on.conflict.do=nothing (удаление пропускается без ошибки).

Ограничения ключевых слов

  • Частичная загрузка данных с указанием WHERE, LIMIT и OFFSET доступна только при загрузке с помощью внешних readable-таблиц.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.

Ограничения партиционирования

  • При загрузке данных в партиционированную таблицу все записи, для которых нет подходящей партиции, игнорируются.
  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Ограничения смещений (офсетов) Kafka

  • При сбое и откате операций записи смещение не откатывается — оно остается на значении, прочитанном к моменту сбоя.
  • Для равенства данных, загружаемых в разнотипные датасорсы, необходимо загружать данные из общего топика и контролировать, что начальные смещения в топике одинаковы для всех участвующих консьюмер-групп. Это актуально для любых коннекторов, кроме Kafka Jet writer, который обычно имеет общую группу для всех датасорсов.

Другие ограничения

  • Пропуск в запросе обязательных столбцов (NOT NULL) таблицы не поддерживается: возвращается ошибка.
  • В загружаемых записях с sys_op = 1, предназначенных для снапшот-таблицы, должны быть заданы значения всех обязательных (NOT NULL) столбцов таблицы.
  • Недоступна одновременная загрузка данных из одного топика в разные таблицы ADG.
  • Загрузка данных с помощью readable-таблиц доступна только в ADP и только при наличии установленного коннектора Kafka Jet writer.
    • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
      )
      датасорсы (СУБД или кластер СУБД хранилища
      )
      пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
      )
      датасорсов, необходимых для записи данных.

INSERT SELECT

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.
  • Не допускается параллельное выполнение идентичных запросов.

Ограничения сущностей

  • Запрос недоступен для логических и материализованных представлений.
  • Обновление текущих записей невозможно в таблицах:
    • в снапшот-таблицах с опциями set.on.conflict.do=error (возвращается ошибка) и set.on.conflict.do=nothing (пропускаются записи с дубликатами первичного ключа);
    • в прокси- и standalone-таблицах (возвращается ошибка или добавляются записи с дубликатами первичного ключа — в зависимости от СУБД).
  • Если данные вставляются из прокси-таблицы или standalone-таблицы в логическую или снапшот-таблицу, данные таблицы-источника должны оставаться неизменными во время работы запроса.

Ограничения партиционирования

  • При вставке данных в партиционированную таблицу все записи, для которых нет подходящей партиции, игнорируются.
  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Другие ограничения

  • Типы вставляемых значений должны соответствовать типам данных столбцов в таблице-приемнике.
  • Значения всех обязательных столбцов (NOT NULL) таблицы должны присутствовать в результатах SELECT-подзапроса.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, необходимых для записи данных.

INSERT VALUES

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.
  • Не допускается параллельное выполнение идентичных запросов.

Ограничения сущностей

  • Запрос недоступен для логических и материализованных представлений.
  • Обновление текущих записей невозможно в таблицах:
    • в снапшот-таблицах с опциями set.on.conflict.do=error (возвращается ошибка) и set.on.conflict.do=nothing (пропускаются записи с дубликатами первичного ключа);
    • в прокси- и standalone-таблицах (возвращается ошибка или добавляются записи с дубликатами первичного ключа — в зависимости от СУБД).

Ограничения партиционирования

  • При вставке данных в партиционированную таблицу все записи, для которых нет подходящей партиции, игнорируются.
  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Другие ограничения

  • Значения всех обязательных столбцов (NOT NULL) таблицы должны быть указаны в запросе.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, необходимых для записи данных.

RECOVER_DATASOURCE

  • Запрос доступен только для СУБД ADB и ADP.
  • Восстановление не начинается при наличии незавершенных операций, начатых до отключения восстанавливаемых логических БД в датасорсах, — возвращается ответ с информацией об этом.
  • Восстановление не завершается при наличии операций записи в открытой дельте или незавершенных операций записи в восстанавливаемых логических БД, — система ждет завершения/отмены операций или закрытия/отката дельт.
  • Партиционированные и прокси-таблицы не восстанавливаются.
  • Холодные данные не восстанавливаются.

RESET_STATISTICS

  • Недоступно обнуление статистики по внешним таблицам загрузки и выгрузки, так как по таким таблицам статистика не собирается.

RESUME_WRITE_OPERATION

  • Запрос не перезапускает операции со статусом 0, созданные:
    • обновлением данных в любых сущностях;
    • загрузкой данных в снапшот-таблицы;
    • синхронизацией материализованных представлений.
  • Операция загрузки данных в статусе 0 отменяется, а не перезапускается, если отсутствует внешняя таблица, использовавшаяся в этой операции.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

ROLLBACK CRASHED_WRITE_OPERATIONS

  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

ROLLBACK DELTA

  • Выполнение запроса недоступно, если выполняется ERASE DELTA.
  • Во время работы запроса недоступны:
  • После запуска запроса дельту невозможно закрыть.
  • Запрос не отменяет операции записи, выполненные до дельты, а также операции в снапшот-таблицах.
  • Если данные были загружены из Kafka и затем отменены запросом ROLLBACK DELTA, пока некоторые датасорсы были отключены, перед следующей загрузкой из того же топика выровняйте прочитанные смещения для всех консьюмер-групп, например командой TOPIC_RESET.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

SELECT

Ограничения сущностей

  • В запросе можно обращаться либо к логической БД, либо к сервисной БД (см. SELECT FROM INFORMATION_SCHEMA), но не к обеим одновременно.
  • Не поддерживаются запросы к материализованным представлениям с ключевыми словами FOR SYSTEM_TIME + DATASOURCE_TYPE, если в представлении отсутствуют данные за момент времени, указанный с помощью FOR SYSTEM_TIME.
  • Не поддерживаются запросы к внешним readable-таблицам, связанным с топиками Kafka.

Ограничения FOR SYSTEM_TIME

  • Не поддерживается:
  • Снапшот-таблицы:
    • FOR SYSTEM_TIME AS OF ... игнорируется;
    • правая граница в FOR SYSTEM_TIME STARTED/FINISHED IN/CN/TS игнорируется (всегда равна текущему моменту);
  • Прокси- и standalone-таблицы:
    • FOR SYSTEM_TIME STARTED/FINISHED IN/CN/TS всегда выбирают 0 записей;
    • FOR SYSTEM_TIME AS OF ... и FOR SYSTEM_TIME RAW игнорируются.
  • Обычные логические представления:
    • не поддерживают FOR SYSTEM_TIME AS OF LATEST_UNCOMMITTED_DELTA/CN и FOR SYSTEM_TIME STARTED/FINISHED CN;
    • не поддерживают STARTED/FINISHED IN/TS, если их подзапрос содержит ORDER BY или обращается к снапшот-таблицам или данным ADQM.

Ограничения других ключевых слов

  • ESTIMATE_ONLY возвращает план выполнения запроса только для СУБД ADB и ADP.
  • OFFSET не поддерживается без ограничения количества строк.
  • ORDER BY не поддерживается в CREATE MATERIALIZED VIEW.
  • WITH:
    • Поддерживается только для СУБД ADB и ADP.
    • Не поддерживает рекурсивные и материализованные табличные выражения.
    • Не поддерживает DATASOURCE_TYPE и операторы, изменяющие данные (INSERT, UPSERT и DELETE).

Ограничения соединений

  • Не поддерживается соединение сущностей, данные которых размещены в разных датасорсах без какого-либо общего датасорса.
  • Если ключами соединения в запросе выступают поля типа Nullable, то строки, где хотя бы один из ключей имеет значение NULL, не соединяются.

Ограничения партиционирования

  • JOIN-соединение партиционированных таблиц между собой и с другими данными возможно только в пределах единого датасорса.

Другие ограничения

  • Запрос без FOR SYSTEM_TIME игнорирует данные с метками времени, превышающими текущее время сервера.
  • Псевдонимы (алиасы) сущностей и столбцов должны удовлетворять соглашениям об именах.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, подходящих для исполнения запроса.

SELECT FROM INFORMATION_SCHEMA

  • Не допускается комбинирование подзапросов к INFORMATION_SCHEMA с подзапросами к логическим базам данных.
  • Параметризованные запросы к информационной схеме не поддерживаются.
  • Строковые значения столбцов в условии WHERE должны быть указаны в верхнем регистре или с использованием ключевого слова UPPER.

SET_MODE_READONLY

  • Выключение режима недоступно, пока предыдущий запрос включает режим с отменой операций записи.
  • Запрос, отменяющий операции записи:
    • не гарантирует консистентность данных при отмене операций загрузки данных из Kafka в ADB;
    • завершается неуспешно, если операции записи не удалось отменить в течение DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. В этом случае дождитесь завершения отмены операций и повторите команду.

TRUNCATE ACTUAL

Ограничения выполнения

  • Во время работы запроса не допускается выполнение BEGIN DELTA.

Ограничения сущностей

  • Удаление записей недоступно, если таблица (в случае партиционированной таблицы — хотя бы одна ее партиция) имеет retention-правила для остужения данных.
  • Запрос не обновляет материализованные представления, связанные с очищаемыми таблицами. Такие представления продолжают хранить данные, удаленные из таблиц.

Ограничения WHERE

  • Условие WHERE может содержать только простой фильтр и не поддерживает подзапросы, соединения и другие операции.
  • Столбцы, указанные в условии WHERE, должны входить в первичный ключ сущности.

Другие ограничения

  • Удаление данных невозможно отменить.

TRUNCATE HISTORY

  • Условие WHERE может содержать только простой фильтр и не поддерживает подзапросы, соединения и другие операции.
  • Удаление данных невозможно отменить.

TRUNCATE TSLOG

  • Записи удаляются без возможности отмены удаления или восстановления.
  • Удаление записей не фиксируется в журнале DDL-операций.
  • После удаления записей чтение с указанием удаленных меток операций становится недоступным.

UPDATE

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.
  • Не допускается параллельное выполнение идентичных запросов.

Ограничения СУБД

  • Запрос доступен для логических таблиц, размещенных в любых поддерживаемых СУБД, для снапшот-таблиц (доступны только в ADP) и прокси-таблиц и standalone-таблиц, размещенных в ADB или ADP.

Ограничения сущностей

  • Запрос недоступен для логических и материализованных представлений.
  • Запрос недоступен для снапшот-таблиц с опциями set.on.conflict.do=error (возвращается ошибка) и set.on.conflict.do=nothing (изменения пропускаются без ошибки).
  • Недоступно обновление значений столбцов логической таблицы, входящих в первичный ключ.

Ограничения партиционирования

  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Другие ограничения

  • Все сущности, указанные в запросе на обновление столбцов прокси- или standalone-таблицы, должны размещаться в том же датасорсе, что и целевая таблица.
  • Ключевое слово SET, указанное в запросе на обновление столбцов логической таблицы, не может содержать SELECT-подзапрос.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, необходимых для записи данных.

UPSERT VALUES

Ограничения выполнения

  • Выполнение запроса к логической или снапшот-таблице недоступно, если она участвует в незавершенной операции по изменению схемы.
  • Выполнение запроса вне дельты недоступно, если последняя дельта закрыта с меткой времени, превышающей серверное время.
  • Не допускается параллельное выполнение идентичных запросов.

Ограничения СУБД

  • Запрос не поддерживает вставку данных в СУБД ADQM и ADG.

Ограничения сущностей

  • Запрос недоступен для логических и материализованных представлений.
  • Обновление текущих записей невозможно в снапшот-таблицах с опциями set.on.conflict.do=error (возвращается ошибка) и set.on.conflict.do=nothing (пропускаются записи с дубликатами первичного ключа).

Ограничения партиционирования

  • При вставке данных в партиционированную таблицу все записи, для которых нет подходящей партиции, игнорируются.
  • Одновременная запись данных (загрузка, вставка и удаление) в партиционированную таблицу и ее партиции недоступна.

Другие ограничения

  • Значения всех обязательных столбцов (NOT NULL) снапшот-таблицы должны быть указаны в запросе.
  • Ключевое слово RETRY доступно только для логических таблиц; для других таблиц игнорируется или приводит к ошибке.
  • При обработке запроса отключенные (Датасорс, отключенный системой из-за сбоя или администратором
    )
    датасорсы (СУБД или кластер СУБД хранилища
    )
    пропускаются без возврата ошибки. Ошибка возвращается, если не осталось включенных (Датасорс, работающий в штатном режиме
    )
    датасорсов, необходимых для записи данных.