23 KiB
system.query_log
Содержит информацию о выполняемых запросах, например, время начала обработки, продолжительность обработки, сообщения об ошибках.
!!! note "Внимание"
Таблица не содержит входных данных для запросов 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.
Столбцы:
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) — текст запроса.normalized_query_hash
(UInt64) — идентичная хэш-сумма без значений литералов для аналогичных запросов.query_kind
(LowCardinality(String)) — тип запроса.databases
(Array(LowCardinality(String))) — имена баз данных, присутствующих в запросе.tables
(Array(LowCardinality(String))) — имена таблиц, присутствующих в запросе.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)) — идентификаторы потоков, участвующих в обработке запросов.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-07-28
event_time: 2021-07-28 13:46:56
event_time_microseconds: 2021-07-28 13:46:56.719791
query_start_time: 2021-07-28 13:46:56
query_start_time_microseconds: 2021-07-28 13:46:56.704542
query_duration_ms: 14
read_rows: 8393
read_bytes: 374325
written_rows: 0
written_bytes: 0
result_rows: 4201
result_bytes: 153024
memory_usage: 4714038
current_database: default
query: SELECT DISTINCT arrayJoin(extractAll(name, '[\\w_]{2,}')) AS res FROM (SELECT name FROM system.functions UNION ALL SELECT name FROM system.table_engines UNION ALL SELECT name FROM system.formats UNION ALL SELECT name FROM system.table_functions UNION ALL SELECT name FROM system.data_type_families UNION ALL SELECT name FROM system.merge_tree_settings UNION ALL SELECT name FROM system.settings UNION ALL SELECT cluster FROM system.clusters UNION ALL SELECT macro FROM system.macros UNION ALL SELECT policy_name FROM system.storage_policies UNION ALL SELECT concat(func.name, comb.name) FROM system.functions AS func CROSS JOIN system.aggregate_function_combinators AS comb WHERE is_aggregate UNION ALL SELECT name FROM system.databases LIMIT 10000 UNION ALL SELECT DISTINCT name FROM system.tables LIMIT 10000 UNION ALL SELECT DISTINCT name FROM system.dictionaries LIMIT 10000 UNION ALL SELECT DISTINCT name FROM system.columns LIMIT 10000) WHERE notEmpty(res)
normalized_query_hash: 6666026786019643712
query_kind: Select
databases: ['system']
tables: ['system.aggregate_function_combinators','system.clusters','system.columns','system.data_type_families','system.databases','system.dictionaries','system.formats','system.functions','system.macros','system.merge_tree_settings','system.settings','system.storage_policies','system.table_engines','system.table_functions','system.tables']
columns: ['system.aggregate_function_combinators.name','system.clusters.cluster','system.columns.name','system.data_type_families.name','system.databases.name','system.dictionaries.name','system.formats.name','system.functions.is_aggregate','system.functions.name','system.macros.macro','system.merge_tree_settings.name','system.settings.name','system.storage_policies.policy_name','system.table_engines.name','system.table_functions.name','system.tables.name']
projections: []
exception_code: 0
exception:
stack_trace:
is_initial_query: 1
user: default
query_id: a3361f6e-a1fd-4d54-9f6f-f93a08bab0bf
address: ::ffff:127.0.0.1
port: 51006
initial_user: default
initial_query_id: a3361f6e-a1fd-4d54-9f6f-f93a08bab0bf
initial_address: ::ffff:127.0.0.1
initial_port: 51006
initial_query_start_time: 2021-07-28 13:46:56
initial_query_start_time_microseconds: 2021-07-28 13:46:56.704542
interface: 1
os_user:
client_hostname:
client_name: ClickHouse client
client_revision: 54449
client_version_major: 21
client_version_minor: 8
client_version_patch: 0
http_method: 0
http_user_agent:
http_referer:
forwarded_for:
quota_key:
revision: 54453
log_comment:
thread_ids: [5058,22097,22110,22094]
ProfileEvents.Names: ['Query','SelectQuery','ArenaAllocChunks','ArenaAllocBytes','FunctionExecute','NetworkSendElapsedMicroseconds','SelectedRows','SelectedBytes','ContextLock','RWLockAcquiredReadLocks','RealTimeMicroseconds','UserTimeMicroseconds','SystemTimeMicroseconds','SoftPageFaults','OSCPUWaitMicroseconds','OSCPUVirtualTimeMicroseconds','OSWriteBytes','OSWriteChars']
ProfileEvents.Values: [1,1,39,352256,64,360,8393,374325,412,440,34480,13108,4723,671,19,17828,8192,10240]
Settings.Names: ['load_balancing','max_memory_usage']
Settings.Values: ['random','10000000000']
used_aggregate_functions: []
used_aggregate_function_combinators: []
used_database_engines: []
used_data_type_families: ['UInt64','UInt8','Nullable','String','date']
used_dictionaries: []
used_formats: []
used_functions: ['concat','notEmpty','extractAll']
used_storages: []
used_table_functions: []
Смотрите также
- system.query_thread_log — в этой таблице содержится информация о цепочке каждого выполненного запроса.