Aller au contenu principal

ClickHouse (clickhouse)

Base analytique en colonnes pour les traces, les événements d'audit et les métriques d'usage. Serveur unique ou cluster partitionné et répliqué avec ClickHouse Keeper.

Généré depuis catalog/services/clickhouse.yaml : ne pas modifier à la main.

Résumé​

Version25.3.3.42
Usageinstaller et configurer
Coucheinfrastructure (présentée à part)
CatégoriePlateformes de données
Méthodes d'installationpodman, package
Connexion externeclickhouse
Réservé au bac à sablenon

Licence​

Identifiant SPDXApache-2.0
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Composant de la plateformeclickhouse

Paquets et artefacts​

Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.

TypePaquetVersionLicenceDétails
image de conteneurdocker.io/clickhouse/clickhouse-server25.3.3.42Apache-2.0clé d'image server, utilisée par keeper, server, condensé sha256:cc6b7488017512db99bff97c493030152bb786249afdfec8b6714eaf16a6f4ae
paquet systèmeclickhouse-serverversion du dépôt configuréApache-2.0famille RHEL (dnf)
paquet systèmeclickhouse-clientversion du dépôt configuréApache-2.0famille RHEL (dnf)
paquet systèmeclickhouse-common-staticversion du dépôt configuréApache-2.0famille RHEL (dnf)
paquet systèmeclickhouse-serverversion du dépôt configuréApache-2.0famille Debian (apt)
paquet systèmeclickhouse-clientversion du dépôt configuréApache-2.0famille Debian (apt)
paquet systèmeclickhouse-common-staticversion du dépôt configuréApache-2.0famille Debian (apt)

Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
podmanfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64, aarch64 (non restreintes par le descripteur)
packagefamille RHEL (dnf), famille Debian (apt)x86_64, aarch64 (non restreintes par le descripteur)

Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.

Prérequis​

Hôte​

  • au moins 4096 Mo de mémoire (bloquant, memory).
  • au moins 2 CPU (avertissement, cpu).

Réseau et ports​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
keeperkeeper9181/tcpoui
keeperraft9234/tcpoui
serverhttp8123/tcpoui
servernative9000/tcpoui
serverinterserver9009/tcpoui
servermetrics9363/tcpoui

Services et connexions nécessaires​

Ce service n'a aucune dépendance.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
podmanouiles images de conteneur du descripteur, exécutées par Podman sous systemd
package-les paquets système du descripteur, installés par le gestionnaire de paquets de l'hôte

Composants​

ComposantTypeMéthodes d'installationPorts
ClickHouse Keeper (keeper)maîtrepodman, package9181/tcp, 9234/tcp
Serveur ClickHouse (server)maîtrepodman, package8123/tcp, 9000/tcp, 9009/tcp, 9363/tcp

Serveur unique (standalone) (par défaut)​

Un seul serveur ClickHouse sans Keeper.

Ce que le mode déploie :

ComposantPlacement
keepernon utilisé
servermin 1, max 1

Partitionné et répliqué (cluster)​

Partitions de réplicas (nombre de serveurs multiple des réplicas) coordonnées par 3 ou 5 nœuds Keeper.

Ce que le mode déploie :

ComposantPlacement
keepermin 3, max 5, nombre impair, recommandé 3
servermin 2, recommandé 4

Installer ce service​

L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.

  1. Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.

  2. Choisissez le service. À l'étape Service, sélectionnez ClickHouse. La carte affiche la licence Apache-2.0. Choisissez la Méthode parmi podman, package (par défaut podman). Pour enregistrer à la place un service clickhouse existant de votre organisation, activez Utiliser un service externe existant.

  3. Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), cluster. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. Avec plusieurs composants, placez chacun sur ses hôtes dans Répartition des composants (Proposer un placement propose un placement qui respecte les cardinalités).

  4. Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.

  5. Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.

  6. Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.

  7. Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.

Haute disponibilité​

Clusternatif (native)
Haute disponibiliténatif (native)
Basculecôté client (client)
Réplicationnatif (native)
QuorumClickHouse Keeper (keeper)
Découvertestatique (static)
Point d'entréen'importe quel nœud (any-node)
Documentation officiellehttps://clickhouse.com/docs/guides/oss/deployment-and-scaling/keeper
Paramètre TLS entre pairstls_enabled
Commande d'état du clustersystem_clusters

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
standaloneautonome (standalone)unique (single)-1Un serveur sans Keeper, sans réplication.
clustercluster (cluster)actif-actif (active-active)keeper3Shards de 2 réplicas ou plus coordonnés par 3 ou 5 nœuds ClickHouse Keeper.

Remarques​

  • Seules les tables Replicated*MergeTree sont copiées entre réplicas ; une table MergeTree simple vit sur un seul serveur.
  • Placer les nœuds Keeper dans des domaines de panne distincts : la perte de la majorité Keeper passe les tables répliquées en lecture seule.

Paramètres de configuration​

Réseau​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port HTTP (http_port)port8123-nonnonnonPort de l'interface HTTP (HTTPS uniquement quand TLS est activé).
Port natif (native_port)port9000-nonnonnonPort du protocole TCP natif (protocole natif en TLS uniquement quand TLS est activé).
Port interserveur (interserver_port)port9009-nonnonnonPort utilisé par les réplicas pour récupérer les parts (HTTPS uniquement quand TLS est activé).
Port des métriques (metrics_port)port9363-nonnonnonPort du point de terminaison Prometheus. Inutilisé quand TLS est activé : /metrics est alors servi en HTTPS sur le port HTTP.

Cluster​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port client de Keeper (keeper_port)port9181-nonnonnonPort de ClickHouse Keeper pour les serveurs (TLS uniquement quand TLS est activé).
Port Raft de Keeper (keeper_raft_port)port9234-nonnonnonPort du protocole Raft entre les nœuds Keeper (Raft sécurisé quand TLS est activé).
Nom du cluster (cluster_name)stringnavin^[a-z][a-z0-9_]{0,40}$nonnonnonNom du cluster dans remote_servers (ON CLUSTER).
Réplicas par partition (replicas)int2min 1, max 5nonnonnonServeurs par partition ; les serveurs sont groupés dans l'ordre de la topologie.

Réglages​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Part de mémoire (max_server_memory_ratio)float0.8min 0.1, max 0.95nonnonnonPart de la mémoire de l'hôte que le serveur peut utiliser.

Sécurité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Mot de passe administrateur (admin_password)passwordgénéré-nonouinonMot de passe de l'utilisateur navin_admin (gestion des accès, commandes d'exploitation).
Mot de passe interserveur (interserver_password)passwordgénéré-nonouinonIdentifiant partagé par les réplicas.
TLS (tls_enabled)boolfalse-nonnonouiServir HTTPS, le protocole natif en TLS, l'interserveur en HTTPS et, en mode cluster, Keeper et son Raft en TLS avec le certificat émis par l'autorité de la console ; les ports en clair sont fermés.

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
httphttpserver8123 (http_port)-tls_enabledusername, database, tlspasswordprovision_consumer
nativeclickhouseserver9000 (native_port)-tls_enabledusername, database, tlspasswordprovision_consumer

Commandes​

CommandeComposantCibleDescription
Provisionner la base d'un consommateur (provision_consumer)serverpremier hôteCrée ou met à jour l'utilisateur et la base d'un service consommateur sur tout le cluster (idempotent).
Provisionner la base de télémétrie (provision_telemetry)serverpremier hôteCrée la base navin_manager de la télémétrie temps réel des machines et des services, son utilisateur d'écriture navin_manager (NM_CLICKHOUSE_USER du Manager) et l'utilisateur en lecture seule navin_reader des analyses SQL et des tableaux de bord exploités par le client (idempotent).
Disposition du cluster (system_clusters)serverpremier hôteListe system.clusters (partitions, réplicas, erreurs).
File de réplication (replication_queue)servertous les hôtesAffiche les tâches de réplication en attente de chaque serveur.

Paramètres des commandes​

CommandeParamètreTypeDéfautObligatoireDescription
provision_consumerBase de données (database)string-ouiBase de données du consommateur.
provision_consumerUtilisateur (username)string-ouiUtilisateur du consommateur.
provision_consumerMot de passe (password)password-ouiMot de passe de l'utilisateur (dérivé par consommateur).
provision_telemetryMot de passe d'écriture (writer_password)password-ouiMot de passe de navin_manager, l'utilisateur avec lequel le Manager exporte (NM_CLICKHOUSE_PASSWORD_FILE).
provision_telemetryMot de passe de lecture (reader_password)password-ouiMot de passe de navin_reader, utilisateur en lecture seule des tableaux de bord (SELECT sur navin_manager uniquement).

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
keeperTCP {{ host.ip or '127.0.0.1' }}:{{ config.keeper_port }}-
serverHTTP {{ ('https://' ~ host.fqdn) if config.tls_enabled else ('http://' ~ (host.ip or '127.0.0.1')) }}:{{ config.http_port }}/pingAttendu 200 ; Attendu Ok. ; 60 tentatives

Disponibilité (contrôle du service)​

ContrôleDétails
HTTP {{ ('https://' ~ host.fqdn) if config.tls_enabled else ('http://' ~ (host.ip or '127.0.0.1')) }}:{{ config.http_port }}/pingAttendu 200

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 4096}au moins 4096 Mo de mémoirebloquanttous les composants
cpucpu_count {"min": 2}au moins 2 CPUavertissementtous les composants
http_port_freeport_free {"param": "http_port"}port 8123 libre sur l'hôtebloquantserver

Sauvegarde et restauration​

BACKUP natif de toutes les bases hors système vers le disque local navin_backups, archivé ; la restauration supprime les bases hors système puis lance RESTORE (P5C-008, moteurs clickhouse_backup et clickhouse_restore). Mode serveur unique seulement : le mode partitionné exige BACKUP ON CLUSTER vers un disque partagé et le script le refuse avec un message explicite.

Formatclickhouse-native
Composantserver
Fichiers{{ backup.dir }}/clickhouse.tar.gz
Test de restaurationnon
Instances arrêtées pendant la restaurationnon

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.

Liens rapides​

  • Play (console SQL) : {{ 'https' if config.tls_enabled else 'http' }}://{{ host.fqdn }}:{{ config.http_port }}/play

Documentation amont​