Les articles
Clickhouse, le système de gestion de base de données (SGBD) de référence de la modern data stack en 2024 ?
8
min -
Publié le
29
March
2024

Clickhouse, le système de gestion de base de données (SGBD) de référence de la modern data stack en 2024 ?

Data Tools
03
/
24

Qu'est-ce qu'un datawarehouse ?

Un datawarehouse est un système centralisé de stockage de grands volumes de données provenant de diverses sources au sein d'une organisation. Son objectif principal est de faciliter l'établissement de rapports, l'analyse et l'exploration des données en consolidant les données provenant de différentes sources opérationnelles en une vue unique et unifiée.

Les principales caractéristiques d'un datawarehouse sont la centralisation, l'organisation par sujet, l'intégration de sources de données multiples, le stockage en fonction du temps pour l'analyse historique et la non-volatilité pour maintenir l'intégrité des données ainsi que la notion de scalabilité pour les cas de big data.

Les datawarehouse utilisent souvent des techniques telles que la modélisation des données, les processus ETL (extraction, transformation, chargement) ou ELT (extraction, chargement, transformation) pour optimiser le stockage et la récupération des données à des fins d'analyse. Ils jouent un rôle crucial dans le soutien de la veille stratégique, de la prise de décision et de la planification stratégique au sein des organisations en fournissant une source fiable et centralisée de données pour l'analyse. Ce sont des éléments clés des Modern Data Platforms.

Qu'est-ce que ClickHouse ?

ClickHouse est un système de gestion de base de données (SGBD) open source, performant et orienté colonnes, créé par la société russe Yandex en 2009 dans le but principal de le rendre aussi rapide que possible pour traiter efficacement de grandes quantités de données et fournir des performances élevées pour les applications et les analyses en temps réel. C’est une solution de plus en plus adoptée par les entreprises et qui devient incontournable dans le paysage de la Modern Data Stack.

ClickHouse peut être utilisé en tant que logiciel open source on-premise ou via une offre dans le cloud basée sur AWS et GCP (bientôt Azure à l’heure où cet article est écrit).

Logo de ClickHouse

Les cas d’utilisation de ClickHouse

ClickHouse est principalement utilisé pour des scénarios OLAP.

OLAP signifie Online Analytical Processing (traitement analytique en ligne). Il s'agit d'une catégorie de technologie logicielle utilisée pour analyser les données afin de soutenir les processus de prise de décision. Les systèmes OLAP sont conçus pour les requêtes complexes et l'analyse multidimensionnelle des données.

Lorsque l'on travaille sur des scénarios OLAP, on a tendance à se concentrer sur certaines caractéristiques :

  • Les tables sont très grandes, des milliards ou des trillions de lignes et des centaines ou des milliers de colonnes.
  • L'extraction et l'agrégation d'un petit ensemble de colonnes à la fois pour se concentrer sur des sous-ensembles spécifiques d'intérêt.
  • Les requêtes doivent être rapides pour fournir ce comportement en temps réel aux rapports et aux analyses.

Le but premier de Clickhouse était de récupérer de grandes quantités de données aussi rapidement que possible. Le fait qu'il soit orienté colonnes (voir schéma explicatif ci-dessous) le rend des centaines de fois plus rapide que les bases de données traditionnelles lorsqu'il s'agit de récupérer un ensemble de colonnes.

En outre, ClickHouse utilise toutes les ressources système disponibles à leur plein potentiel pour traiter chaque requête analytique aussi rapidement que possible. ClickHouse propose également d'autres fonctionnalités pour améliorer les performances, comme le traitement parallèle et distribué.

Schéma de cas d'usage ClickHouse

Quelles sont les particularités et avantages de ClickHouse ?

Stockage en colonnes

ClickHouse stocke les données dans un format en colonnes, ce qui signifie qu'il stocke chaque colonne d'une table séparément plutôt qu’en lignes. Cela permet une compression et une récupération efficaces des données, car les requêtes peuvent accéder rapidement aux seules colonnes nécessaires à l'analyse, ce qui minimise les opérations d'E/S et accélère les performances des requêtes.

Schéma comparatif du stockageorienté lignes ou colonnes
https://www.bilinksolutions.com/blog-business-intelligence/le-stockage-en-colonne-dans-sap-hana/

Traitement parallèle

ClickHouse utilise des techniques de traitement parallèle pour exécuter les requêtes simultanément sur plusieurs cœurs du CPU. Ce parallélisme permet d'obtenir un débit élevé et de faibles temps de latence pour les requêtes, car la charge de travail est répartie entre les ressources disponibles, ce qui permet une utilisation efficace des ressources hardware.

Traitement distribué

ClickHouse peut être déployé dans une architecture distribuée sur plusieurs nœuds, ce qui lui permet de gérer de grands volumes de données et une concurrence élevée au niveau des requêtes. Les données sont partitionnées et répliquées sur les nœuds à l'aide de shards et replicas, et les requêtes peuvent être exécutées en parallèle sur l'ensemble du cluster, offrant ainsi une évolutivité horizontale et une tolérance aux pannes.

Compatibilité SQL

ClickHouse prend en charge un sous-ensemble riche de SQL pour le requêtage et la manipulation des données. Cela inclut les fonctions SQL standard telles que SELECT, INSERT, UPDATE, DELETE, JOIN et les fonctions d'agrégation. En outre, ClickHouse offre des extensions et des optimisations adaptées aux charges de travail analytiques, telles que des fonctions d'agrégation et des fonctions de fenêtre efficaces, ainsi que des Materialized Views.

Primary Indexes

ClickHouse prend en charge les index primaires, qui sont utilisés pour appliquer les contraintes d'unicité sur les colonnes de la table et optimiser la récupération des données. Les index primaires sont généralement définis sur une ou plusieurs colonnes qui identifient de manière unique chaque ligne de la table, ce qui permet des opérations de recherche rapides et un filtrage efficace des données.

Stockage sur disque

ClickHouse est conçu pour fonctionner sur des disques durs ordinaires, ce qui signifie que le coût par GB de stockage de données est faible, mais les disques SSD et la RAM supplémentaire sont également pleinement utilisés s'ils sont disponibles.

L'architecture en colonnes de ClickHouse et le tri par clé primaire permettent une extraction efficace des données en fonction de valeurs ou de plages de valeurs spécifiques, même lorsqu'elles sont stockées sur disque. Cette conception optimise les performances des requêtes, en garantissant une faible latence pour l'extraction des sous-ensembles de données souhaités.

Schéma explicatif des indexes de ClickHouse

Compression des données

Certains systèmes de gestion de base de données orientés colonnes négligent l'utilisation de la compression des données, alors que cette dernière joue un rôle crucial dans l'atteinte de performances optimales.

En plus des codecs de compression généraux efficaces, qui présentent différents compromis entre l'espace disque et la consommation CPU, ClickHouse propose des codecs spécialisés adaptés à des types de données spécifiques. Cette approche permet à ClickHouse de rivaliser voire surpasser des bases de données plus spécialisées, telles que celles dédiées aux séries temporelles.

Role-based access control (RBAC)

ClickHouse fournit des mécanismes de contrôle d'accès basés sur les rôles pour restreindre l'accès aux données et aux fonctionnalités. Les administrateurs peuvent définir des rôles avec des privilèges spécifiques, tels que l'accès en lecture seule, l'accès en écriture ou les autorisations administratives, et affecter des utilisateurs à ces rôles pour contrôler leur accès aux bases de données, aux tables et aux ressources du système. Le système RBAC garantit la sécurité et la conformité des données en appliquant des politiques de contrôle d'accès et en empêchant l'accès non autorisé aux données sensibles.

Multiples moteurs de stockage

ClickHouse propose plusieurs moteurs de stockage adaptés à différentes situations de données :

  • MergeTree : Moteur par défaut pour les données de séries chronologiques.
  • Distributed : Distribue les données sur un cluster.
  • ReplacingMergeTree : Optimisé pour les mises à jour fréquentes de données.
  • AggregatingMergeTree : Pré-agrège les données pour une analyse plus rapide.
  • GraphiteMergeTree : Stocke les données de métriques au format Graphite.
  • CollapsingMergeTree : Fusionne les données selon des critères spécifiques.
  • VersionedCollapsingMergeTree : Suivi des modifications historiques.
  • Kafka : Consomme les données en temps réel à partir d'Apache Kafka.

Les inconvénients de ClickHouse

 

ClickHouse présente plusieurs inconvénients qui peuvent rendre le déploiement et la maintenance sur site laborieux.

En tant que solution optimisée pour l'analyse de données, elle n'est pas idéale pour les systèmes OLTP, car les modifications et les mises à jour peuvent entraîner des temps de requête prolongés et une utilisation intensive du processeur. De plus, la déduplication des données reste un défi majeur, et dans la plupart des cas, elle n'est pas réalisable.

La consommation élevée des ressources, notamment de CPU et de la mémoire, est un autre inconvénient, en particulier dans le cadre d'une architecture distribuée traitant de vastes ensembles de données. Enfin, l'apprentissage des détails de bas niveau peut prendre du temps, ce qui nécessite une certaine courbe d'apprentissage pour les utilisateurs et les administrateurs.

Modèle de facturation

La philosophie tarifaire de ClickHouse repose sur la flexibilité et l'efficacité, garantissant que les utilisateurs ne paient que pour les ressources qu'ils consomment. Avec une approche axée sur la tarification à l'utilisation, ClickHouse permet aux organisations de redimensionner dynamiquement les ressources en fonction des demandes de charge de travail, optimisant à la fois les performances et la rentabilité.

 

En séparant le dimensionnement du stockage et du calcul, ClickHouse permet aux utilisateurs d'ajuster indépendamment les ressources pour répondre à des besoins spécifiques, réduisant ainsi les gaspillages et maximisant l'efficacité. De plus, la capacité de la plateforme à réduire automatiquement à zéro les ressources inutilisées garantit une utilisation optimale des ressources et des économies de coûts.

 

La tarification sur ClickHouse cloud dépend également du cloud Provider utilisé pour l’héberger et de la région sélectionnée. Chaque formule proposée présente des use-cases et des features différentes selon le type d’utilisateurs et la taille du projet. Pour plus de détails, voir la page du pricing sur le site ClickHouse.

Tableau de tarification de ClickHouse

En conclusion, ClickHouse s'impose comme une solution puissante et efficace pour répondre aux besoins de datawarehousing et d'analyse de données. Son stockage en colonnes, ses capacités de traitement parallèle et son architecture distribuée permettent aux entreprises d'analyser de vastes volumes de données avec une rapidité et une précision remarquables.

Qu'il s'agisse d'ingérer des données en temps réel ou d'effectuer des requêtes analytiques complexes, ClickHouse offre des performances, une évolutivité et une fiabilité élevées, ce qui en fait un choix convaincant pour les entreprises qui cherchent à obtenir des informations et à conduire des processus de prise de décision en toute confiance. C’est d’ailleurs une solution que nous utilisons régulièrement chez Modeo pour des clients de toute taille et sur des cas d’utilisation variés.

Si vous êtes intéressés par l’implémentation de Clickhouse dans votre Stack ou pour la mise en place de cas d’usage data, contactez-nous et nous nous ferons un plaisir d’en discuter avec vous !

Nassim Sehdi
Data Engineer
No items found.
Cliquez sur "Accepter" pour nous permettre d'optimiser votre navigation sur le site.
Pour plus d'informations, veuillez consulter notre politique de confidentialité.