Qu’est-ce que ClickHouse ?
ClickHouse® est un système de gestion de base de données SQL orienté colonnes (SGBD) pour le traitement analytique en ligne (OLAP). Il est disponible à la fois en tant que logiciel open source et en tant qu’offre Cloud.
ClickHouse® est un système de gestion de base de données (SGBD) SQL haute performance orienté colonnes pour le traitement analytique en ligne (OLAP). Il est disponible à la fois en tant que logiciel open source et sous forme d’offre Cloud.
Vous pouvez exécuter cette requête dans le ClickHouse SQL Playground qui sélectionne et filtre quelques-unes seulement parmi plus de 100 colonnes existantes, et renvoie le résultat en quelques millisecondes :
Comme vous pouvez le voir dans la section des statistiques du schéma ci-dessus, la requête a traité 100 millions de lignes en 92 millisecondes, soit un débit de plus d’un milliard de lignes par seconde, ou un peu moins de 7 Go de données transférées par seconde.
SGBD orienté lignes
Dans une base de données orientée lignes, même si la requête ci-dessus ne traite que quelques-unes des colonnes existantes, le système doit tout de même charger du disque vers la mémoire les données d’autres colonnes. Cela s’explique par le fait que les données sont stockées sur le disque en fragments appelés blocs (généralement de taille fixe, par exemple 4 Ko ou 8 Ko). Les blocs sont les plus petites unités de données lues du disque vers la mémoire. Lorsqu’une application ou une base de données demande des données, le sous-système d’E/S disque du système d’exploitation lit les blocs nécessaires sur le disque. Même si seule une partie d’un bloc est nécessaire, le bloc entier est chargé en mémoire (en raison de la conception du disque et du système de fichiers) :
SGBD orienté colonnes
Comme les valeurs de chaque colonne sont stockées séquentiellement, les unes à la suite des autres sur le disque, aucune donnée inutile n’est chargée lorsque la requête ci-dessus est exécutée.
Comme le stockage et le transfert par blocs du disque vers la mémoire sont alignés sur le mode d’accès aux données des requêtes analytiques, seules les colonnes nécessaires à une requête sont lues sur le disque, ce qui évite des E/S inutiles sur des données non utilisées. C’est bien plus rapide que le stockage par ligne, où des lignes entières (y compris des colonnes non pertinentes) sont lues :
L’analytique, également appelée OLAP (Online Analytical Processing), désigne des requêtes SQL comportant des calculs complexes (par exemple, des agrégations, du traitement de chaînes de caractères ou des calculs arithmétiques) sur de très grands volumes de données.
Contrairement aux requêtes transactionnelles (ou OLTP, Online Transaction Processing), qui ne lisent et n’écrivent que quelques lignes par requête et s’exécutent donc en quelques millisecondes, les requêtes analytiques traitent couramment des milliards, voire des milliers de milliards de lignes.
Dans de nombreux cas d’usage, les requêtes analytiques doivent être « en temps réel », c’est-à-dire renvoyer un résultat en moins d’une seconde.
Un tel niveau de performance ne peut être atteint qu’avec la bonne « orientation » des données.
Les bases de données stockent les données soit en lignes, soit en colonnes.
Dans une base de données orientée lignes, les lignes successives d’une table sont stockées séquentiellement, les unes à la suite des autres. Cette disposition permet de récupérer rapidement les lignes, car les valeurs de chaque colonne d’une ligne sont stockées ensemble.
ClickHouse est une base de données orientée colonnes. Dans ce type de système, les tables sont stockées sous forme de collection de colonnes, c’est-à-dire que les valeurs de chaque colonne sont stockées séquentiellement les unes à la suite des autres. Cette disposition rend plus difficile la reconstitution de lignes individuelles (car il existe désormais des écarts entre les valeurs d’une même ligne), mais les opérations sur les colonnes, comme les filtres ou l’agrégation, deviennent bien plus rapides que dans une base de données orientée lignes.
La différence s’illustre le mieux avec un exemple de requête exécutée sur 100 millions de lignes de données réelles anonymisées d’analyse du trafic web :
ClickHouse utilise un mécanisme de réplication multi-maître asynchrone pour garantir un stockage redondant des données sur plusieurs nœuds. Une fois les données écrites sur n’importe quelle réplique disponible, toutes les autres répliques récupèrent leur copie en arrière-plan. Le système maintient des données identiques sur les différentes répliques. La récupération après la plupart des défaillances s’effectue automatiquement, ou semi-automatiquement dans les cas complexes.
ClickHouse assure la gestion des comptes utilisateurs à l’aide de requêtes SQL et permet de configurer un contrôle d’accès basé sur les rôles, semblable à celui que l’on trouve dans la norme ANSI SQL et dans les systèmes de gestion de bases de données relationnelles les plus répandus.
ClickHouse prend en charge un langage de requête déclaratif fondé sur SQL, qui est dans de nombreux cas identique à la norme ANSI SQL. Les clauses de requête prises en charge incluent GROUP BY, ORDER BY, les sous-requêtes dans FROM, la clause JOIN, l’opérateur IN, les fonctions de fenêtre et les sous-requêtes scalaires.
ClickHouse permet de privilégier les performances au détriment de la précision. Par exemple, certaines de ses fonctions d’agrégation calculent de manière approximative le nombre de valeurs distinctes, la médiane et les quantiles. De plus, les requêtes peuvent être exécutées sur un échantillon des données afin d’obtenir rapidement un résultat approximatif. Enfin, les agrégations peuvent être effectuées sur un nombre limité de clés plutôt que sur l’ensemble des clés. Selon le degré de déséquilibre dans la répartition des clés, cela peut fournir un résultat raisonnablement précis tout en utilisant bien moins de ressources qu’un calcul exact.
ClickHouse choisit l’algorithme de jointure de façon adaptative : il commence par des jointures de hachage rapides et bascule vers des jointures de fusion lorsqu’il y a plus d’une grande table.
ClickHouse est réputé pour offrir des performances de requête extrêmement rapides.
Pour comprendre pourquoi ClickHouse est si rapide, consultez le guide Pourquoi ClickHouse est-il rapide ?.
Dernière modification le 29 juin 2026
Précédent
Pourquoi ClickHouse est-il si rapide ?Il a été conçu pour être rapide. Les performances d’exécution des requêtes ont toujours été une priorité absolue pendant le processus de développement, mais d’autres caractéristiques importantes comme la facilité d’utilisation, l’évolutivité et la sécurité ont également été prises en compte afin que ClickHouse puisse devenir un véritable système de production.
Suivant