system.query_log
Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Для получения полного представления о всех данных требуется функция clusterAllReplicas. Смотрите здесь для получения дополнительной информации.
Хранит метаданные и статистику о выполненных запросах, такие как время начала, продолжительность, сообщения об ошибках, использование ресурсов и другие детали выполнения. Результаты запросов не хранятся.
Вы можете изменить настройки логирования запросов в разделе 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 key, указанный в настройках quotas (см.keyed).revision(UInt32) — Ревизия ClickHouse.ProfileEvents(Map(String, UInt64)) — ProfileEvents, которые измеряют различные метрики. Описание можно найти в таблице system.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)) — Канонические именасловарей, которые были использованы при выполнении запроса. Для словарей, настроенных с использованием XML-файла, это имя словаря, а для словарей, созданных SQL-запросом, каноническое имя — это полностью квалифицированное имя объекта.used_formats(Array(String)) — Канонические именаформатов, которые были использованы при выполнении запроса.used_functions(Array(String)) — Канонические именафункций, которые были использованы при выполнении запроса.used_storages(Array(String)) — Канонические именахранилищ, которые были использованы при выполнении запроса.used_table_functions(Array(String)) — Канонические именатабличных функций, которые были использованы при выполнении запроса.used_executable_user_defined_functions(Array(String)) — Канонические именавызовных пользовательских функций, которые были использованы при выполнении запроса.used_sql_user_defined_functions(Array(String)) — Канонические именаsql пользовательских функций, которые были использованы при выполнении запроса.used_privileges(Array(String)) — Привилегии, которые были успешно проверены во время выполнения запроса.missing_privileges(Array(String)) — Привилегии, отсутствующие во время выполнения запроса.query_cache_usage(Enum8) — Использование кэша запросов во время выполнения запроса. Значения:'Unknown'= Статус неизвестен.'None'= Результат запроса не был записан в кэш запросов и не был из него прочитан.'Write'= Результат запроса был записан в кэш запросов.'Read'= Результат запроса был прочитан из кэша запросов.
Примеры
Основной пример
Пример облака
В ClickHouse Cloud system.query_log локален для каждого узла; чтобы увидеть все записи, необходимо выполнить запрос через clusterAllReplicas.
Например, чтобы агрегировать строки query_log из каждой реплики в кластере “default”, вы можете написать:
Смотрите также
- system.query_thread_log — Эта таблица содержит информацию о каждом потоке выполнения запроса.