Работа с метаданными

Работать с метаданными в Tengri можно разными способами.

Системные таблицы

Администратору доступны для просмотра следующие системные таблицы.

Таблица system.schemas

Метаданные схем.

  • catalog_name — имя каталога

  • namespace — имя схемы

Таблица system.tables

Метаданные таблиц.

  • catalog_name — имя каталога

  • table_namespace — схема таблицы

  • table_name — имя таблицы

  • metadata_location — путь к метаданным таблицы

  • previous_metadata_location — путь к метаданным предыдущей версии таблицы

Таблица system.query_log

История запросов пользователей.

  • id — идентификатор запроса

  • username — имя пользователя, выполняющего запрос

  • query — текст запроса

  • status — статус запроса

  • started_at — время начала выполнения запроса

  • finished_at — время окончания выполнения запроса

  • duration_ms — длительность выполнения запроса

  • error_message — сообщение об ошибке при выполнении запроса

  • worker_pool — имя вычислительного пула, обрабатывающего запрос

  • worker_id —  идентификатор воркера (легковесного вычислителя), обрабатывающего запрос

  • agent_id —  идентификатор агента (хоста для вычислителей), обрабатывающего запрос

  • session_id — идентификатор сессии

  • прочее

Таблица system.users

Метаданные пользователей.

  • id — идентификатор пользователя

  • name — имя пользователя

  • default_worker_pool — вычислительный пул пользователя по умолчанию

  • auth_method — тип авторизации пользователя

  • query_timeout — таймаут для запросов пользователя

  • spill_size — размер спилла (объема места на диске для сохранения промежуточных результатов запроса) для пользователя

  • прочее

Таблица system.worker_pools

Метаданные вычислительных пулов.

  • id — идентификатор пула

  • name — имя пула

  • worker_size_id — метка размера пула

  • max_worker_count — максимальное количество вычислителей для пула

  • worker_idle_ttl_seconds — время простоя вычислителей для пула

  • scaling_strategy_id — стратегия масштабирования для пула

Примеры использования

Выведем все запросы пользователя tengri_user, сделанные им в период между 21 и 23 декабря 2025 года, с их длительностью, временем начала, идентификатором сессии и статусом:

SELECT
    query,
    duration_ms,
    started_at,
    session_id,
    status
FROM system.query_log
WHERE username = 'tengri_user'
    AND started_at BETWEEN '2025-12-21' AND '2025-12-23'
+-------------------+-------------+----------------------------+-----------------------------------------------------+---------+
| query             | duration_ms | started_at                 | session_id                                          | status  |
+-------------------+-------------+----------------------------+-----------------------------------------------------+---------+
| select * from ... | 2526        | 2026-04-13T16:21:31.686087 | f77b9a65-588d-46de-bdcb-07d1cf1f3ba1@localhost:5433 | success |
+-------------------+-------------+----------------------------+-----------------------------------------------------+---------+
| ...               | ...         | ...                        | ...                                                 | ...     |
+-------------------+-------------+----------------------------+-----------------------------------------------------+---------+

Выведем информацию обо всех вычислительных пулах размера S:

SELECT * FROM system.worker_pools
WHERE worker_size_id = 'S'
+----+-----------+----------------+------------------+-------------------------+---------------------+
| id | name      | worker_size_id | max_worker_count | worker_idle_ttl_seconds | scaling_strategy_id |
+----+-----------+----------------+------------------+-------------------------+---------------------+
| 1  | default   | S              | 10               | 5                       | STD                 |
+----+-----------+----------------+------------------+-------------------------+---------------------+
| 5  | compute_s | S              | 10               | 5                       | STD                 |
+----+-----------+----------------+------------------+-------------------------+---------------------+

Получение идентификатора текущей сессии

Чтобы получить идентификатор текущей сессии, используйте функцию current_session().

SELECT current_session();
+-----------------------------------------------------+
| current_session                                     |
+-----------------------------------------------------+
| f77b9a65-588d-46de-bdcb-07d1cf1f3ba1@localhost:5433 |
+-----------------------------------------------------+

Выражения SHOW

Метаданные о различных объектах можно также получить с помощью выражений SHOW:

  • SHOW TABLES — метаданные таблиц

  • SHOW COLUMNS — метаданные колонок

  • SHOW USERS — метаданные пользователей

  • SHOW WORKER POOLS — метаданные вычислительных пулов

  • SHOW WORKER POOL — метаданные текущего вычислительного пула

Системные таблицы PostgreSQL

Метаданные доступны и через системные таблицы PostgreSQL в схеме pg_catalog:

  • pg_catalog.pg_namespace — метаданные схем

  • pg_catalog.pg_class — метаданные таблиц

  • pg_catalog.pg_attribute — метаданные колонок

  • pg_catalog.pg_type — метаданные типов данных

Полезные ссылки