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

Содержание раздела
  1. ALTER TABLE ADD COLUMN
    1. Ограничения выполнения
    2. Ограничения имен
    3. Другие ограничения
  2. ALTER TABLE DROP COLUMN
    1. Ограничения выполнения
    2. Другие ограничения
  3. ALTER TABLE RENAME
    1. Ограничения выполнения
    2. Ограничения имен
    3. Другие ограничения
  4. ALTER TABLE RENAME COLUMN
    1. Ограничения выполнения
    2. Ограничения имен
    3. Другие ограничения
  5. ALTER VIEW
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения SELECT-подзапроса
  6. BEGIN DELTA
  7. CHECK_DATA
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  8. CHECK_SUM
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  9. CHECK_SUM_SNAPSHOT
    1. Ограничения сущностей
    2. Ограничения точности
    3. Другие ограничения
  10. COMMIT DELTA
  11. CREATE DATABASE
  12. CREATE DOWNLOAD EXTERNAL TABLE
  13. CREATE MATERIALIZED VIEW
    1. Ограничения выполнения
    2. Ограничения СУБД
    3. Ограничения имен
    4. Ограничения столбцов
    5. Ограничения SELECT-подзапроса
    6. Другие ограничения
  14. CREATE READABLE EXTERNAL TABLE
  15. CREATE TABLE
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения столбцов
    4. Другие ограничения
  16. CREATE UPLOAD EXTERNAL TABLE
  17. CREATE VIEW
    1. Ограничения выполнения
    2. Ограничения имен
    3. Ограничения SELECT-подзапроса
    4. Другие ограничения
  18. CREATE WRITABLE EXTERNAL TABLE
  19. DELETE
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения ключевых слов
    4. Другие ограничения
  20. DENY_CHANGES
  21. DROP DATABASE
  22. DROP MATERIALIZED VIEW
  23. DROP TABLE
  24. DROP_VIEW
  25. ERASE DELTA
    1. Ограничения выполнения
    2. Ограничения на другие операции
    3. Другие ограничения
  26. ERASE_WRITE_OPERATION
  27. GET_CHANGES
  28. GET_ENTITY_STATISTICS
    1. Общие ограничения
    2. Ограничения значений ROWS_COUNT и ROWS_COUNT_DELTA
  29. GET_WRITE_OPERATIONS
  30. INSERT INTO download external table
  31. INSERT SELECT FROM upload_external_table
  32. INSERT SELECT
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Другие ограничения
  33. INSERT VALUES
  34. RESET_STATISTICS
  35. RESUME_WRITE_OPERATION
  36. ROLLBACK DELTA
  37. SELECT
    1. Ограничения сущностей
    2. Ограничения ключевых слов
    3. Ограничения соединений
    4. Другие ограничения
  38. SELECT FROM INFORMATION_SCHEMA
  39. TRUNCATE ACTUAL
    1. Ограничения выполнения
    2. Ограничения сущностей
    3. Ограничения WHERE
    4. Другие ограничения
  40. TRUNCATE_HISTORY
  41. UPSERT VALUES
    1. Ограничения выполнения
    2. Ограничения СУБД
    3. Ограничения сущностей
    4. Ограничения ключевых слов

ALTER TABLE ADD COLUMN

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

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

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

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

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

ALTER TABLE DROP COLUMN

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

  • Запрос доступен для СУБД ADB, ADP и ADQM.
  • Выполнение запроса недоступно, если есть незавершенная операция записи или установлен запрет на изменение сущностей.

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

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

ALTER TABLE RENAME

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

  • Запрос доступен для СУБД ADB, ADP и ADQM.
  • Выполнение запроса недоступно, если есть незавершенная операция записи или установлен запрет на изменение сущностей.

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

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

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

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

ALTER TABLE RENAME COLUMN

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

  • Запрос доступен для СУБД ADB, ADP и ADQM.
  • Выполнение запроса недоступно, если есть незавершенная операция записи или установлен запрет на изменение сущностей.

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

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

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

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

ALTER VIEW

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

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

  • Псевдонимы (алиасы) в SELECT-подзапросе должны соответствовать требованиям, описанным в разделе Соглашения об именах.

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

BEGIN DELTA

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

CHECK_DATA

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

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

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

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

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

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

CHECK_SUM

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

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

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

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

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

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

CHECK_SUM_SNAPSHOT

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

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

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

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

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

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

COMMIT DELTA

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

CREATE DATABASE

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

CREATE DOWNLOAD EXTERNAL TABLE

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

CREATE MATERIALIZED VIEW

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

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

  • Данные материализованных представлений могут размещаться в СУБД ADP, ADQM и ADG.
  • Источником данных для материализованного представления может быть СУБД ADB или ADP.

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

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

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

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

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

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

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

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

CREATE READABLE EXTERNAL TABLE

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

CREATE TABLE

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

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

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

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

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

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

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

CREATE UPLOAD EXTERNAL TABLE

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

CREATE VIEW

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

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

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

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

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

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

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

CREATE WRITABLE EXTERNAL TABLE

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

DELETE

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

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

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

  • Запрос доступен только для логических таблиц и standalone-таблиц.
  • Удаление записей из standalone-таблиц доступно для СУБД ADB и ADP.

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

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

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

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

DENY_CHANGES

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

DROP DATABASE

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

DROP MATERIALIZED VIEW

DROP TABLE

DROP_VIEW

ERASE DELTA

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

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

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

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

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

ERASE_WRITE_OPERATION

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

GET_CHANGES

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

GET_ENTITY_STATISTICS

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

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

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

  • Расчет значений недоступен для сущностей, размещенных в СУБД ADG, а также для readable- и writable-таблиц.
  • Значения обновляются только при закрытии дельты с номером ROWS_COUNT_DELTA + 1. Если номер последней закрытой дельты стал меньше ROWS_COUNT_DELTA (например, после выполнения ERASE DELTA), значения перестают обновляться до момента закрытия дельты с номером ROWS_COUNT_DELTA + 1.
  • После обнуления статистики значения остаются равными null до момента закрытия ближайшей дельты.
  • Значения для материализованного представления рассчитывается по исходному запросу представления, а не его текущему состоянию. Поэтому значения могут отличаться от фактических, если представление не успело синхронизироваться с источником.

GET_WRITE_OPERATIONS

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

INSERT INTO download external table

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

INSERT SELECT FROM upload_external_table

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

INSERT SELECT

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

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

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

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

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

  • Типы вставляемых значений должны соответствовать типам данных столбцов в таблице-приемнике.
  • Ключевое слово RETRY недоступно в запросах к standalone-таблицам.

INSERT VALUES

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

RESET_STATISTICS

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

RESUME_WRITE_OPERATION

  • Запрос не возобновляет обработку операций со статусом «Выполняется», запущенных запросами обновления данных.

ROLLBACK DELTA

  • Выполнение запроса недоступно, если есть незавершенные операции записи или другой незавершенный запрос ROLLBACK DELTA.
  • После запуска запроса дельту невозможно закрыть, даже если запрос вернул ошибку.
  • Запрос не отменяет незавершенные операции записи, запущенные запросами обновления данных, и операции записи, выполненные до дельты.

SELECT

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

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

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

  • Ключевое слово LISTAGG доступно в запросах только к СУБД ADB и ADP.
  • Ключевое слово ESTIMATE_ONLY возвращает план выполнения запроса только для СУБД ADB и ADP.
  • Ключевое слово OFFSET без ограничения количества строк не поддерживается.
  • FOR SYSTEM_TIME:
    • Ключевое слово недоступно в SELECT-подзапросах в составе запросов на создание и изменение логических и материализованных представлений, а также в запросах и подзапросах к обобщенным табличным выражениям.
    • Запросы к standalone-таблицам с выражениями FOR SYSTEM_TIME STARTED IN и FOR SYSTEM_TIME FINISHED IN всегда возвращают пустой результат; другие значения FOR SYSTEM_TIME в таких запросах игнорируются.
    • Выражение FOR SYSTEM_TIME AS OF LATEST_UNCOMMITTED_DELTA недоступно в запросах к логическим и материализованным представлениям.
    • Выражения FOR SYSTEM_TIME STARTED IN и FOR SYSTEM_TIME FINISHED IN недоступны в запросе к логическому представлению, если запрос предназначен для СУБД ADQM или в представлении используется ключевое слово ORDER BY.
  • Ключевое слово ORDER BY недоступно в SELECT-подзапросе в составе CREATE MATERIALIZED VIEW.
  • WITH (табличные выражения):
    • Табличные выражения доступны в запросах только к СУБД ADB и ADP.
    • Недоступны рекурсивные и материализованные табличные выражения.
    • В табличных выражениях не поддерживаются операторы, изменяющих данные (INSERT, UPSERT и DELETE), и ключевое слово DATASOURCE_TYPE.

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

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

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

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

SELECT FROM INFORMATION_SCHEMA

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

TRUNCATE ACTUAL

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

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

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

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

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

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

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

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

TRUNCATE_HISTORY

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

UPSERT VALUES

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

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

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

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

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

  • Вставка данных в логические и материализованные представления недоступна.

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

  • Ключевое слово RETRY недоступно в запросах к standalone-таблицам.