Tabelas de sistema essenciais
system.errors
system.replicas
system.replication_queue
system.merges
system.parts
Problemas comuns em ambientes de produção
Problemas de espaço em disco
Erro “Too many partes”
- Agrupe os dados em lotes usando limites de 30 segundos ou 200 MB
- Ative
async_insertpara agrupamento automático em lotes - Use tabelas de buffer para agrupamento em lotes no lado do servidor
- Configure o Kafka para tamanhos de lote controlados
Problemas com timestamps inválidos
Riscos da operação ALTER
ALTER grandes em tabelas com vários terabytes podem consumir muitos recursos e até bloquear bancos de dados. Em um exemplo da comunidade, a mudança de um Integer para um Float em 14 TB de dados bloqueou todo o banco de dados e exigiu a reconstrução a partir de backups.
Monitore mutações custosas:
Memória e desempenho
Agregação externa
max_bytes_before_external_group_by, o que ajuda a evitar falhas por falta de memória em operações GROUP BY de grande volume. Saiba mais sobre essa configuração aqui.
Detalhes do async insert
Configuração de tabela distribuída
insert_distributed_sync para processamento paralelo e envio imediato de dados para os shards.
Monitore o acúmulo temporário de dados ao usar tabelas distribuídas.
Limiares de monitoramento de desempenho
- Partes por partição: de preferência, menos de 100
- Inserções atrasadas: devem se manter em zero
- Taxa de inserção: limite a cerca de 1 por segundo para um desempenho ideal