Vue d’ensemble des tables système
- Les états, les processus et l’environnement du serveur.
- Les processus internes du serveur.
- Les options utilisées lors de la compilation du binaire ClickHouse.
- Situées dans la base de données
system. - Disponibles en lecture seule.
- Ne peuvent pas être supprimées ni modifiées, mais peuvent être détachées.
/etc/clickhouse-server/config.d/, ou en définissant les éléments correspondants dans /etc/clickhouse-server/config.xml. Les éléments personnalisables sont :
database: base de données à laquelle appartient la table de journaux système. Cette option est désormais obsolète. Toutes les tables de journaux système se trouvent dans la base de donnéessystem.table: table dans laquelle insérer les données.partition_by: spécifie l’expression PARTITION BY.ttl: spécifie l’expression TTL de la table.flush_interval_milliseconds: intervalle de vidage des données sur disque.engine: fournit l’expression complète du moteur (commençant parENGINE =) avec ses paramètres. Cette option entre en conflit avecpartition_byetttl. S’ils sont définis ensemble, le serveur renverra une exception et s’arrêtera.
MergeTree.
Sources des métriques système
- la capacité
CAP_NET_ADMIN; - procfs (uniquement sous Linux).
CAP_NET_ADMIN, il tente de se rabattre sur ProcfsMetricsProvider. ProcfsMetricsProvider permet de collecter des métriques système par requête (pour le CPU et les E/S).
Si procfs est pris en charge et activé sur le système, le serveur ClickHouse collecte les métriques suivantes :
OSCPUVirtualTimeMicrosecondsOSCPUWaitMicrosecondsOSIOWaitMicrosecondsOSReadCharsOSWriteCharsOSReadBytesOSWriteBytes
OSIOWaitMicroseconds est désactivé par défaut dans les noyaux Linux à partir de la version 5.14.x.
Vous pouvez l’activer avec sudo sysctl kernel.task_delayacct=1 ou en créant un fichier .conf dans /etc/sysctl.d/ contenant kernel.task_delayacct = 1Tables système dans ClickHouse Cloud
parts doivent être cohérentes, quel que soit le nœud depuis lequel elles sont interrogées :
- Les tables système avec un suffixe
_log. - Les tables système qui exposent des métriques, par exemple
metrics,asynchronous_metrics,events. - Les tables système qui exposent des processus en cours, par exemple
processes,merges.
system.query_log, qui contiennent une ligne pour chaque requête exécutée par le nœud :
Interroger plusieurs versions
merge. Par exemple, la requête ci-dessous identifie la requête la plus récente adressée au nœud cible dans chaque table query_log :
Ne vous fiez pas au suffixe numérique pour déterminer l’ordreBien que le suffixe numérique des tables puisse laisser penser qu’il indique l’ordre des données, il ne faut jamais s’y fier. C’est pourquoi vous devez toujours utiliser la fonction de table merge, associée à un filtre sur la date, lorsque vous ciblez des plages de dates spécifiques.
Interroger l’ensemble des nœuds
clusterAllReplicas en combinaison avec la fonction merge. La fonction clusterAllReplicas permet d’interroger les tables système sur toutes les répliques du cluster “default”, en regroupant les données propres à chaque nœud dans un résultat unifié. Combinée à la fonction merge, elle permet de cibler l’ensemble des données système d’une table donnée dans un cluster.
Cette approche est particulièrement utile pour la surveillance et le débogage des opérations à l’échelle du cluster, afin d’analyser efficacement l’état de santé et les performances de leur déploiement ClickHouse Cloud.
ClickHouse Cloud propose des clusters avec plusieurs répliques pour la redondance et le basculement. Cela permet des fonctionnalités telles que l’autoscaling dynamique et les mises à niveau sans interruption de service. À un instant donné, de nouveaux nœuds peuvent être en cours d’ajout au cluster ou de suppression du cluster. Pour ignorer ces nœuds, ajoutez
SETTINGS skip_unavailable_shards = 1 aux requêtes utilisant clusterAllReplicas, comme indiqué ci-dessous.query_log, souvent essentielle à l’analyse.
Interroger sur plusieurs nœuds et versions
merge, nous obtenons un résultat exact pour notre intervalle de dates :