system.query_log
Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Для получения полного представления о всех данных необходимо использовать функцию clusterAllReplicas
. Подробности см. здесь.
Содержит информацию о выполненных запросах, например, время начала, продолжительность обработки, сообщения об ошибках.
Эта таблица не содержит загруженные данные для запросов INSERT
.
Вы можете изменить настройки логирования запросов в разделе query_log конфигурации сервера.
Вы можете отключить логирование запросов, установив log_queries = 0. Мы не рекомендуем отключать логирование, так как информация в этой таблице важна для решения проблем.
Период сброса данных устанавливается в параметре flush_interval_milliseconds
раздела настроек сервера query_log. Чтобы принудительно выполнить сброс, используйте запрос SYSTEM FLUSH LOGS.
ClickHouse не удаляет данные из таблицы автоматически. Смотрите Введение для получения дополнительной информации.
Таблица system.query_log
фиксирует два типа запросов:
- Начальные запросы, которые были выполнены непосредственно клиентом.
- Дочерние запросы, которые были инициированы другими запросами (для распределенного выполнения запросов). Для этих типов запросов информация о родительских запросах отображается в колонках
initial_*
.
Каждый запрос создает одну или две строки в таблице query_log
в зависимости от статуса (см. колонку type
) запроса:
- Если выполнение запроса прошло успешно, создаются две строки с типами
QueryStart
иQueryFinish
. - Если во время обработки запроса произошла ошибка, создаются два события с типами
QueryStart
иExceptionWhileProcessing
. - Если ошибка произошла до запуска запроса, создается одно событие с типом
ExceptionBeforeStart
.
Вы можете использовать настройку log_queries_probability, чтобы уменьшить количество запросов, зарегистрированных в таблице query_log
.
Вы можете использовать настройку log_formatted_queries, чтобы логировать отформатированные запросы в колонку formatted_query
.
Колонки:
hostname
(LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.type
(Enum8) — Тип события, которое произошло при выполнении запроса. Значения:'QueryStart' = 1
— Успешный старт выполнения запроса.'QueryFinish' = 2
— Успешное завершение выполнения запроса.'ExceptionBeforeStart' = 3
— Исключение перед началом выполнения запроса.'ExceptionWhileProcessing' = 4
— Исключение во время выполнения запроса.
event_date
(Date) — Дата начала запроса.event_time
(DateTime) — Время начала запроса.event_time_microseconds
(DateTime64) — Время начала запроса с точностью до микросекунд.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) — Объем ОЗУ в байтах, используемый для хранения результата запроса.memory_usage
(UInt64) — Потребление памяти запросом.current_database
(String) — Имя текущей базы данных.query
(String) — Строка запроса.formatted_query
(String) — Отформатированная строка запроса.normalized_query_hash
(UInt64) — Числовое хэш-значение, которое идентично для запросов, различающихся только значениями литералов.query_kind
(LowCardinality(String)) — Тип запроса.databases
(Array(LowCardinality(String))) — Имена баз данных, присутствующих в запросе.tables
(Array(LowCardinality(String))) — Имена таблиц, присутствующих в запросе.columns
(Array(LowCardinality(String))) — Имена колонок, присутствующих в запросе.partitions
(Array(LowCardinality(String))) — Имена партиций, присутствующих в запросе.projections
(String) — Имена проекций, использованных во время выполнения запроса.views
(Array(LowCardinality(String))) — Имена (материализованных или активных) представлений, присутствующих в запросе.exception_code
(Int32) — Код исключения.exception
(String) — Сообщение об исключении.stack_trace
(String) — Стек вызовов. Пустая строка, если запрос был успешно выполнен.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-клиента.script_query_number
(UInt32) — Номер запроса в скрипте с несколькими запросами для clickhouse-client.script_line_number
(UInt32) — Номер строки начала запроса в скрипте с множеством запросов для clickhouse-client.http_method
(UInt8) — HTTP-метод, который инициировал запрос. Возможные значения:- 0 — Запрос был запущен из TCP-интерфейса.
- 1 — Использовался метод
GET
. - 2 — Использовался метод
POST
.
http_user_agent
(String) — HTTP-заголовокUserAgent
, переданный в HTTP-запросе.http_referer
(String) — HTTP-заголовокReferer
, переданный в HTTP-запросе (содержит абсолютный или частичный адрес страницы, выполняющей запрос).forwarded_for
(String) — HTTP-заголовокX-Forwarded-For
, переданный в HTTP-запросе.quota_key
(String) — Ключquota
, указанный в настройке quotas (см.keyed
).revision
(UInt32) — Ревизия ClickHouse.ProfileEvents
(Map(String, UInt64)) — ProfileEvents, которые измеряют различные метрики. Описание их можно найти в таблице system.events.Settings
(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)) — Канонические названияaggregate functions
, которые использовались во время выполнения запроса.used_aggregate_function_combinators
(Array(String)) — Канонические названияaggregate functions combinators
, которые использовались во время выполнения запроса.used_database_engines
(Array(String)) — Канонические названияdatabase engines
, которые использовались во время выполнения запроса.used_data_type_families
(Array(String)) — Канонические названияdata type families
, которые использовались во время выполнения запроса.used_dictionaries
(Array(String)) — Канонические названияdictionaries
, которые использовались во время выполнения запроса. Для словарей, настроенных с использованием XML-файла, это имя словаря, а для словарей, созданных SQL-запросом, каноническое имя является полным квалифицированным именем объекта.used_formats
(Array(String)) — Канонические названияformats
, которые использовались во время выполнения запроса.used_functions
(Array(String)) — Канонические названияfunctions
, которые использовались во время выполнения запроса.used_storages
(Array(String)) — Канонические названияstorages
, которые использовались во время выполнения запроса.used_table_functions
(Array(String)) — Канонические названияtable functions
, которые использовались во время выполнения запроса.used_privileges
(Array(String)) — Привилегии, которые были успешно проверены во время выполнения запроса.missing_privileges
(Array(String)) — Привилегии, отсутствующие во время выполнения запроса.query_cache_usage
(Enum8) — Использование кэша запросов во время выполнения запроса. Значения:'Unknown'
= Статус неизвестен.'None'
= Результат запроса не был ни записан в кэш запросов, ни прочитан из него.'Write'
= Результат запроса был записан в кэш запросов.'Read'
= Результат запроса был прочитан из кэша запросов.
Пример
Смотрите также
- system.query_thread_log — Эта таблица содержит информацию о каждом потоке выполнения запроса.