system.query_log
Содержит информацию о выполняемых запросах, например, время начала обработки, продолжительность обработки, сообщения об ошибках.
Таблица не содержит входных данных для запросов INSERT
.
Настойки логгирования можно изменить в секции серверной конфигурации query_log.
Можно отключить логгирование настройкой log_queries = 0. По-возможности, не отключайте логгирование, поскольку информация из таблицы важна при решении проблем.
Период сброса данных в таблицу задаётся параметром flush_interval_milliseconds
в конфигурационной секции query_log. Чтобы принудительно записать логи из буффера памяти в таблицу, используйте запрос SYSTEM FLUSH LOGS.
ClickHouse не удаляет данные из таблица автоматически. Смотрите Введение.
Таблица system.query_log
содержит информацию о двух видах запросов:
- Первоначальные запросы, которые были выполнены непосредственно клиентом.
- Дочерние запросы, инициированные другими запросами (для выполнения распределенных запросов). Для дочерних запросов информация о первоначальном запросе содержится в столбцах
initial_*
.
В зависимости от статуса (столбец type
) каждый запрос создаёт одну или две строки в таблице query_log
:
- Если запрос выполнен успешно, создаются два события типа
QueryStart
иQueryFinish
. - Если во время обработки запроса возникла ошибка, создаются два события с типами
QueryStart
иExceptionWhileProcessing
. - Если ошибка произошла ещё до запуска запроса, создается одно событие с типом
ExceptionBeforeStart
.
Чтобы уменьшить количество запросов, регистрирующихся в таблице query_log
, вы можете использовать настройку log_queries_probability.
Чтобы регистрировать отформатированные запросы в столбце formatted_query
, вы можете использовать настройку log_formatted_queries.
Столбцы:
type
(Enum8) — тип события, произошедшего при выполнении запроса. Значения:'QueryStart' = 1
— успешное начало выполнения запроса.'QueryFinish' = 2
— успешное завершение выполнения запроса.'ExceptionBeforeStart' = 3
— исключение перед началом обработки запроса.'ExceptionWhileProcessing' = 4
— исключение во время обработки запроса.
event_date
(Date) — дата начала запроса.event_time
(DateTime) — время начала запроса.event_time_microseconds
(DateTime) — время начала запроса с точностью до микросекунд.query_start_time
(DateTime) — время начала обработки запроса.query_start_time_microseconds
(DateTime64) — время начала обработки запроса с точностью до микросекунд.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) — количество записанных строк для запросовINSERT
. Для других запросов, значение столбца 0.written_bytes
(UInt64) — объём записанных данных в байтах для запросовINSERT
. Для других запросов, значение столбца 0.result_rows
(UInt64) — количество строк в результате запросаSELECT
или количество строк в запросеINSERT
.result_bytes
(UInt64) — объём RAM в байтах, использованный для хранения результата запроса.memory_usage
(UInt64) — потребление RAM запросом.current_database
(String) — имя текущей базы данных.query
(String) — текст запроса.formatted_query
(String) — текст отформатированного запроса.normalized_query_hash
(UInt64) — идентичная хэш-сумма без значений литералов для аналогичных запросов.query_kind
(LowCardinality(String)) — тип запроса.databases
(Array(LowCardinality(String))) — имена баз данных, присутствующих в запросе.tables
(Array(LowCardinality(String))) — имена таблиц, присутствующих в запросе.views
(Array(LowCardinality(String))) — имена представлений (материализованные или live), которые представленны в запросе.columns
(Array(LowCardinality(String))) — имена столбцов, присутствующих в запросе.projections
(String) — имена проекций, использованных при выполнении запроса.exception_code
(Int32) — код исключения.exception
(String) — сообщение исключения, если запрос завершился по исключению.stack_trace
(String) — stack trace. Пустая строка, если запрос успешно завершен.is_initial_query
(UInt8) — вид запроса. Возможные значения:- 1 — запрос был инициирован клиентом.
- 0 — запрос был инициирован другим запросом при выполнении распределенного запроса.
user
(String) — пользователь, запустивший текущий запрос.query_id
(String) — ID запроса.address
(IPv6) — IP адрес, с которого пришел запрос.port
(UInt16) — порт, с которого клиент сделал запрос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) — время начала обработки запроса с точностью до микросекунд (для распределенных запросов).interface
(UInt8) — интерфейс, с которого ушёл запрос. Возможные значения:- 1 — TCP.
- 2 — HTTP.
os_user
(String) — имя пользователя операционной системы, который запустил clickhouse-client.client_hostname
(String) — имя сервера, с которого присоединился clickhouse-client или другой TCP клиент.client_name
(String) — clickhouse-client или другой TCP клиент.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 клиента.http_method
(UInt8) — HTTP метод, инициировавший запрос. Возможные значения:- 0 — запрос запущен с интерфейса TCP.
- 1 —
GET
. - 2 —
POST
.
http_user_agent
(String) — HTTP заголовокUserAgent
.http_referer
(String) — HTTP заголовокReferer
(содержит полный или частичный адрес страницы, с которой был выполнен запрос).forwarded_for
(String) — HTTP заголовокX-Forwarded-For
.quota_key
(String) —ключ квоты
из настроек квот (см.keyed
).revision
(UInt32) — ревизия ClickHouse.ProfileEvents
(Map(String, UInt64)) — счетчики для изменения различных метрик. Описание метрик можно получить из таблицы system.events(#system_tables-eventsSettings
(Map(String, String)) — имена настроек, которые меняются, когда клиент выполняет запрос. Чтобы разрешить логирование изменений настроек, установите параметрlog_query_settings
равным 1.log_comment
(String) — комментарий к записи в логе. Представляет собой произвольную строку, длина которой должна быть не больше, чем max_query_size. Если нет комментария, то пустая строка.thread_ids
(Array(UInt64)) — идентификаторы потоков, участвующих в обработке запросов, эти потоки не обязательно выполняются одновременно.peak_threads_usage
(UInt64)) — максимальное количество одновременно работавших потоков, участвоваших в обработке запроса.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)) — канонические именатабличных функций
, использованных при выполнении запроса.
Пример
SELECT * FROM system.query_log WHERE type = 'QueryFinish' ORDER BY query_start_time DESC LIMIT 1 FORMAT Vertical;
Row 1:
──────
type: QueryFinish
event_date: 2021-11-03
event_time: 2021-11-03 16:13:54
event_time_microseconds: 2021-11-03 16:13:54.953024
query_start_time: 2021-11-03 16:13:54
query_start_time_microseconds: 2021-11-03 16:13:54.952325
query_duration_ms: 0
read_rows: 69
read_bytes: 6187
written_rows: 0
written_bytes: 0
result_rows: 69
result_bytes: 48256
memory_usage: 0
current_database: default
query: DESCRIBE TABLE system.query_log
formatted_query:
normalized_query_hash: 8274064835331539124
query_kind:
databases: []
tables: []
columns: []
projections: []
views: []
exception_code: 0
exception:
stack_trace:
is_initial_query: 1
user: default
query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
address: ::ffff:127.0.0.1
port: 40452
initial_user: default
initial_query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
initial_address: ::ffff:127.0.0.1
initial_port: 40452
initial_query_start_time: 2021-11-03 16:13:54
initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325
interface: 1
os_user: sevirov
client_hostname: clickhouse.ru-central1.internal
client_name: ClickHouse
client_revision: 54449
client_version_major: 21
client_version_minor: 10
client_version_patch: 1
http_method: 0
http_user_agent:
http_referer:
forwarded_for:
quota_key:
revision: 54456
log_comment:
thread_ids: [30776,31174]
ProfileEvents: {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319}
Settings: {'load_balancing':'random','max_memory_usage':'10000000000'}
used_aggregate_functions: []
used_aggregate_function_combinators: []
used_database_engines: []
used_data_type_families: []
used_dictionaries: []
used_formats: []
used_functions: []
used_storages: []
used_table_functions: []
См. также
- system.query_thread_log — в этой таблице содержится информация о цепочке каждого выполненного запроса.