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)) — канонические именатабличных функций, использованных при выполнении запроса.
Пример
См. также
- system.query_thread_log — в этой таблице содержится информация о цепочке каждого выполненного запроса.