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

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))) — Имена (материализованных или активных) представлений, присутствующих в запросе.
  • 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 — Эта таблица содержит информацию о каждом потоке выполнения запроса.