Visão geral das tabelas do sistema
- Estados, processos e ambiente do servidor.
- Processos internos do servidor.
- Opções usadas quando o binário do ClickHouse foi compilado.
- Localizadas no banco de dados
system. - Disponíveis somente para leitura.
- Não podem ser removidas nem alteradas, mas podem ser desanexadas.
/etc/clickhouse-server/config.d/ ou definindo os elementos correspondentes em /etc/clickhouse-server/config.xml. Os elementos que podem ser personalizados são:
database: banco de dados ao qual a tabela de log do sistema pertence. Esta opção está obsoleta no momento. Todas as tabelas de log do sistema ficam no banco de dadossystem.table: tabela na qual inserir os dados.partition_by: especifica a expressão PARTITION BY.ttl: especifica a expressão TTL da tabela.flush_interval_milliseconds: intervalo para gravar os dados em disco.engine: fornece a expressão completa do motor (começando comENGINE =) com parâmetros. Esta opção entra em conflito compartition_byettl. Se forem definidas juntas, o servidor gerará uma exceção e será encerrado.
MergeTree.
Fontes de métricas do sistema
- a capability
CAP_NET_ADMIN. - procfs (apenas no Linux).
CAP_NET_ADMIN, ele tentará usar ProcfsMetricsProvider. O ProcfsMetricsProvider permite coletar métricas do sistema por consulta (de CPU e I/O).
Se o procfs for compatível e estiver habilitado no sistema, o servidor ClickHouse coletará estas métricas:
OSCPUVirtualTimeMicrosecondsOSCPUWaitMicrosecondsOSIOWaitMicrosecondsOSReadCharsOSWriteCharsOSReadBytesOSWriteBytes
OSIOWaitMicroseconds vem desabilitada por padrão em kernels Linux a partir da versão 5.14.x.
Você pode habilitá-la usando sudo sysctl kernel.task_delayacct=1 ou criando um arquivo .conf em /etc/sysctl.d/ com kernel.task_delayacct = 1Tabelas do sistema no ClickHouse Cloud
parts deve ser consistente independentemente do nó em que for consultada:
- Tabelas do sistema com o sufixo
_log. - Tabelas do sistema que expõem métricas, por exemplo,
metrics,asynchronous_metrics,events. - Tabelas do sistema que expõem processos em andamento, por exemplo,
processes,merges.
system.query_log, que contêm uma linha para cada consulta executada pelo nó:
Consultando várias versões
merge. Por exemplo, a consulta abaixo identifica a consulta mais recente enviada ao nó de destino em cada tabela query_log:
Não confie no sufixo numérico para ordenaçãoEmbora o sufixo numérico das tabelas possa sugerir a ordem dos dados, ele nunca deve ser usado como referência. Por esse motivo, sempre use a função de tabela
merge combinada com um filtro de data ao consultar intervalos de datas específicos.Consultando em todos os nós
clusterAllReplicas em combinação com a função merge. A função clusterAllReplicas permite consultar tabelas do sistema em todas as réplicas do cluster “default”, consolidando os dados específicos de cada nó em um resultado unificado. Quando combinada com a função merge, ela pode ser usada para abranger todos os dados de sistema de uma tabela específica em um cluster.
Essa abordagem é particularmente valiosa para monitoramento e depuração de operações em todo o cluster, garantindo que os usuários possam analisar com eficácia a integridade e o desempenho da sua implantação no ClickHouse Cloud.
O ClickHouse Cloud fornece clusters com várias réplicas para redundância e failover. Isso viabiliza recursos como autoscaling dinâmico e upgrades sem tempo de inatividade. Em um determinado momento, novos nós podem estar sendo adicionados ao cluster ou removidos dele. Para ignorar esses nós, adicione
SETTINGS skip_unavailable_shards = 1 às consultas que usam clusterAllReplicas, como mostrado abaixo.query_log, muitas vezes essencial para a análise.
Consultando entre nós e versões
merge, obtemos um resultado preciso para o nosso intervalo de datas: