Системные представления (INFORMATION_SCHEMA)

Содержание раздела
  1. Представление schemata
  2. Представление tables
  3. Представление columns
  4. Представление table_constraints
  5. Представление key_column_usage
  6. Представление statistics
  7. Взаимосвязь системных представлений

Набор системных представлений (INFORMATION_SCHEMA) предоставляет доступ к метаданным логической схемы данных и содержит следующие элементы:

Набор системных представлений и их свойств фиксирован и недоступен для изменения.

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

Представление schemata

Системное представление schemata содержит список логических баз данных окружения.

По каждой логической базе данных доступна следующая информация:

  • catalog_name — имя каталога, в котором размещается логическая база данных. Значение по умолчанию — public;
  • schema_name — имя логической базы данных.

Представление tables

Системное представление tables содержит список логических сущностей окружения.

По каждой сущности доступна следующая информация:

  • table_catalog — имя каталога, в котором размещается таблица или представление. Значение по умолчанию — public;
  • table_schema — имя логической базы данных, к которой относится таблица или представление;
  • table_name — имя логической сущности;
  • table_type — тип сущности. Возможные значения см. в таблице ниже;
  • table_datasource_type — список датасорсов, в которых размещены данные таблицы или материализованного представления. Для логических представлений поле остается пустым;
  • definition — определение типа логической сущности. Возможные значения см. в таблице ниже.

В таблице ниже описаны возможные комбинации значений table_type и definition в системном представлении tables.

Значения table_type Значения definition
BASE TABLEлогическая таблица или прокси-таблица * TABLE.DEFAULT — обычная логическая таблица,
* TABLE.PROXYпостоянная прокси-таблица,
* TABLE.PROXY.TEMPORARYвременная прокси-таблица,
* TABLE.PARTITIONпартиция,
* TABLE.PARTITIONEDпартиционированная таблица
MATERIALIZED VIEW — материализованное представление MATERIALIZED VIEW.DEFAULT
VIEW — логическое представление * VIEW.DEFAULT — обычное логическое представление (не относящее к категории простых),
* VIEW.PLAIN.FILTERED — простое представление с условием,
* VIEW.PLAIN.UNFILTERED — простое представление без условия
READABLE EXTERNAL TABLEвнешняя readable-таблица * READABLE EXTERNAL TABLE.CORE:<datasource_name> — таблица для работы со standalone-таблицей, расположенной в датасорсе datasource_name;
* READABLE EXTERNAL TABLE.KAFKA — таблица для загрузки данных из брокера сообщений Kafka
WRITABLE EXTERNAL TABLEвнешняя writable-таблица WRITABLE EXTERNAL TABLE.CORE:<datasource_name> — таблица для работы со standalone-таблицей, расположенной в датасорсе datasource_name

Представление columns

Системное представление columns содержит список столбцов таблиц и представлений окружения.

По каждому столбцу доступна следующая информация:

  • table_catalog — имя каталога, в котором размещается таблица или представление. Значение по умолчанию — public;
  • table_schema — имя логической базы данных, к которой относится таблица или представление;
  • table_name — имя таблицы или представления, к которому относится столбец;
  • column_name — имя столбца, по которому предоставлена информация;
  • is_nullable — признак того, может ли значение столбца иметь пустое значение (null). Возможные значения:
    • YES — столбец может содержать пустое значение;
    • NO — столбец должен содержать непустое значение;
  • ordinal_position — порядковый номер столбца в таблице или представлении (нумерация начинается с 1);
  • character_maximum_length — максимально допустимое количество символов (для строковых значений);
  • datetime_precision — степень отображаемой точности значений типа TIMESTAMP. Возможное значение: от 0 (точность до секунд) до 6 (точность до микросекунд).
  • data_type — тип данных столбца. Возможные значения см. в разделе Логические типы данных.

Представление table_constraints

Системное представление table_constraints содержит список ограничений логических таблиц и представлений окружения.

По каждому ограничению доступна следующая информация:

  • constraint_catalog — имя каталога, в котором размещается таблица или представление с ограничением. Значение по умолчанию — public;
  • constraint_schema — имя логической базы данных, к которой относится таблица или представление с ограничением;
  • constraint_name — имя ограничения;
  • table_schema — имя логической базы данных, к которой относится таблица или представление с ограничением;
  • table_name — имя таблицы или представления, к которому относится ограничение;
  • constraint_type — тип ограничения. Возможные значения:
    • primary key — первичный ключ,
    • sharding key — ключ шардирования.

Представление key_column_usage

Системное представление key_column_usage содержит список столбцов окружения, с которыми связаны какие-либо ограничения.

По каждому столбцу с ограничением доступна следующая информация:

  • constraint_catalog — имя каталога, в котором размещается таблица или представление с ограничением. Значение по умолчанию — public;
  • constraint_schema — имя логической базы данных, к которой относится таблица или представление с ограничением;
  • constraint_name — имя ограничения;
  • table_schema — имя логической базы данных, к которой относится таблица или представление с ограничением;
  • table_name — имя таблицы или представления, к которому относится ограничение;
  • column_name — имя столбца, на который накладывается ограничение;
  • ordinal_position — порядковый номер поля в ключе (нумерация начинается с 1).

Представление statistics

Системное представление statistics содержит информацию о количестве записей в тех логических сущностях, для которых выполняются условия:

Альтернативно информация о количестве записей доступна в ответе GET_ENTITY_STATISTICS.

По каждой логической сущности доступна информация:

  • table_catalog — имя каталога, которому принадлежит сущность (по умолчанию — public);
  • table_schema — имя логической БД, которой принадлежит сущность;
  • table_name — имя сущности;
  • table_type — тип сущности. Возможные значения см. в таблице выше;
  • rows_count — количество записей в сущности по состоянию на дельту rows_count_delta;
  • rows_count_delta — закрытая дельта, на которую рассчитано значение rows_count.

Взаимосвязь системных представлений

На рисунке ниже показана взаимосвязь системных представлений.

Взаимосвязь системных представлений