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

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

Набор системных представлений (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.PARTITION — партиция,
* TABLE.PARTITIONED — партиционированная таблица
MATERIALIZED VIEWматериализованное представление MATERIALIZED VIEW.DEFAULT
VIEWлогическое представление VIEW.DEFAULT
READABLE EXTERNAL TABLEвнешняя readable-таблица * READABLE EXTERNAL TABLE.CORE:<datasource_alias> — таблица для работы со standalone-таблицей, расположенной в датасорсе <datasource_alias>,
* READABLE EXTERNAL TABLE.KAFKA — таблица для загрузки данных из брокера сообщений Kafka
WRITABLE EXTERNAL TABLEвнешняя writable-таблица WRITABLE EXTERNAL TABLE.CORE:<datasource_alias> — таблица для работы со standalone-таблицей, расположенной в датасорсе <datasource_alias>

Представление 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).

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

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

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