Mostra ao usuário atual seus próprios registros do log de consultas. Lê a tabela de log de consultas configurada pelas opções do servidor query_log.database e query_log.table (system.query_log por padrão) e retorna apenas as linhas cujo usuário iniciador é igual a currentUser() (o usuário iniciador é obtido de initial_user quando definido; caso contrário, de user).
Diferentemente da própria tabela de log de consultas, system.user_query_log pode ser lida sem nenhuma permissão, permitindo que os usuários inspecionem suas próprias consultas sem receber acesso às consultas de outros usuários.
Isso é compatível apenas quando o log de consultas é armazenado localmente. Se query_log.engine estiver configurado como Distributed ou qualquer outro engine que delegue leituras a outro servidor, system.user_query_log se recusará a ler dela e lançará uma exceção, pois a verificação de acesso necessária não pode ser aplicada entre servidores que se comunicam pelo protocolo ClickHouse. Nesse caso, desative a tabela com query_log.enable_user_query_log = 0.
A tabela pode ser desativada com a opção do servidor query_log.enable_user_query_log. Se o log de consultas não estiver configurado ou sua tabela ainda não tiver sido criada, system.user_query_log ficará vazia.
As condições nas colunas de partição e de chave do log de consultas (event_date, event_time, query_start_time, query_id, type e colunas escalares semelhantes) comparadas com constantes são aplicadas à tabela de log de consultas subjacente, de modo que consultas comuns, como o exemplo abaixo, preservam a eliminação de partições e não varrem todo o log retido.
Se uma tabela chamada system.user_query_log tiver sido criada antes da atualização para uma versão do ClickHouse que fornece essa tabela, o servidor não será iniciado até que a tabela existente seja renomeada ou removida, ou que query_log.enable_user_query_log seja definido como 0.
hostname (String) — Nome do host 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)) — Hora de início da consulta com precisão de microssegundos.
query_start_time (DateTime) — Hora de início da execução da consulta.
query_start_time_microseconds (DateTime64(6)) — Hora de início da execução da consulta com precisão de microssegundos.
query_duration_ms (UInt64) — Duração da execução da consulta em milissegundos.
read_rows (UInt64) — Número total de linhas lidas de todas as tabelas e funções de tabela envolvidas na consulta. Inclui subconsultas comuns e 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 agrega 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 envolvidas na consulta. Inclui subconsultas comuns e 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 agrega todos os valores recebidos e locais. Os volumes de cache não afetam esse valor.
written_rows (UInt64) — Número de linhas gravadas pela consulta, incluindo linhas gravadas por inserts subsequentes acionados pelo pipeline, como visões materializadas anexadas. Em um insert síncrono, essas linhas subsequentes são registradas na entrada query_kind = Insert; em um insert assíncrono, são registradas na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert voltada ao cliente registra apenas as linhas aceitas do cliente. Para consultas que não gravam linhas, o valor é 0.
written_bytes (UInt64) — Número de bytes gravados pela consulta (não compactados), incluindo bytes gravados por inserts subsequentes acionados pelo pipeline, como visões materializadas anexadas. Em um insert síncrono, esses bytes subsequentes são registrados na entrada query_kind = Insert; em um insert assíncrono, são registrados na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert voltada ao cliente registra apenas os bytes aceitos do cliente. Para consultas que não gravam dados, o valor é 0.
result_rows (UInt64) — Número de linhas no resultado de uma consulta SELECT ou de linhas gravadas por um insert. Em um insert síncrono, inclui as linhas gravadas por inserts subsequentes acionados pelo pipeline, como visões materializadas anexadas, na entrada query_kind = Insert; em um insert assíncrono, essas linhas subsequentes são registradas na entrada query_kind = AsyncInsertFlush, enquanto a entrada Insert voltada ao 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 pela consulta.
current_database (String) — Nome do banco de dados atual.
query (String) — String da consulta.
formatted_query (String) — String da consulta formatada.
normalized_query_hash (UInt64) — Valor numérico de hash idêntico para consultas que diferem apenas nos valores dos literais.
query_kind (String) — Tipo da consulta.
databases (Array(String)) — Nomes dos bancos de dados presentes na consulta.
tables (Array(String)) — Nomes das tabelas presentes na consulta.
columns (Array(String)) — Nomes das colunas presentes na consulta.
partitions (Array(String)) — Nomes das partições presentes na consulta.
projections (Array(String)) — Nomes das projeções usadas durante a execução da consulta.
views (Array(String)) — Nomes das views (materializadas ou live) presentes na consulta.
exception_code (Int32) — Código da exceção.
exception (String) — Mensagem da exceção.
stack_trace (String) — Rastreamento de pilha. String vazia se a consulta foi concluída com êxito.
is_initial_query (UInt8) — Tipo de consulta. Valores possíveis: 1 — consulta iniciada pelo cliente; 0 — consulta iniciada por outra consulta como parte da execução distribuída de consultas.
connection_address (IPv6) — Endereço IP do cliente a partir do qual a conexão foi estabelecida. Ao se conectar por meio de um proxy, será o endereço do proxy.
connection_port (UInt16) — Porta do cliente a partir da qual a conexão foi estabelecida. Ao se conectar por meio de um proxy, será a porta do proxy.
user (String) — Nome do usuário que iniciou a consulta atual.
query_id (String) — ID da consulta.
address (IPv6) — Endereço IP usado para executar a consulta. Ao se conectar por meio de um proxy, se auth_use_forwarded_address estiver definido, será o endereço do cliente em vez do proxy.
port (UInt16) — Porta do cliente usada para executar a consulta. Ao se conectar por meio de um proxy, se auth_use_forwarded_address estiver definido, será a porta do cliente em vez da porta do proxy.
initial_user (String) — Nome do usuário que executou a consulta inicial (para execução distribuída de consultas).
initial_query_id (String) — ID da consulta inicial (para execução distribuída de consultas).
initial_address (IPv6) — Endereço IP a partir do qual a consulta pai foi iniciada.
initial_port (UInt16) — Porta do cliente usada para executar a consulta pai.
initial_query_start_time (DateTime) — Horário de início da consulta inicial (para execução distribuída de consultas).
initial_query_start_time_microseconds (DateTime64(6)) — Horário de início da consulta inicial com precisão de microssegundos (para execução distribuída de consultas).
authenticated_user (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) — Sinalizador que indica se uma consulta foi executada por meio de uma interface segura
os_user (String) — Nome de usuário do sistema operacional que executa o clickhouse-client.
client_hostname (String) — Nome do host da máquina cliente em que o clickhouse-client ou outro cliente TCP é executado.
client_name (String) — Nome do clickhouse-client ou de outro cliente TCP.
client_agent (String) — Agente de programaçã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 secundária do clickhouse-client ou de outro cliente TCP.
client_version_patch (UInt32) — Componente de patch da versão do clickhouse-client ou de outro cliente TCP.
script_query_number (UInt32) — Número da consulta em um script com várias consultas para o clickhouse-client.
script_line_number (UInt32) — 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 — foi usado o método GET; 2 — foi usado o método POST; 4 — foi usado o método PUT; 5 — foi usado o método DELETE; 6 — foi usado o método HEAD.
http_user_agent (String) — Cabeçalho HTTP UserAgent enviado na consulta HTTP.
http_referer (String) — Cabeçalho HTTP Referer enviado na consulta HTTP (contém o endereço absoluto ou parcial da página que faz a consulta).
forwarded_for (String) — Cabeçalho HTTP X-Forwarded-For enviado na consulta HTTP.
quota_key (String) — Chave de quota especificada na configuração de quotas (consulte keyed).
distributed_depth (UInt64) — Número de vezes que uma consulta foi encaminhada entre servidores.
revision (UInt32) — 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 foi invocada por esse handler.
http_request_url (String) — 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 não HTTP.
log_comment (String) — Comentário de log. Pode ser definido como uma string arbitrária de até max_query_size. Uma string vazia se não for 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 que executam a consulta simultaneamente.
ProfileEvents (Map(String, UInt64)) — ProfileEvents que medem diferentes métricas. A descrição delas pode ser encontrada na tabela system.events.
Settings (Map(String, String)) — Configurações alteradas quando o cliente executou a consulta. Para ativar o registro de alterações nas configurações, defina o parâmetro log_query_settings como 1.
used_aggregate_functions (Array(String)) — Nomes canônicos das funções agregadas usadas durante a execução da consulta.
used_aggregate_function_combinators (Array(String)) — Nomes canônicos dos combinadores de funções agregadas usados durante a execução da consulta.
used_database_engines (Array(String)) — Nomes canônicos dos motores de banco de dados usados durante a execução da consulta.
used_data_type_families (Array(String)) — Nomes canônicos das famílias de tipos de dados usadas durante a execução da consulta.
used_dictionaries (Array(String)) — Nomes canônicos dos dicionários usados durante a execução da consulta.
used_formats (Array(String)) — Nomes canônicos dos formatos usados durante a execução da consulta.
used_functions (Array(String)) — Nomes canônicos das funções usadas durante a execução da consulta.
used_storages (Array(String)) — Nomes canônicos dos componentes de armazenamento usados durante a execução da consulta.
used_table_functions (Array(String)) — Nomes canônicos das funções de tabela usadas durante a execução da consulta.
used_executable_user_defined_functions (Array(String)) — Nomes canônicos das funções executáveis definidas pelo usuário usadas durante a execução da consulta.
used_sql_user_defined_functions (Array(String)) — Nomes canônicos das funções SQL definidas pelo usuário usadas durante a execução da consulta.
used_row_policies (Array(String)) — Lista dos nomes das políticas de linha usadas durante a execução da consulta.
used_privileges (Array(String)) — Privilégios verificados com sucesso durante a execução da consulta.
missing_privileges (Array(String)) — Privilégios ausentes durante a execução da consulta.
transaction_id (Tuple(UInt64, UInt64, UUID)) — Identificador da transação no escopo 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 gravado nem lido do cache de resultados de consultas, ‘Write’ = O resultado da consulta foi gravado no cache de resultados de consultas, ‘Read’ = O resultado da consulta foi lido do cache de resultados de consultas.
asynchronous_read_counters (Map(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).