Tablas del sistema esenciales
system.errors
system.replicas
system.replication_queue
system.merges
system.parts
Problemas habituales en producción
Problemas de espacio en disco
Error “Too many partes”
- Agrupe los datos en lotes con umbrales de 30 segundos o 200 MB
- Habilite async_insert para agrupar automáticamente en lotes
- Use tablas búfer para agrupar en lotes del lado del servidor
- Configure Kafka para controlar el tamaño de los lotes
Problemas con marcas de tiempo no válidas
Riesgos de la operación ALTER
ALTER de gran tamaño en tablas de varios terabytes pueden consumir una cantidad considerable de recursos y, potencialmente, bloquear bases de datos. En un caso compartido por la comunidad, se cambió un Integer por un Float en 14 TB de datos, lo que bloqueó toda la base de datos y obligó a reconstruirla a partir de copias de seguridad.
Supervise las mutaciones costosas:
Memoria y rendimiento
Agregación externa
max_bytes_before_external_group_by, lo que ayuda a evitar fallos por falta de memoria en operaciones GROUP BY de gran tamaño. Puedes obtener más información sobre esta configuración aquí.
Detalles de async insert
Configuración de la tabla distribuida
insert_distributed_sync para procesarlas en paralelo y enviar los datos de inmediato a los segmentos.
Supervisa la acumulación de datos temporales al usar tablas distribuidas.
Umbrales de monitorización del rendimiento
- Partes por partición: preferiblemente, menos de 100
- Inserciones retrasadas: deben mantenerse en cero
- Tasa de inserción: limítela a alrededor de 1 por segundo para un rendimiento óptimo
Referencia rápida
| Problema | Detección | Solución |
|---|---|---|
| Espacio en disco | Comprueba los bytes totales en system.parts | Supervisa el uso y planifica el escalado |
| Demasiadas partes | Cuenta las partes por tabla | Agrupa las inserciones y habilita async_insert |
| Retraso de replicación | Comprueba el retraso en system.replicas | Supervisa la red y reinicia las réplicas |
| Datos erróneos | Valida las fechas de partición | Implementa la validación de marcas temporales |
| Mutaciones atascadas | Comprueba el estado de system.mutations | Haz primero pruebas con pocos datos |