ClickHouse¶
Dans cet article
Information
ClickHouse est un système de gestion de base de données (SGBD) en colonnes haute performance conçu pour l'exécution de requêtes analytiques de classe OLAP. Le SGBD est axé sur l'analyse de grands volumes de données avec une faible latence et est largement utilisé dans les tâches d'analyse, de surveillance, de journalisation et de traitement de télémétrie.
ClickHouse. Fonctionnalités principales¶
- Stockage en colonnes : les données sont stockées par colonnes plutôt que par lignes, ce qui accélère considérablement l'exécution des requêtes analytiques et réduit le volume de données traitées.
- Haute performance : optimisé pour le traitement de jeux de données massifs et capable d'exécuter des requêtes sur des milliards de lignes grâce au traitement vectorisé et à une utilisation efficace du processeur.
- Compression des données : utilise des algorithmes de compression spécialisés qui peuvent réduire considérablement la quantité de données stockées (souvent plusieurs fois plus petite que les SGBD basés sur les lignes), en particulier sous les charges de travail analytiques.
- Compatibilité SQL : prend en charge une syntaxe SQL étendue avec des fonctions analytiques supplémentaires, simplifiant la migration des applications existantes.
- Traitement distribué : permet la création de clusters pour la mise à l'échelle horizontale et le traitement des données sur plusieurs serveurs.
- Réplication des données : prise en charge intégrée de la réplication pour assurer la tolérance aux pannes et une haute disponibilité des données.
- Prise en charge de plusieurs formats de données : peut importer et exporter des données aux formats CSV, JSON, Parquet, Avro et autres.
- Vues matérialisées : agrège automatiquement les données en arrière-plan pour accélérer les requêtes récurrentes.
- Intégration avec des sources externes : prend en charge la lecture directe de données depuis MySQL, PostgreSQL, MongoDB, Kafka, S3 et d'autres systèmes.
Caractéristiques du déploiement¶
| ID | Nom du logiciel | Système d'exploitation compatible | VM | BM | VGPU | GPU | Min CPU (Cœurs) | Min RAM (Go) | Min HDD/SSD (Go) | Actif |
|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | COMMANDER |
-
Logiciel installé :
- ClickHouse Server >= 26.1.1
- ClickHouse Client >= 26.1.1
-
Spécificités de l'installation :
- Logiciel installé via le script officiel du développeur ;
- Temps d'installation : 5-10 minutes ;
- La base de données est disponible pour les connexions réseau via divers clients SQL ;
- Par défaut, l'utilisateur
defaultavec le mot de passe du compterootest utilisé.
Emplacements des fichiers de configuration et de données :
- Configuration principale du serveur :
/etc/clickhouse-server/config.xml - Paramètres utilisateur :
/etc/clickhouse-server/users.xml - Journaux du serveur :
/var/log/clickhouse-server/clickhouse-server.log/var/log/clickhouse-server/clickhouse-server.err.log
- Données :
/var/lib/clickhouse/ - Fichier PID :
/run/clickhouse-server/clickhouse-server.pid - Limites système :
/etc/security/limits.d/clickhouse.conf
Ports disponibles pour les connexions :
| Port | Protocole | Objectif | Statut | Clients/Utilisation |
|---|---|---|---|---|
| 8123 | HTTP | Interface HTTP | Actif | DBeaver, DataGrip, Tableau, interface web, JDBC/ODBC |
| 9000 | TCP Native | Protocole natif ClickHouse | Actif | clickhouse-client, pilotes Python/Go |
| 9004 | MySQL | Émulation du protocole MySQL | Actif | MySQL Workbench, client mysql |
| 9005 | PostgreSQL | Émulation du protocole PostgreSQL | Actif | pgAdmin, client psql |
| 9009 | Interserver HTTP | Réplication entre serveurs | Actif | Communication intra-cluster |
| 8443 | HTTPS | Interface HTTP avec SSL | Optionnel | Nécessite la configuration du certificat SSL |
| 9100 | gRPC | Interface gRPC | Optionnel | Clients gRPC |
Note
Les ports 8443 et 9100 sont désactivés par défaut et nécessitent une configuration supplémentaire dans /etc/clickhouse-server/config.xml.
Note
Sauf indication contraire, nous installons la dernière version du logiciel depuis le site Web officiel du développeur.
Démarrage après le déploiement de ClickHouse¶
Après paiement de la commande, une notification de préparation du serveur sera envoyée à l'adresse e-mail indiquée lors de l'inscription. Elle contiendra l'adresse IP du VPS ainsi que les identifiants de connexion. Les clients de notre entreprise gèrent leur équipement dans le panneau de gestion des serveurs et API — Invapi.
Détails d'autorisation :
- Adresse IP du serveur : fournie dans l'e-mail et dans le panneau de contrôle ;
- Identifiant :
default; - Mot de passe : correspond au mot de passe du compte
rootet est envoyé à l'adresse e-mail.
Important
Pour les clients GUI (DBeaver, DataGrip et autres), utilisez le port 8123 (interface HTTP). Le port 9000 est réservé uniquement au clickhouse-client natif.
Connexion à ClickHouse¶
Méthodes de connexion
Cette section décrit les moyens les plus courants de se connecter à ClickHouse via clickhouse-client (client en ligne de commande) et DBeaver (interface graphique). ClickHouse prend également en charge les connexions via d'autres clients : DataGrip, Tableau, MySQL Workbench (via le port 9004), pgAdmin (via le port 9005), ainsi que des bibliothèques de programmation pour Python, Go, Java et d'autres langages.
Connexion via clickhouse-client¶
ClickHouse inclut un client en ligne de commande natif pour les opérations de base de données.
1. Connexion depuis le serveur (localement) :
2. Connexion depuis une machine distante :
3. Exécution d'une requête simple :
4. Affichage de la liste des bases de données :
Connexion via DBeaver¶
DBeaver est un client GUI universel pour travailler avec diverses bases de données, y compris ClickHouse.
1. Installation de DBeaver
Téléchargez et installez DBeaver depuis le site Web officiel.
2. Création d'une nouvelle connexion
- Lancez DBeaver
- Sélectionnez Database >> New Database Connection (ou appuyez sur
Ctrl+Shift+N)

- Dans la liste des bases de données, recherchez et sélectionnez ClickHouse

- Cliquez sur
Next
3. Configuration des paramètres de connexion
Dans la fenêtre des paramètres, spécifiez les paramètres suivants :
Host: <Adresse IP de votre serveur>
Port: 8123
Database/Schema: (laissez vide ou spécifiez default)
Username: default
Password: <mot_de_passe_root>

Extrêmement important
Pour les connexions DBeaver, utilisez le port 8123.
4. Téléchargement du pilote JDBC
Lors de la première connexion, DBeaver vous proposera de télécharger le pilote JDBC pour ClickHouse :
- Cliquez sur
Downloaddans la fenêtre contextuelle :

- Attendez que le téléchargement du pilote soit terminé :

- Cliquez sur
OK
5. Test de la connexion
- Cliquez sur
Test Connection; - Si tout est configuré correctement, un message apparaîtra : Connected (XXX ms) :

- Le message inclura :
- Server: ClickHouse X.X.X.XXX
- Driver: ClickHouse JDBC Driver X.X.X
6. Finalisation de la configuration
- Cliquez sur
Finish; - La connexion apparaîtra dans le Database Navigator ;
- Développez l'arborescence de connexion pour afficher les bases de données, les tables et autres objets.

Problèmes courants :
| Erreur | Cause | Solution |
|---|---|---|
transport error: 400 | Port 9000 utilisé au lieu de 8123 | Passez au port 8123 |
Connection refused | Mauvaise IP ou le pare-feu bloque le port | Vérifiez l'adresse IP et les règles du pare-feu |
Authentication failed | Mauvais identifiant ou mot de passe | Vérifiez les informations d'identification |
Hostname is not specified | Tunnel SSH activé accidentellement sans configuration | Fermez l'onglet SSH dans les paramètres de connexion |
Opérations de base dans ClickHouse¶
Création d'une base de données¶
Création d'une table¶
CREATE TABLE my_database.events
(
event_date Date,
event_time DateTime,
user_id UInt32,
event_type String,
value Float64
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);
Insertion de données¶
INSERT INTO my_database.events VALUES
('2024-12-25', '2024-12-25 10:00:00', 1, 'click', 1.5),
('2024-12-25', '2024-12-25 10:05:00', 2, 'view', 2.3),
('2024-12-25', '2024-12-25 10:10:00', 1, 'purchase', 99.99);
Sélection de données¶
Requête simple :
Agrégation de données :
SELECT
event_type,
count() as events_count,
avg(value) as avg_value
FROM my_database.events
WHERE event_date = '2024-12-25'
GROUP BY event_type;
Séries temporelles :
SELECT
toStartOfHour(event_time) as hour,
count() as events_per_hour
FROM my_database.events
WHERE event_date >= '2024-12-01'
GROUP BY hour
ORDER BY hour;
Importation de données depuis CSV¶
Création d'une table :
CREATE TABLE my_database.logs
(
timestamp DateTime,
level String,
message String
)
ENGINE = MergeTree()
ORDER BY timestamp;
Importation de données :
Gestion des utilisateurs et des privilèges¶
Création d'un utilisateur :
Attribution de permissions :
Affichage des utilisateurs :
Affichage des privilèges :
Gestion du service¶
Démarrage du service :
Arrêt du service :
Redémarrage du service :
État du service :
Affichage des journaux :
Note
Si vous n'opérez pas en tant que root, ajoutez sudo avant les commandes : sudo clickhouse start
Vérification des ports actifs¶
Pour voir quels ports ClickHouse écoute :
Ou plus détaillé :
Pour vérifier les ports configurés dans la configuration :
Pour vérifier un port spécifique :
Sortie attendue de la vérification des ports :
LISTEN *:8123 clickhouse-serv (HTTP)
LISTEN *:9000 clickhouse-serv (Native TCP)
LISTEN *:9004 clickhouse-serv (MySQL)
LISTEN *:9005 clickhouse-serv (PostgreSQL)
LISTEN *:9009 clickhouse-serv (Interserver)
Note
Des informations détaillées sur la configuration et l'optimisation de ClickHouse sont disponibles dans la documentation officielle du développeur.
Commande d'un serveur avec ClickHouse via l'API¶
Pour installer ce logiciel en utilisant l'API, suivez les instructions
Une partie du contenu de cette page a été créée ou traduite par IA.