Skip to main content
Consultas no ClickHouse CloudOs dados nesta tabela de sistema são mantidos localmente em cada nó do ClickHouse Cloud. Portanto, para obter uma visão completa de todos os dados, é necessário usar a função clusterAllReplicas. Consulte aqui para mais detalhes.

Descrição

Armazena metadados e estatísticas sobre consultas executadas, como hora de início, duração, mensagens de erro, uso de recursos e outros detalhes da execução. Não armazena os resultados das consultas. Você pode alterar as configurações de registro de consultas na seção query_log da configuração do servidor. Você pode desativar o registro de consultas definindo log_queries = 0. Não recomendamos desativar o registro, porque as informações nesta tabela são importantes para solucionar problemas. O intervalo de flush dos dados é definido no parâmetro flush_interval_milliseconds da seção query_log das configurações do servidor. Para forçar o flush, use a consulta SYSTEM FLUSH LOGS. O ClickHouse não exclui dados da tabela automaticamente. Consulte a Introdução para mais detalhes. A tabela system.query_log registra dois tipos de consultas:
  1. Consultas iniciais (de nível superior).
  2. Consultas secundárias iniciadas por outras consultas, incluindo consultas para execução distribuída e subconsultas internas, como a avaliação de views. Para essas consultas, as informações sobre a consulta inicial original são exibidas nas colunas initial_*.
Filtre consultas iniciais por padrãoEm geral, adicione is_initial_query = 1 sempre que consultar system.query_log. Isso exclui consultas secundárias para que etapas individuais de processamento não sejam contabilizadas separadamente da consulta inicial. Esse filtro não implica que uma consulta foi enviada por um cliente, porque o trabalho interno do servidor também pode ser uma consulta inicial.Use initial_query_id em vez disso quando precisar rastrear uma consulta inicial junto com consultas secundárias que preservam seu ID. A consulta inicial tem o mesmo valor para initial_query_id e query_id, enquanto as consultas secundárias na mesma cadeia mantêm o initial_query_id da consulta inicial e têm seu próprio query_id. Nem todo trabalho iniciado por uma consulta inicial é correlacionado dessa forma: o trabalho encaminhado pelo servidor pode iniciar uma nova cadeia de consultas iniciais com um novo initial_query_id, como nos encaminhamentos remotos do QueryRunner.
Se consultas secundárias correlacionadas puderem ser executadas em outros nós, consulte system.query_log em cada nó, por exemplo, com clusterAllReplicas.
Cada consulta cria uma ou duas linhas na tabela query_log, dependendo do status (consulte a coluna type) da consulta:
  1. Se a execução da consulta for bem-sucedida, serão criadas duas linhas com os tipos QueryStart e QueryFinish.
  2. Se ocorrer um erro durante o processamento da consulta, serão criados dois eventos com os tipos QueryStart e ExceptionWhileProcessing.
  3. Se ocorrer um erro antes do início da consulta, será criado um único evento com o tipo ExceptionBeforeStart.
Você pode usar a configuração log_queries_probability para reduzir o número de consultas registradas na tabela query_log. Você pode usar a configuração log_formatted_queries para registrar consultas formatadas na coluna formatted_query.

Colunas

  • hostname (LowCardinality(String)) — Hostname do servidor que executa a consulta.
  • type (Enum8(‘QueryStart’ = 1, ‘QueryFinish’ = 2, ‘ExceptionBeforeStart’ = 3, ‘ExceptionWhileProcessing’ = 4)) — Tipo de evento ocorrido durante a execução da consulta. Valores: QueryStart — início bem-sucedido da execução da consulta, QueryFinish — término bem-sucedido da execução da consulta, ExceptionBeforeStart — exceção antes do início da execução da consulta, ExceptionWhileProcessing — exceção durante a execução da consulta.
  • event_date (Date) — Data de início da consulta.
  • event_time (DateTime) — Hora de início da consulta.
  • event_time_microseconds (DateTime64(6)) — Momento de início da consulta, com precisão de microssegundos.
  • query_start_time (DateTime) — Início da execução da consulta.
  • query_start_time_microseconds (DateTime64(6)) — Horário de início da execução da consulta com precisão de microssegundos.
  • query_duration_ms (UInt64) — Duração da consulta em milissegundos.
  • read_rows (UInt64) — Número total de linhas lidas de todas as tabelas e funções de tabela que participaram da consulta. Isso inclui as subconsultas usuais, subconsultas para IN e JOIN. Para consultas distribuídas, read_rows inclui o número total de linhas lidas em todas as réplicas. Cada réplica envia seu valor de read_rows, e o servidor iniciador da consulta consolida todos os valores recebidos e locais. Os volumes de cache não afetam esse valor.
  • read_bytes (UInt64) — Número total de bytes lidos de todas as tabelas e funções de tabela que participaram da consulta. Inclui as subconsultas usuais, subconsultas para IN e JOIN. Para consultas distribuídas, read_bytes inclui o número total de linhas lidas em todas as réplicas. Cada réplica envia seu valor de read_bytes, e o servidor iniciador da consulta soma todos os valores recebidos e locais. Os volumes de cache não afetam esse valor.
  • written_rows (UInt64) — O número de linhas gravadas pela consulta, incluindo todas as linhas gravadas por inserts downstream acionados pelo pipeline, como visões materializadas anexadas. Para um insert síncrono, essas linhas downstream são registradas na entrada query_kind = Insert; para um asynchronous insert, elas são registradas na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert visível para o cliente registra apenas as linhas aceitas do cliente. Para consultas que não gravam linhas, é 0.
  • written_bytes (UInt64) — O número de bytes gravados pela consulta (sem compactação), incluindo todos os bytes gravados por inserts downstream acionados pelo pipeline, como visões materializadas anexadas. Para um insert síncrono, esses bytes downstream são registrados na entrada query_kind = Insert; para um asynchronous insert, eles são registrados na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert visível para o cliente registra apenas os bytes aceitos do cliente. Para consultas que não gravam dados, é 0.
  • result_rows (UInt64) — Número de linhas no resultado de uma consulta SELECT, ou o número de linhas gravadas por um insert. Para um insert síncrono, isso inclui as linhas gravadas por inserts downstream acionados pelo pipeline (como visões materializadas anexadas) na entrada query_kind = Insert; para um asynchronous insert, essas linhas downstream são registradas na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert visível para o cliente registra apenas as linhas aceitas do cliente.
  • result_bytes (UInt64) — quantidade de RAM, em bytes, usada para armazenar o resultado de uma consulta.
  • memory_usage (UInt64) — Consumo de memória da consulta.
  • current_database (LowCardinality(String)) — Nome do banco de dados atual.
  • query (String) — Texto da consulta.
  • formatted_query (String) — String com a consulta formatada.
  • normalized_query_hash (UInt64) — Um valor de hash numérico, idêntico para consultas que diferem apenas nos valores dos literais.
  • query_kind (LowCardinality(String)) — Tipo de consulta.
  • databases (Array(LowCardinality(String))) — Nomes dos bancos de dados presentes na consulta.
  • tables (Array(LowCardinality(String))) — Nomes das tabelas presentes na consulta.
  • columns (Array(LowCardinality(String))) — Nomes das colunas presentes na consulta.
  • partitions (Array(LowCardinality(String))) — Nomes das partições presentes na consulta.
  • projections (Array(LowCardinality(String))) — Nomes das projeções usadas durante a execução da consulta.
  • views (Array(LowCardinality(String))) — Nomes das views (materializadas ou live) incluídas na consulta.
  • exception_code (Int32) — Código da exceção.
  • exception (String) — Mensagem da exceção.
  • stack_trace (String) — Stack trace. Uma string vazia, se a consulta tiver sido concluída com sucesso.
  • is_initial_query (UInt8) — Indica se a consulta é inicial. Valores possíveis: 1 — uma consulta inicial (de nível superior), 0 — uma consulta filha iniciada por outra consulta, incluindo consultas para execução distribuída e subconsultas internas.
  • connection_address (IPv6) — O endereço IP do cliente a partir do qual a conexão foi feita. Quando a conexão é feita por meio de um proxy, este será o endereço do proxy.
  • connection_port (UInt16) — A porta do cliente a partir da qual a conexão foi estabelecida. Quando a conexão é feita por meio de um proxy, esta será a porta do proxy.
  • user (LowCardinality(String)) — Nome do usuário que iniciou a consulta em execução.
  • query_id (String) — identificador da consulta.
  • address (IPv6) — Endereço IP usado para fazer a consulta. Quando a conexão é feita por meio de um proxy e auth_use_forwarded_address está definido, este será o endereço do cliente em vez do endereço do proxy.
  • port (UInt16) — A porta do cliente usada para fazer a consulta. Quando a conexão é feita por meio de um proxy e auth_use_forwarded_address está definido, esta será a porta do cliente em vez da porta do proxy.
  • initial_user (LowCardinality(String)) — Nome do usuário que executou a consulta inicial na mesma cadeia de consultas.
  • initial_query_id (String) — ID da consulta inicial na mesma cadeia de consultas.
  • initial_address (IPv6) — Endereço IP a partir do qual a consulta inicial na mesma cadeia de consultas foi iniciada.
  • initial_port (UInt16) — Porta do cliente a partir da qual a consulta inicial na mesma cadeia de consultas foi iniciada.
  • initial_query_start_time (DateTime) — Hora de início da consulta inicial na mesma cadeia de consultas.
  • initial_query_start_time_microseconds (DateTime64(6)) — Hora de início da consulta inicial na mesma cadeia de consultas, com precisão de microssegundos.
  • authenticated_user (LowCardinality(String)) — Nome do usuário autenticado na sessão.
  • interface (UInt8) — Interface pela qual a consulta foi iniciada. Valores possíveis: 1 — TCP, 2 — HTTP.
  • is_secure (UInt8) — O indicador de se uma consulta foi executada por meio de uma interface segura
  • os_user (LowCardinality(String)) — Nome de usuário do sistema operacional sob o qual o clickhouse-client é executado.
  • client_hostname (LowCardinality(String)) — Hostname da máquina cliente em que o clickhouse-client ou outro cliente TCP é executado.
  • client_name (LowCardinality(String)) — O nome do clickhouse-client ou de outro cliente TCP.
  • client_agent (LowCardinality(String)) — O agente de codificação com IA que invocou o cliente (por exemplo, claude-code, cursor), detectado a partir de variáveis de ambiente. Vazio se nenhum agente for detectado.
  • client_revision (UInt32) — Revisão do clickhouse-client ou de outro cliente TCP.
  • client_version_major (UInt32) — Versão principal do clickhouse-client ou de outro cliente TCP.
  • client_version_minor (UInt32) — Versão menor do clickhouse-client ou de outro cliente TCP.
  • client_version_patch (UInt32) — Número de patch da versão do clickhouse-client ou de outro cliente TCP.
  • script_query_number (UInt32) — O número da consulta em um script com várias consultas no clickhouse-client.
  • script_line_number (UInt32) — O número da linha em que a consulta começa em um script com várias consultas para o clickhouse-client.
  • http_method (UInt8) — Método HTTP que iniciou a consulta. Valores possíveis: 0 - A consulta foi iniciada pela interface TCP, 1 - o método GET foi utilizado, 2 - o método POST foi utilizado, 4 - o método PUT foi utilizado, 5 - o método DELETE foi utilizado, 6 - o método HEAD foi utilizado.
  • http_user_agent (LowCardinality(String)) — cabeçalho HTTP UserAgent enviado na consulta HTTP.
  • http_referer (String) — cabeçalho HTTP Referer enviado na consulta HTTP (contém um endereço absoluto ou parcial da página que originou a consulta).
  • forwarded_for (String) — cabeçalho HTTP X-Forwarded-For enviado na consulta HTTP.
  • quota_key (String) — A chave da quota especificada na configuração de quotas (consulte keyed).
  • distributed_depth (UInt64) — Quantas vezes uma consulta foi repassada entre servidores.
  • revision (UInt32) — número de revisão do ClickHouse.
  • http_handler_name (String) — Nome do handler HTTP definido em SQL (CREATE HANDLER) que invocou a consulta. Vazio se a consulta não tiver sido invocada por esse tipo de handler.
  • http_request_url (String) — O caminho da requisição HTTP (sem a string de consulta) que invocou a consulta. A string de consulta é omitida para que parâmetros sensíveis da requisição não sejam persistidos. Vazio para consultas que não são HTTP.
  • log_comment (String) — Comentário do log. Pode ser definido como uma string arbitrária com tamanho de até max_query_size. Será uma string vazia se não estiver definido.
  • thread_ids (Array(UInt64)) — IDs das threads que participam da execução da consulta. Essas threads podem não ter sido executadas simultaneamente.
  • peak_threads_usage (UInt64) — Número máximo de threads simultâneas que executam a consulta.
  • ProfileEvents (Map(LowCardinality(String), UInt64)) — ProfileEvents que medem diferentes métricas. A descrição deles pode ser encontrada na tabela system.events
  • Settings (Map(LowCardinality(String), LowCardinality(String))) — Configurações alteradas quando o cliente executou a consulta. Para registrar em log as alterações nas configurações, defina o parâmetro log_query_settings como 1.
  • used_aggregate_functions (Array(LowCardinality(String))) — Nomes canônicos das funções de agregação usadas na execução da consulta.
  • used_aggregate_function_combinators (Array(LowCardinality(String))) — Nomes canônicos dos combinadores de funções de agregação usados durante a execução da consulta.
  • used_database_engines (Array(LowCardinality(String))) — Nomes canônicos dos motores de banco de dados usados durante a execução da consulta.
  • used_data_type_families (Array(LowCardinality(String))) — Nomes canônicos das famílias de tipos de dados usados durante a execução da consulta.
  • used_dictionaries (Array(LowCardinality(String))) — Nomes canônicos dos dicionários usados durante a execução da consulta.
  • used_formats (Array(LowCardinality(String))) — Nomes canônicos dos formatos usados durante a execução da consulta.
  • used_functions (Array(LowCardinality(String))) — Nomes canônicos das funções usadas durante a execução da consulta.
  • used_storages (Array(LowCardinality(String))) — Nomes canônicos dos armazenamentos usados durante a execução da consulta.
  • used_table_functions (Array(LowCardinality(String))) — Nomes canônicos das funções de tabela usadas durante a execução da consulta.
  • used_executable_user_defined_functions (Array(LowCardinality(String))) — Nomes canônicos de funções executáveis definidas pelo usuário, que foram usadas durante a execução da consulta.
  • used_sql_user_defined_functions (Array(LowCardinality(String))) — Nomes canônicos das funções definidas pelo usuário em SQL usadas durante a execução da consulta.
  • used_row_policies (Array(LowCardinality(String))) — A lista com os nomes das políticas de linha usadas durante a execução da consulta.
  • used_privileges (Array(LowCardinality(String))) — Privilégios cuja verificação foi bem-sucedida durante a execução da consulta.
  • missing_privileges (Array(LowCardinality(String))) — Privilégios ausentes durante a execução da consulta.
  • transaction_id (Tuple(UInt64, UInt64, UUID)) — O identificador da transação no contexto da qual esta consulta foi executada.
  • query_cache_usage (Enum8(‘Unknown’ = 0, ‘None’ = 1, ‘Write’ = 2, ‘Read’ = 3)) — Uso do cache de consultas durante a execução da consulta. Valores: ‘Unknown’ = Status desconhecido, ‘None’ = O resultado da consulta não foi nem armazenado no cache de resultados da consulta nem lido dele, ‘Write’ = O resultado da consulta foi armazenado no cache de resultados da consulta, ‘Read’ = O resultado da consulta foi lido do cache de resultados da consulta.
  • asynchronous_read_counters (Map(LowCardinality(String), UInt64)) — Métricas de leitura assíncrona.
  • is_internal (UInt8) — Indica se é uma consulta auxiliar executada internamente.
Aliases:
  • ProfileEvents.Names — Alias para mapKeys(ProfileEvents).
  • ProfileEvents.Values — Alias para mapValues(ProfileEvents).
  • Settings.Names — Alias para mapKeys(Settings).
  • Settings.Values — Alias para mapValues(Settings).

Exemplos

Exemplo básico
Exemplo no Cloud No ClickHouse Cloud, system.query_log é local a cada nó; para ver todas as entradas, você precisa fazer a consulta por meio de clusterAllReplicas. Por exemplo, para agregar linhas de query_log de todas as réplicas no cluster “default”, você pode escrever:

Veja também

  • system.query_thread_log — Esta tabela contém informações sobre cada thread usada na execução de uma consulta.
Última modificação em 15 de agosto de 2026