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
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:
- Consultas iniciais executadas diretamente pelo cliente.
- Consultas secundárias iniciadas por outras consultas (para execução distribuída de consultas). Para esses tipos de consultas, as informações sobre as consultas pai são exibidas nas colunas
initial_*.
query_log, dependendo do status (consulte a coluna type) da consulta:
- Se a execução da consulta for bem-sucedida, serão criadas duas linhas com os tipos
QueryStarteQueryFinish. - Se ocorrer um erro durante o processamento da consulta, serão criados dois eventos com os tipos
QueryStarteExceptionWhileProcessing. - Se ocorrer um erro antes do início da consulta, será criado um único evento com o tipo
ExceptionBeforeStart.
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) — Para consultas INSERT, o número de linhas gravadas. Para outras consultas, o valor da coluna é 0.written_bytes(UInt64) — Para consultas INSERT, o número de bytes gravados (sem compactação). Para outras consultas, o valor da coluna é 0.result_rows(UInt64) — Número de linhas no resultado da consulta SELECT ou na consulta INSERT.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) — Tipo de consulta. Valores possíveis: 1 — a consulta foi iniciada pelo cliente, 0 — a consulta foi iniciada por outra consulta como parte da execução de uma consulta distribuída.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 eauth_use_forwarded_addressestá 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 eauth_use_forwarded_addressestá 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 (para a execução de consultas distribuídas).initial_query_id(String) — ID da consulta inicial (para execução de consultas distribuídas).initial_address(IPv6) — endereço IP a partir do qual a consulta principal foi iniciada.initial_port(UInt16) — A porta do cliente usada para fazer a consulta principal.initial_query_start_time(DateTime) — Hora de início da consulta inicial (para execução de consultas distribuídas).initial_query_start_time_microseconds(DateTime64(6)) — Horário inicial da consulta, com precisão de microssegundos (para execução de consultas distribuídas).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 seguraos_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_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.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.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)) —ProfileEventsque medem diferentes métricas. A descrição deles pode ser encontrada na tabela system.eventsSettings(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.
ProfileEvents.Names— Alias paramapKeys(ProfileEvents).ProfileEvents.Values— Alias paramapValues(ProfileEvents).Settings.Names— Alias paramapKeys(Settings).Settings.Values— Alias paramapValues(Settings).
Exemplos
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.