Pourquoi utiliser ClickHouse plutôt que Postgres ?
GROUP BY, en tant que base de données OLAP, tandis que Postgres est une base de données OLTP conçue pour des charges de travail transactionnelles.
Les bases de données OLTP, ou de traitement transactionnel en ligne, sont conçues pour gérer des données transactionnelles. L’objectif principal de ces bases de données, dont Postgres est l’exemple classique, est de garantir qu’un ingénieur puisse soumettre un bloc de mises à jour à la base de données en ayant l’assurance qu’il sera, dans son intégralité, soit appliqué, soit rejeté. Ces garanties transactionnelles fondées sur les propriétés ACID sont au cœur des bases de données OLTP et constituent l’un des grands points forts de Postgres. Compte tenu de ces exigences, les bases de données OLTP atteignent généralement leurs limites de performance lorsqu’elles sont utilisées pour des requêtes analytiques sur de grands jeux de données.
Les bases de données OLAP, ou de traitement analytique en ligne, sont conçues pour répondre à ces besoins, c’est-à-dire gérer des charges de travail analytiques. L’objectif principal de ces bases de données est de permettre aux ingénieurs d’interroger et d’agréger efficacement de vastes jeux de données. Les systèmes OLAP en temps réel comme ClickHouse permettent d’effectuer cette analyse à mesure que les données sont ingérées en temps réel.
Voir ici pour une comparaison plus approfondie entre ClickHouse et PostgreSQL.
Pour voir les différences de performance potentielles entre ClickHouse et Postgres sur des requêtes analytiques, consultez Rewriting PostgreSQL Queries in ClickHouse.
Stratégies de migration
Réplication en temps réel (CDC)
Chargement en masse manuel + mises à jour périodiques
INSERT directes, soit en exportant puis en important des fichiers CSV. Après la migration initiale, vous pouvez mettre à jour périodiquement les données dans ClickHouse en synchronisant les modifications depuis PostgreSQL à intervalles réguliers.
Le processus de chargement en masse est simple et flexible, mais il a l’inconvénient de ne pas fournir de mises à jour en temps réel. Une fois les données initiales chargées dans ClickHouse, les mises à jour ne sont pas répercutées immédiatement ; vous devez donc planifier des mises à jour périodiques pour synchroniser les modifications depuis PostgreSQL. Cette approche convient bien aux cas d’usage moins sensibles au facteur temps, mais elle introduit un délai entre le moment où les données changent dans PostgreSQL et celui où ces modifications apparaissent dans ClickHouse.
Quelle stratégie choisir ?
Commencez le guide de migration PostgreSQL ici.