ClickHouse¶
Dans cet article
Information
ClickHouse est un système de gestion de base de données (SGBD) orienté colonnes haute performance conçu pour l'exécution de requêtes analytiques de classe OLAP. Le SGBD est axé sur l'analyse de volumes massifs 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 la gestion 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 CPU.
- 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 lors de charges de travail analytiques.
- Compatibilité SQL : prend en charge une syntaxe SQL étendue avec des fonctions analytiques supplémentaires, simplifiant la migration d'applications existantes.
- Traitement distribué : permet la création de clusters pour une mise à l'échelle horizontale et le traitement des données sur plusieurs serveurs.
- Réplication des données : la prise en charge intégrée de la réplication garantit la tolérance aux pannes et une haute disponibilité des données.
- Support de multiples formats de données : peut importer et exporter des données au format 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.
Fonctionnalités de déploiement¶
| ID | Nom du logiciel | Système d'exploitation compatible | VM | BM | VGPU | GPU | Min CPU (Cœurs) | Min RAM (GB) | Min HDD/SSD (GB) | Domaine personnalisé | Actif |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | Non | COMMANDER |
Information
Pour obtenir des informations sur les fonctionnalités de déploiement de ce logiciel, consultez ce lien
Remarque
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.
Remarque
Sauf indication contraire, nous installons la dernière version de la release du logiciel à partir du site officiel du développeur.
Prise en main après le déploiement de ClickHouse¶
Une notification sera envoyée à l'adresse e-mail spécifiée lors de l'inscription indiquant que le serveur est prêt pour l'utilisation après le paiement de la commande. Elle contiendra l'adresse IP du VPS, ainsi que l'identifiant et le mot de passe de connexion. Les clients de notre entreprise gèrent le matériel dans le panneau de contrôle des serveurs et via l'API - Invapi.
Détails d'autorisation :
- Server IP address : fournie par e-mail et dans le panneau de contrôle ;
- Login :
default; - Password : correspond au mot de passe du compte
rootet est envoyé à l'adresse e-mail.
Attention
Pour les clients GUI (DBeaver, DataGrip et autres), utilisez le port 8123 (interface HTTP). Le port 9000 est réservé uniquement au client natif clickhouse-client.
Connexion à ClickHouse¶
Méthodes de connexion
Cette section décrit les méthodes les plus courantes pour 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 natif en ligne de commande pour les opérations sur la base de données.
1. Connexion depuis le serveur (en local) :
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 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, trouvez et sélectionnez ClickHouse

- Cliquez sur
Next
3. Configuration des paramètres de connexion
Dans la fenêtre de configuration, spécifiez les paramètres suivants :
Host: <IP-address of your server>
Port: 8123
Database/Schema: (laisser vide ou spécifier default)
Username: default
Password: <root_password>

Attention
Pour les connexions DBeaver, utilisez le port 8123.
4. Téléchargement du pilote JDBC
Lors de la première connexion, DBeaver vous invitera à 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 correctement configuré, un message s'affichera : 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 voir les bases de données, les tables et autres objets.

Problèmes courants :
| Error | Cause | Fix |
|---|---|---|
transport error: 400 | Port 9000 utilisé au lieu du 8123 | Passer au port 8123 |
Connection refused | IP incorrecte ou pare-feu bloquant le port | Vérifier l'adresse IP et les règles du pare-feu |
Authentication failed | Login ou mot de passe incorrects | Vérifier les identifiants |
Hostname is not specified | Tunnel SSH activé accidentellement sans configuration | Fermer 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 un 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 :
Statut du service :
Affichage des logs :
Remarque
Si vous n'agissez pas en tant que root, préfixez les commandes par sudo : sudo clickhouse start
Vérification des ports actifs¶
Pour voir sur quels ports ClickHouse écoute :
Ou de manière plus détaillée :
Pour vérifier les ports configurés dans la configuration :
Pour vérifier un port spécifique :
Sortie attendue de la vérification du port :
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)
Remarque
Des informations détaillées sur la configuration et l'optimisation de ClickHouse sont disponibles dans la documentation officielle des développeurs.
Commander un serveur avec ClickHouse¶
Pour installer ce logiciel via l'API, suivez ces instructions.