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