Descripción general de las tablas del sistema
- Estados, procesos y entorno del servidor.
- Los procesos internos del servidor.
- Las opciones utilizadas al compilar el binario de ClickHouse.
- Están ubicadas en la base de datos
system. - Solo están disponibles para lectura.
- No se pueden eliminar ni modificar, pero sí se pueden desvincular.
/etc/clickhouse-server/config.d/, o configurando los elementos correspondientes en /etc/clickhouse-server/config.xml. Los elementos que se pueden personalizar son:
database: base de datos a la que pertenece la tabla de registro del sistema. Esta opción ahora está obsoleta. Todas las tablas de registro del sistema están en la base de datossystem.table: tabla en la que insertar datos.partition_by: especifica la expresión PARTITION BY.ttl: especifica la expresión TTL de la tabla.flush_interval_milliseconds: intervalo de volcado de datos a disco.engine: proporciona la expresión completa del motor (empezando porENGINE =) con parámetros. Esta opción entra en conflicto conpartition_byyttl. Si se configuran juntas, el servidor generará una excepción y finalizará.
MergeTree.
Fuentes de métricas del sistema
- la capability
CAP_NET_ADMIN. - procfs (solo en Linux).
CAP_NET_ADMIN, intenta usar ProcfsMetricsProvider como alternativa. ProcfsMetricsProvider permite recopilar métricas del sistema por consulta (de CPU y E/S).
Si procfs es compatible y está habilitado en el sistema, el servidor de ClickHouse recopila estas métricas:
OSCPUVirtualTimeMicrosecondsOSCPUWaitMicrosecondsOSIOWaitMicrosecondsOSReadCharsOSWriteCharsOSReadBytesOSWriteBytes
OSIOWaitMicroseconds está deshabilitada de forma predeterminada en los kernels de Linux a partir de la versión 5.14.x.
Puede habilitarla con sudo sysctl kernel.task_delayacct=1 o creando un archivo .conf en /etc/sysctl.d/ con kernel.task_delayacct = 1Tablas del sistema en ClickHouse Cloud
parts debería ser coherente independientemente del nodo desde el que se consulte:
- Tablas del sistema con el sufijo
_log. - Tablas del sistema que exponen métricas; por ejemplo,
metrics,asynchronous_metrics,events. - Tablas del sistema que exponen procesos en curso; por ejemplo,
processes,merges.
system.query_log, que contienen una fila por cada consulta ejecutada por el nodo:
Consultar varias versiones
merge. Por ejemplo, la siguiente consulta identifica la consulta más reciente enviada al nodo de destino en cada tabla query_log:
No confíes en el sufijo numérico para el ordenAunque el sufijo numérico de las tablas puede sugerir el orden de los datos, nunca debes basarte en él. Por este motivo, usa siempre la función de tabla merge combinada con un filtro de fecha cuando consultes rangos de fechas específicos.
Consultas en todos los nodos
clusterAllReplicas en combinación con la función merge. La función clusterAllReplicas permite consultar tablas del sistema en todas las réplicas del clúster “default”, consolidando los datos específicos de cada nodo en un único resultado. En combinación con la función merge, puede usarse para consultar todos los datos del sistema de una tabla específica en un clúster.
Este enfoque es especialmente valioso para la monitorización y la depuración de operaciones en todo el clúster, ya que permite a los usuarios analizar eficazmente el estado y el rendimiento de su implementación de ClickHouse Cloud.
ClickHouse Cloud proporciona clústeres con múltiples réplicas para redundancia y failover. Esto habilita funciones como el autoscaling dinámico y las actualizaciones sin tiempo de inactividad. En un momento dado, puede haber nodos nuevos en proceso de añadirse al clúster o de eliminarse de él. Para omitir estos nodos, añada
SETTINGS skip_unavailable_shards = 1 a las consultas que usan clusterAllReplicas, como se muestra a continuación.query_log, algo que suele ser esencial para el análisis.
Consultas entre nodos y versiones
merge, obtenemos un resultado preciso para nuestro intervalo de fechas: