> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная таблица с записями журнала запросов текущего пользователя.

# system.user_query_log

<div id="description">
  ## Описание
</div>

Показывает текущему пользователю записи из его журнала запросов. Читает таблицу журнала запросов, заданную настройками сервера `query_log.database` и `query_log.table` (по умолчанию — `system.query_log`), и возвращает только строки, в которых пользователь-инициатор равен `currentUser()` (если задан `initial_user`, используется он, иначе — `user`).

В отличие от самой таблицы журнала запросов, `system.user_query_log` можно читать без каких-либо привилегий, поэтому пользователи могут просматривать собственные запросы, не получая доступа к запросам других пользователей.

Это поддерживается только при локальном хранении журнала запросов. Если для `query_log.engine` задан `Distributed` или другой движок, который делегирует чтение другому серверу, `system.user_query_log` отказывается читать из такой таблицы и генерирует исключение, поскольку требуемую проверку доступа невозможно обеспечить через границу серверов, взаимодействующих по протоколу ClickHouse. В этом случае отключите таблицу, установив `query_log.enable_user_query_log = 0`.

Таблицу можно отключить настройкой сервера `query_log.enable_user_query_log`. Если журнал запросов не настроен или его таблица ещё не создана, `system.user_query_log` будет пустой.

Условия для партиции и столбцов ключа журнала запросов (`event_date`, `event_time`, `query_start_time`, `query_id`, `type` и аналогичных скалярных столбцов), сравниваемые с константами, передаются в базовую таблицу журнала запросов, поэтому при обычных обращениях, таких как в приведённом ниже примере, сохраняется отсечение партиций и не выполняется сканирование всего хранимого журнала.

<Warning>
  Если таблица с именем `system.user_query_log` была создана до обновления до версии ClickHouse, в которой появилась эта таблица, сервер не запустится, пока существующая таблица не будет переименована или удалена либо для `query_log.enable_user_query_log` не будет установлено значение `0`.
</Warning>

<div id="columns">
  ## Столбцы
</div>

* `hostname` ([String](/ru/reference/data-types/string)) — Имя хоста сервера, выполняющего запрос.
* `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/ru/reference/data-types/enum)) — Тип события, произошедшего при выполнении запроса. Значения: `QueryStart` — успешное начало выполнения запроса, `QueryFinish` — успешное завершение выполнения запроса, `ExceptionBeforeStart` — исключение до начала выполнения запроса, `ExceptionWhileProcessing` — исключение во время выполнения запроса.
* `event_date` ([Date](/ru/reference/data-types/date)) — Дата начала запроса.
* `event_time` ([DateTime](/ru/reference/data-types/datetime)) — Время начала запроса.
* `event_time_microseconds` ([DateTime64(6)](/ru/reference/data-types/datetime64)) — Время начала запроса с точностью до микросекунд.
* `query_start_time` ([DateTime](/ru/reference/data-types/datetime)) — Время начала выполнения запроса.
* `query_start_time_microseconds` ([DateTime64(6)](/ru/reference/data-types/datetime64)) — Время начала выполнения запроса с точностью до микросекунд.
* `query_duration_ms` ([UInt64](/ru/reference/data-types/int-uint)) — Длительность выполнения запроса в миллисекундах.
* `read_rows` ([UInt64](/ru/reference/data-types/int-uint)) — Общее количество строк, прочитанных из всех таблиц и табличных функций, задействованных в запросе. Включает обычные подзапросы, а также подзапросы для IN и JOIN. Для распределённых запросов read\_rows включает общее количество строк, прочитанных на всех репликах. Каждая реплика отправляет своё значение read\_rows, а сервер-инициатор запроса суммирует полученные значения с локальным. Объёмы кэша не влияют на это значение.
* `read_bytes` ([UInt64](/ru/reference/data-types/int-uint)) — Общее количество байтов, прочитанных из всех таблиц и табличных функций, задействованных в запросе. Включает обычные подзапросы, а также подзапросы для IN и JOIN. Для распределённых запросов read\_bytes включает общее количество строк, прочитанных на всех репликах. Каждая реплика отправляет своё значение read\_bytes, а сервер-инициатор запроса суммирует полученные значения с локальным. Объёмы кэша не влияют на это значение.
* `written_rows` ([UInt64](/ru/reference/data-types/int-uint)) — Количество строк, записанных запросом, включая строки, записанные последующими вставками, запускаемыми конвейером, например подключёнными materialized views. Для синхронной вставки эти последующие строки регистрируются в записи `query_kind` = `Insert`; для асинхронной вставки они регистрируются в записи `query_kind` = `AsyncInsertFlush`, тогда как запись `Insert`, видимая клиенту, содержит только строки, принятые от клиента. Для запросов, не записывающих строки, значение равно 0.
* `written_bytes` ([UInt64](/ru/reference/data-types/int-uint)) — Количество байтов, записанных запросом (без сжатия), включая байты, записанные последующими вставками, запускаемыми конвейером, например подключёнными materialized views. Для синхронной вставки эти последующие байты регистрируются в записи `query_kind` = `Insert`; для асинхронной вставки они регистрируются в записи `query_kind` = `AsyncInsertFlush`, тогда как запись `Insert`, видимая клиенту, содержит только байты, принятые от клиента. Для запросов, не записывающих данные, значение равно 0.
* `result_rows` ([UInt64](/ru/reference/data-types/int-uint)) — Количество строк в результате SELECT-запроса или количество строк, записанных вставкой. Для синхронной вставки сюда входят строки, записанные последующими вставками, запускаемыми конвейером (например, подключёнными materialized views), в записи `query_kind` = `Insert`; для асинхронной вставки эти последующие строки регистрируются в записи `query_kind` = `AsyncInsertFlush`, тогда как запись `Insert`, видимая клиенту, содержит только строки, принятые от клиента.
* `result_bytes` ([UInt64](/ru/reference/data-types/int-uint)) — Объём оперативной памяти в байтах, используемый для хранения результата запроса.
* `memory_usage` ([UInt64](/ru/reference/data-types/int-uint)) — Потребление памяти запросом.
* `current_database` ([String](/ru/reference/data-types/string)) — Имя текущей базы данных.
* `query` ([String](/ru/reference/data-types/string)) — Строка запроса.
* `formatted_query` ([String](/ru/reference/data-types/string)) — Форматированная строка запроса.
* `normalized_query_hash` ([UInt64](/ru/reference/data-types/int-uint)) — Числовое хеш-значение, одинаковое, например, для запросов, различающихся только значениями литералов.
* `query_kind` ([String](/ru/reference/data-types/string)) — Тип запроса.
* `databases` ([Array(String)](/ru/reference/data-types/array)) — Имена баз данных, указанных в запросе.
* `tables` ([Array(String)](/ru/reference/data-types/array)) — Имена таблиц, указанных в запросе.
* `columns` ([Array(String)](/ru/reference/data-types/array)) — Имена столбцов, указанных в запросе.
* `partitions` ([Array(String)](/ru/reference/data-types/array)) — Имена партиций, указанных в запросе.
* `projections` ([Array(String)](/ru/reference/data-types/array)) — Имена проекций, использованных при выполнении запроса.
* `views` ([Array(String)](/ru/reference/data-types/array)) — Имена (материализованных или живых) представлений, указанных в запросе.
* `exception_code` ([Int32](/ru/reference/data-types/int-uint)) — Код исключения.
* `exception` ([String](/ru/reference/data-types/string)) — Сообщение исключения.
* `stack_trace` ([String](/ru/reference/data-types/string)) — Трассировка стека. Пустая строка, если запрос успешно выполнен.
* `is_initial_query` ([UInt8](/ru/reference/data-types/int-uint)) — Тип запроса. Возможные значения: 1 — запрос инициирован клиентом, 0 — запрос инициирован другим запросом в рамках выполнения распределённого запроса.
* `connection_address` ([IPv6](/ru/reference/data-types/ipv6)) — IP-адрес клиента, с которого установлено соединение. При подключении через прокси это адрес прокси.
* `connection_port` ([UInt16](/ru/reference/data-types/int-uint)) — Порт клиента, с которого установлено соединение. При подключении через прокси это порт прокси.
* `user` ([String](/ru/reference/data-types/string)) — Имя пользователя, инициировавшего текущий запрос.
* `query_id` ([String](/ru/reference/data-types/string)) — ID запроса.
* `address` ([IPv6](/ru/reference/data-types/ipv6)) — IP-адрес, с которого выполнен запрос. При подключении через прокси и включённой настройке `auth_use_forwarded_address` это адрес клиента, а не прокси.
* `port` ([UInt16](/ru/reference/data-types/int-uint)) — Порт клиента, с которого выполнен запрос. При подключении через прокси и включённой настройке `auth_use_forwarded_address` это порт клиента, а не прокси.
* `initial_user` ([String](/ru/reference/data-types/string)) — Имя пользователя, выполнившего исходный запрос (для выполнения распределённого запроса).
* `initial_query_id` ([String](/ru/reference/data-types/string)) — ID исходного запроса (для выполнения распределённого запроса).
* `initial_address` ([IPv6](/ru/reference/data-types/ipv6)) — IP-адрес, с которого запущен родительский запрос.
* `initial_port` ([UInt16](/ru/reference/data-types/int-uint)) — Порт клиента, с которого выполнен родительский запрос.
* `initial_query_start_time` ([DateTime](/ru/reference/data-types/datetime)) — Время запуска исходного запроса (для выполнения распределённого запроса).
* `initial_query_start_time_microseconds` ([DateTime64(6)](/ru/reference/data-types/datetime64)) — Время запуска исходного запроса с точностью до микросекунд (для выполнения распределённого запроса).
* `authenticated_user` ([String](/ru/reference/data-types/string)) — Имя пользователя, прошедшего аутентификацию в сеансе.
* `interface` ([UInt8](/ru/reference/data-types/int-uint)) — Интерфейс, через который был инициирован запрос. Возможные значения: 1 — TCP, 2 — HTTP.
* `is_secure` ([UInt8](/ru/reference/data-types/int-uint)) — Флаг, указывающий, был ли запрос выполнен через защищённый интерфейс
* `os_user` ([String](/ru/reference/data-types/string)) — Имя пользователя операционной системы, запускающего clickhouse-client.
* `client_hostname` ([String](/ru/reference/data-types/string)) — Имя хоста клиентской машины, на которой запущен clickhouse-client или другой TCP-клиент.
* `client_name` ([String](/ru/reference/data-types/string)) — Имя clickhouse-client или другого TCP-клиента.
* `client_agent` ([String](/ru/reference/data-types/string)) — Агент ИИ для написания кода, вызвавший клиент (например, `claude-code`, `cursor`); определяется по переменным окружения. Пустое значение, если агент не обнаружен.
* `client_revision` ([UInt32](/ru/reference/data-types/int-uint)) — Ревизия clickhouse-client или другого TCP-клиента.
* `client_version_major` ([UInt32](/ru/reference/data-types/int-uint)) — Мажорная версия clickhouse-client или другого TCP-клиента.
* `client_version_minor` ([UInt32](/ru/reference/data-types/int-uint)) — Минорная версия clickhouse-client или другого TCP-клиента.
* `client_version_patch` ([UInt32](/ru/reference/data-types/int-uint)) — Компонент патча версии clickhouse-client или другого TCP-клиента.
* `script_query_number` ([UInt32](/ru/reference/data-types/int-uint)) — Номер запроса в скрипте с несколькими запросами, выполняемом через clickhouse-client.
* `script_line_number` ([UInt32](/ru/reference/data-types/int-uint)) — Номер строки, с которой начинается запрос в скрипте с несколькими запросами, выполняемом через clickhouse-client.
* `http_method` ([UInt8](/ru/reference/data-types/int-uint)) — HTTP-метод, инициировавший запрос. Возможные значения: 0 — запрос запущен через TCP-интерфейс, 1 — использован метод GET, 2 — использован метод POST, 4 — использован метод PUT, 5 — использован метод DELETE, 6 — использован метод HEAD.
* `http_user_agent` ([String](/ru/reference/data-types/string)) — HTTP-заголовок UserAgent, переданный в HTTP-запросе.
* `http_referer` ([String](/ru/reference/data-types/string)) — HTTP-заголовок Referer, переданный в HTTP-запросе (содержит полный или частичный адрес страницы, отправившей запрос).
* `forwarded_for` ([String](/ru/reference/data-types/string)) — HTTP-заголовок X-Forwarded-For, переданный в HTTP-запросе.
* `quota_key` ([String](/ru/reference/data-types/string)) — Ключ квоты, указанный в настройке quotas (см. keyed).
* `distributed_depth` ([UInt64](/ru/reference/data-types/int-uint)) — Количество перенаправлений запроса между серверами.
* `revision` ([UInt32](/ru/reference/data-types/int-uint)) — Ревизия ClickHouse.
* `http_handler_name` ([String](/ru/reference/data-types/string)) — Имя определённого в SQL HTTP-обработчика (CREATE HANDLER), вызвавшего запрос. Пустое значение, если запрос не был вызван через такой обработчик.
* `http_request_url` ([String](/ru/reference/data-types/string)) — Путь HTTP-запроса (без строки запроса), вызвавшего запрос. Строка запроса исключается, чтобы конфиденциальные параметры запроса не сохранялись. Пустое значение для запросов, не использующих HTTP.
* `log_comment` ([String](/ru/reference/data-types/string)) — Комментарий Log. Его можно задать произвольной строкой длиной не более max\_query\_size. Если он не задан, возвращается пустая строка.
* `thread_ids` ([Array(UInt64)](/ru/reference/data-types/array)) — Идентификаторы потоков, участвующих в выполнении запроса. Эти потоки могли выполняться не одновременно.
* `peak_threads_usage` ([UInt64](/ru/reference/data-types/int-uint)) — Максимальное количество потоков, одновременно выполняющих запрос.
* `ProfileEvents` ([Map(String, UInt64)](/ru/reference/data-types/map)) — ProfileEvents, отражающие различные метрики. Их описание приведено в таблице system.events.
* `Settings` ([Map(String, String)](/ru/reference/data-types/map)) — Settings, изменённые при выполнении запроса клиентом. Чтобы включить журналирование изменений настроек, задайте параметру log\_query\_settings значение 1.
* `used_aggregate_functions` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена агрегатных функций, использованных при выполнении запроса.
* `used_aggregate_function_combinators` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена комбинаторов агрегатных функций, использованных при выполнении запроса.
* `used_database_engines` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена движков баз данных, использованных при выполнении запроса.
* `used_data_type_families` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена семейств типов данных, использованных при выполнении запроса.
* `used_dictionaries` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена словарей, использованных при выполнении запроса.
* `used_formats` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена форматов, использованных при выполнении запроса.
* `used_functions` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена функций, использованных при выполнении запроса.
* `used_storages` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена хранилищ, использованных при выполнении запроса.
* `used_table_functions` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена табличных функций, использованных при выполнении запроса.
* `used_executable_user_defined_functions` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена исполняемых пользовательских функций, использованных при выполнении запроса.
* `used_sql_user_defined_functions` ([Array(String)](/ru/reference/data-types/array)) — Канонические имена пользовательских функций SQL, использованных при выполнении запроса.
* `used_row_policies` ([Array(String)](/ru/reference/data-types/array)) — Список имён политик строк, использованных при выполнении запроса.
* `used_privileges` ([Array(String)](/ru/reference/data-types/array)) — Привилегии, успешно проверенные при выполнении запроса.
* `missing_privileges` ([Array(String)](/ru/reference/data-types/array)) — Привилегии, отсутствующие при выполнении запроса.
* `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/ru/reference/data-types/tuple)) — Идентификатор транзакции, в рамках которой был выполнен этот запрос.
* `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/ru/reference/data-types/enum)) — Использование кэша запросов при выполнении запроса. Значения: 'Unknown' = статус неизвестен, 'None' = результат запроса не был ни записан в кэш результатов запросов, ни прочитан из него, 'Write' = результат запроса был записан в кэш результатов запросов, 'Read' = результат запроса был прочитан из кэша результатов запросов.
* `asynchronous_read_counters` ([Map(String, UInt64)](/ru/reference/data-types/map)) — Метрики асинхронного чтения.
* `is_internal` ([UInt8](/ru/reference/data-types/int-uint)) — Указывает, является ли запрос вспомогательным и выполняется ли он внутри системы.

**Псевдонимы:**

* `ProfileEvents.Names` — псевдоним для `mapKeys(ProfileEvents)`.
* `ProfileEvents.Values` — псевдоним для `mapValues(ProfileEvents)`.
* `Settings.Names` — псевдоним для `mapKeys(Settings)`.
* `Settings.Values` — псевдоним для `mapValues(Settings)`.

<div id="example">
  ## Пример
</div>

```sql theme={null}
SELECT
    query_start_time,
    query_duration_ms,
    query
FROM system.user_query_log
ORDER BY query_start_time DESC
LIMIT 10;
```
