Описание
Содержит идентификаторы запросов, выполненных в текущем сеансе, в порядке выполнения. Используйте эту таблицу, чтобы найти «запросы, которые я только что выполнил» вsystem.query_log, не задавая query_id на стороне клиента и не помечая запросы через log_comment.
Содержимое ограничено рамками сеанса: каждый сеанс видит только свою историю, запросы других сеансов в ней никогда не появляются.
Идентификатор запроса записывается в момент запуска запроса, поэтому:
- Выполняющийся в данный момент запрос уже виден, когда он читает данные из этой таблицы.
- Запросы, завершившиеся с ошибкой, также записываются — получение идентификатора только что упавшего запроса является одним из основных сценариев использования.
Область действия сеанса в зависимости от интерфейса
- Нативные/TCP-соединения (
clickhouse-client, драйверы) иclickhouse-local: сеанс совпадает с соединением, поэтому история накапливается по всем запросам этого соединения, включая вызовы клиента с несколькими запросами. - HTTP с параметром
session_id: история сохраняется между запросами, которые передают один и тот жеsession_id, пока сеанс не истечёт. - HTTP без
session_id: каждый запрос — это отдельный сеанс, поэтому таблица всегда показывает только текущий запрос.
Размер истории
История представляет собой кольцевой буфер, размер которого ограничен настройкой сеансаsession_query_ids_history_size (по умолчанию 1000); при превышении этого размера первыми вытесняются самые старые записи. Значение 0 отключает ведение истории; записи, сделанные ранее, остаются в таблице до их удаления командой TRUNCATE или вытеснения.
Настройка считывается в начале выполнения запроса, до того как запрос будет разобран, поэтому секция SETTINGS самого запроса не влияет на то, будет ли этот запрос записан; используйте вместо этого SET, URL-параметр HTTP-запроса или профиль настроек.
TRUNCATE
TRUNCATE TABLE system.session_query_ids очищает историю текущего сеанса. Счётчик последовательности при этом не сбрасывается, поэтому значения sequence_number в рамках одного сеанса никогда не используются повторно.
Столбцы
sequence_number(UInt64) — позиция запроса в сеансе, монотонно возрастает.query_id(String) — идентификатор запроса; может использоваться для JOIN сsystem.query_log.
Пример
Выполните несколько запросов, а затем получите сведения о них изsystem.query_log:
system.query_log:
Смотрите также
- system.query_log — сведения о выполненных запросах.
- настройка
session_query_ids_history_size.