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))) — Имена (материализованных или live) представлений, присутствующих в запросе.
- 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 (см.- 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)) — Канонические имена- агрегатных функций, которые были использованы во время выполнения запроса.
- used_aggregate_function_combinators(Array(String)) — Канонические имена- комбинаторов агрегатных функций, которые были использованы во время выполнения запроса.
- used_database_engines(Array(String)) — Канонические имена- движков баз данных, которые были использованы во время выполнения запроса.
- used_data_type_families(Array(String)) — Канонические имена- семейств типов данных, которые были использованы во время выполнения запроса.
- used_dictionaries(Array(String)) — Канонические имена- словари, которые были использованы во время выполнения запроса. Для словарей, настроенных с помощью XML-файла, это имя словаря, а для словарей, созданных оператором SQL, каноническое имя — это полное квалифицированное имя объекта.
- used_formats(Array(String)) — Канонические имена- форматов, которые были использованы во время выполнения запроса.
- used_functions(Array(String)) — Канонические имена- функций, которые были использованы во время выполнения запроса.
- used_storages(Array(String)) — Канонические имена- хранилищ, которые были использованы во время выполнения запроса.
- used_table_functions(Array(String)) — Канонические имена- табличных функций, которые были использованы во время выполнения запроса.
- used_privileges(Array(String)) - Привилегии, которые были успешно проверены во время выполнения запроса.
- missing_privileges(Array(String)) - Привилегии, отсутствующие во время выполнения запроса.
- query_cache_usage(Enum8) — Использование кэша запросов во время выполнения запроса. Значения:- 'Unknown'= Статус неизвестен.
- 'None'= Результат запроса не был записан ни в кэш запросов, ни оттуда прочитан.
- 'Write'= Результат запроса был записан в кэш запросов.
- 'Read'= Результат запроса был прочитан из кэша запросов.
 
Пример
См. Также
- system.query_thread_log — Эта таблица содержит информацию о каждом потоке выполнения запроса.
