Перейти к основному содержимому
Перейти к основному содержимому

system.query_log

Запросы в ClickHouse Cloud

Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Для получения полного представления о всех данных необходимо использовать функцию clusterAllReplicas. Подробности см. здесь.

Содержит информацию о выполненных запросах, например, время начала, длительность обработки, сообщения об ошибках.

примечание

Эта таблица не содержит поступивших данных для запросов INSERT.

Вы можете изменить настройки логирования запросов в разделе query_log конфигурации сервера.

Вы можете отключить логирование запросов, установив log_queries = 0. Мы не рекомендуем отключать логирование, так как информация в этой таблице важна для решения проблем.

Период сброса данных устанавливается в параметре flush_interval_milliseconds секции настроек сервера query_log. Чтобы принудительно выполнить сброс, используйте запрос SYSTEM FLUSH LOGS.

ClickHouse не удаляет данные из таблицы автоматически. См. Введение для получения подробной информации.

Таблица system.query_log регистрирует два типа запросов:

  1. Начальные запросы, которые были выполнены непосредственно клиентом.
  2. Дочерние запросы, которые были инициированы другими запросами (для распределенного выполнения запросов). Для этих типов запросов информация о родительских запросах отображается в столбцах initial_*.

Каждый запрос создает одну или две строки в таблице query_log, в зависимости от статуса (см. столбец type) запроса:

  1. Если выполнение запроса было успешным, создаются две строки с типами QueryStart и QueryFinish.
  2. Если произошла ошибка во время обработки запроса, создаются два события с типами QueryStart и ExceptionWhileProcessing.
  3. Если ошибка произошла до запуска запроса, создается одно событие с типом 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) — ключ квоты, указанный в настройке 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)) — Канонические имена агрегатных функций, которые использовались во время выполнения запроса.
  • 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 — Эта таблица содержит информацию о каждом потоке выполнения запроса.