Analyse en temps réel de pétaoctets sans impact sur la base de données


Comment analyser des pétaoctets de données en temps réel sans ralentir votre base de données de production ?

 

Toutes les applications en pleine croissance atteignent le même point d'inflexion, où une entreprise souhaite interroger une base de données PostgreSQL ou MySQL avec des pétaoctets de données, d'une manière pour laquelle elle n'a jamais été conçue.

Le résultat : une requête de tableau de bord qui devrait prendre 200ms prend 40 secondes car l'analyse scanne 500M de lignes, écrasant le CPU et les E/S. Les utilisateurs attendent trop longtemps les résultats des requêtes, et au final, l'intégralité de l'accord SLA est en jeu.

Ce n'est pas un problème que vous pouvez résoudre avec un réglage, cela nécessite plutôt un changement d'architecture : vous devez arrêter d'exécuter des requêtes lourdes sur votre base de données de production.
Dans cet article, vous apprendrez le modèle d'architecture pour séparer l'OLTP de l'OLAP, comment diffuser des données en toute sécurité dans ClickHouse, et pourquoi le service géré OVHcloud est la solution idéale pour les équipes SaaS, FinTech, AdTech et e-commerce qui passent à des milliards de lignes.

Pourquoi votre base de données de production est le mauvais endroit pour effectuer des analyses

Une instance de base de données de production Public Cloud est conçue pour les transactions, pas pour l'analyse. Lorsque les équipes métier commencent à demander des tableaux de bord en temps réel, de la détection de fraude ou des requêtes de segmentation client sur des téraoctets de données historiques… eh bien, les performances s'effondrent.
Cela n'arrive pas tant parce que l'infrastructure est faible, mais parce que l'application utilise le mauvais outil pour la tâche.

OLTP vs OLAP

OLTP (traitement transactionnel en ligne) et OLAP (traitement analytique en ligne) se situent aux extrémités opposées du spectre de l'architecture des données.

Les systèmes OLTP privilégient l'exactitude et la précision au niveau des transactions, gérant des milliers de petites écritures et lectures rapides par seconde. Ils stockent les données ligne par ligne, optimisés pour rechercher un enregistrement client unique ou mettre à jour le statut d'une commande en quelques millisecondes.

Les systèmes OLAP , en revanche, sont conçus pour analyser des billions de lignes pour des agrégations complexes. Ils utilisent un stockage en colonnes, où chaque colonne est stockée indépendamment. Cela signifie que lorsque vous interrogez SUM(revenue) WHERE date > '2025-01-01', la base de données ne lit que les colonnes revenue et date, en ignorant tout le reste. Ainsi, par exemple dans ClickHouse, les opérations s'exécutent en exécution vectorisée. ClickHouse traite des tableaux entiers de valeurs à la fois plutôt que des lignes individuelles, ce qui réduit considérablement la charge CPU et maximise l'utilisation du cache.

Aucune quantité d'indexation de données, d'optimisation de requêtes ou de mises à niveau matérielles ne rendra une base de données orientée ligne efficace pour les analyses par colonnes. Les architectures sont fondamentalement différentes.

Pourquoi les réplicas de lecture ne résoudront pas le problème

Les réplicas de lecture dans Public Cloud Databases sont la première réponse la plus courante à la pression analytique sur les bases de données de production. Ils déchargent le trafic de lecture du nœud principal, mais ils ne corrigent pas l'inadéquation architecturale.

Un réplica de lecture peut réduire la contention sur votre base de données principale, mais lorsque vous exécutez SELECT SUM(revenue), COUNT(*) FROM events WHERE date >= '2024-01-01' sur 500 millions de lignes, le réplica lit et rejette toujours presque chaque ligne.

Ces requêtes analytiques entrent en concurrence avec les transactions de production pour le CPU, la mémoire et les E/S. La latence de l'application augmente, les SLA sont menacés et les cas d'utilisation en temps réel comme la détection de fraude ou la surveillance d'anomalies deviennent impossibles.

La requête de 40 secondes qui devrait prendre 200 ms

Voici le scénario typique pour une entreprise de plateforme SaaS en pleine croissance ou FinTech atteignant le point d'inflexion des données. Une requête s'exécute, destinée à agréger le revenu quotidien par segment de clientèle sur 18 mois (500 millions de lignes),

Le temps d'exécution attendu selon le modèle de domaine OLAP est de 200 ms, mais le temps réel sur la plateforme OLTP finit par être de 40 secondes. Pourquoi ? Voici ce qui se passe en arrière-plan :

  • Analyse complète de la table : La plateforme PostgreSQL/MySQL doit lire les 500 millions de lignes car l'index n'aide pas pour les agrégations larges.

  • Traitement ligne par ligne : Chaque ligne est décompressée, analysée et évaluée individuellement.

  • Goulot d'étranglement des E/S : Les lectures sur disque dominent — la majeure partie des données lues est rejetée.

  • Gaspillage de CPU : Cycles CPU consacrés à l'analyse des lignes au lieu de la qualité de l'agrégation.

  • Pression sur la mémoire : Les tris volumineux et les jointures de hachage sont déversés sur le disque.

L'impact sur l'activité est immédiat et cumulatif, car ce qui devrait être un tableau de bord de données horaire ne peut, en pratique, être généré qu'une fois par jour, ce qui retarde les décisions commerciales.
Les décisions commerciales sont retardées car l'analyse minute par minute devient trop coûteuse et les fonctionnalités en temps réel deviennent impossibles à grande échelle. Et cela compte : la réactivité en temps réel est essentielle pour des cas d'utilisation tels que la détection de la fraude, la personnalisation et la surveillance des anomalies. Ces cas d'utilisation ne sont pas viables avec une latence de requête de 40 secondes.

Le modèle d'architecture : séparer l'OLTP de l'OLAP

La solution est la séparation architecturale : exécutez les transactions sur une instance de base de données OLTP et diffusez les données dans une instance OLAP distincte conçue pour analyser des milliards de lignes en moins d'une seconde. Chaque système fait ce pour quoi il a été conçu, sans compromettre l'autre.

Explication du stockage en colonnes et de l'exécution vectorisée

PostgreSQL et MySQL stockent les données ligne par ligne, ce qui est logique pour les transactions d'ingénierie récupérant des enregistrements uniques, mais terrible pour l'analyse agrégeant une colonne sur des milliards de lignes. ClickHouse stocke les données par colonne.

Lorsque vous interrogez SUM(revenue) sur 5 milliards de lignes, il ne lit que la colonne revenue, en ignorant tout le reste. Cela réduit les E/S de 90 % ou plus et permet une compression agressive, car les valeurs d'une colonne sont similaires.

L'exécution vectorisée est le deuxième multiplicateur. Les bases de données traditionnelles traitent une ligne à la fois. ClickHouse traite des tableaux entiers de valeurs à la fois, en chargeant un bloc de la colonne revenue dans le cache du processeur et en appliquant des opérations sur l'ensemble du volume vectoriel en une seule instruction. Cela réduit considérablement la charge du processeur.

Cette combinaison permet d'effectuer des requêtes en moins d'une seconde sur des milliards de lignes. Le stockage en colonnes minimise les lectures sur disque ; l'exécution vectorisée minimise le travail du processeur. ClickHouse peut agréger 10 milliards de lignes en moins d'une seconde, tandis qu'une instance PostgreSQL prend des minutes.

Vues matérialisées : pré-agrégation au moment de l'ingestion

Même avec un stockage de données en colonnes, l'analyse des données brutes à chaque fois est coûteuse. Les vues matérialisées pré-calculent les agrégats au moment de l'ingestion.

Dans ClickHouse, une vue matérialisée est un pipeline actif, et non un instantané passif. Lorsque vous insérez des données, ClickHouse évalue automatiquement la requête de la vue et écrit les résultats dans une table séparée.

Si vous ingérez 100 000 événements par seconde avec une vue agrégeant par minute et par segment, ClickHouse calcule ces agrégats en temps réel.

Votre tableau de bord interroge la table pré-agrégée au lieu d'analyser les événements bruts. Cela déplace le coût du temps de requête vers le temps d'ingestion, en acceptant une légère surcharge d'écriture pour une réponse de requête instantanée. Pour les tableaux de bord minute par minute et la détection de fraude, les vues matérialisées éliminent la latence entre l'arrivée des données et leur interrogeabilité.

Elles permettent également l'analyse multi-résolution : conservez les données brutes pour la criminalistique tout en maintenant des agrégats horaires/quotidiens pour les tableaux de bord. À mesure que les données vieillissent, interrogez des agrégats plus grossiers, en maintenant des performances constantes à mesure que vous passez de téraoctets à pétaoctets.

Stockage hiérarchisé pour maintenir des coûts linéaires à l'échelle du pétaoctet

Le stockage de pétaoctets sur des SSD est d'un coût prohibitif. Le stockage hiérarchisé déplace les données plus anciennes vers un stockage objet moins coûteux tout en conservant les données récentes sur des disques locaux rapides.

Par exemple, OVHcloud Managed ClickHouse implémente cela nativement dans des outils avec le traitement de flux OVHcloud Object Storage (compatible S3)*. Les données récentes (30 à 90 jours) restent en flux sur des SSD NVMe.

Les données plus anciennes migrent automatiquement vers un bucket OVHcloud Object Storage à une fraction du coût, tout en permettant des requêtes rapides puisque ClickHouse ne lit que les colonnes nécessaires. Les coûts pour les ingénieurs restent linéaires à mesure que vous évoluez : chaque téraoctet supplémentaire coûte la même chose à 10 To ou 100 To.

ClickHouse interroge les données OVHcloud Object Storage sans Athena, Presto ou Spark. Données chaudes sur SSD, données froides sur S3, le tout via la même interface SQL. Cela élimine la maintenance de systèmes distincts pour les données basées sur le chaud et le froid.

Le stockage hiérarchisé simplifie également la conservation des données à long terme : conservez les données brutes indéfiniment pour la conformité sans vous ruiner. Interroger des données vieilles de 18 mois pour des enquêtes ? ClickHouse les lit depuis OVHcloud Object Storage S3*, qui est plus lent mais toujours assez rapide pour une analyse ad hoc.

Comment alimenter votre couche analytique en données

Une fois que vous avez séparé l'instance OLTP des outils OLAP, vous devez déplacer les données de votre base de données de production vers ClickHouse. Il existe trois modèles principaux, chacun avec des compromis différents en termes de latence, de complexité et de charge opérationnelle.

ETL par lots avec Airflow, dbt ou des tâches cron

L'ETL par lots est le point de départ le plus simple. Extrayez les données de votre base de données de production selon un calendrier (horaire ou quotidien), transformez-les avec dbt et chargez-les dans ClickHouse. Airflow orchestre le pipeline, ou des tâches cron gèrent des scripts simples.

Cela fonctionne lorsque vous n'avez pas besoin d'une fraîcheur à la minute près. Les tableaux de bord horaires conviennent à de nombreux cas d'utilisation métier, et le traitement par lots est plus facile à déboguer et à surveiller. Les tâches ayant échoué sont relancées lors de la planification suivante, et le remplissage des données historiques est simple.

Le compromis est la latence que vous créez. Les données sont obsolètes entre les lots, donc la détection de fraude en temps réel ou la personnalisation en direct ne sont pas possibles. Vous exécutez également des requêtes d'extraction lourdes sur la production pendant la fenêtre de traitement par lots, ce qui peut provoquer des conflits si elles ne sont pas planifiées pendant les périodes de faible trafic. L'ETL par lots est approprié lorsque vous débutez avec ClickHouse, que vous manquez d'expertise en streaming ou que vous tolérez des données vieilles d'une heure.

CDC en temps réel avec Apache Kafka et Debezium

La capture de données modifiées (CDC) diffuse chaque insertion, mise à jour et suppression de la production vers ClickHouse en temps quasi réel. Debezium lit le journal de transaction de votre base de données (WAL pour PostgreSQL, binlog pour MySQL) et publie les modifications sur Apache Kafka. ClickHouse consomme depuis Kafka et insère immédiatement.

Les outils de CDC atteignent une latence allant de la fraction de seconde à quelques secondes, permettant une véritable analyse de données en temps réel : détection de fraude qui détecte et bloque les transactions au moment où elles se produisent, surveillance des anomalies qui alerte en quelques secondes, personnalisation qui réagit instantanément pour prendre en charge le comportement des utilisateurs.

Bien que la complexité de configuration soit plus élevée, le CDC est la norme pour l'analyse en temps réel à grande échelle. La surcharge est justifiée lorsque les décisions commerciales dépendent de la fraîcheur des données. De nombreuses équipes utilisent Kafka géré pour réduire la charge, ou commencent par le traitement par lots et migrent vers le CDC une fois que la valeur du temps réel est validée.

Les écritures directes de l'application sont efficaces pour les charges de travail purement événementielles

Votre application écrit directement dans les outils ClickHouse parallèlement à votre base de données OLTP critique. Cela fonctionne mieux pour les charges de travail événementielles où chaque action utilisateur est un événement qui mérite d'être analysé : pages vues, clics, appels API, données de capteurs. L'application envoie l'événement aux deux systèmes en parallèle, ou utilise ClickHouse comme système principal et se synchronise avec PostgreSQL pour les transactions.

Cela élimine entièrement la couche ETL. Pas de Kafka, pas de Debezium, pas de tâches par lots. L'application écrit une fois, les données sont immédiatement interrogeables et la latence est minimale.

Pourquoi ClickHouse est le moteur OLAP idéal pour l'analyse en temps réel

ClickHouse a été conçu dès le départ pour l'analyse en temps réel sur des ensembles de données massifs. Contrairement aux entrepôts de données à usage général qui optimisent pour les charges de travail par lots ou pour la BI interactive, ClickHouse privilégie une latence de requête inférieure à la seconde, même lors de l'analyse de milliards de lignes.
Cela en fait le choix idéal pour les entreprises SaaS, FinTech, AdTech et de commerce électronique qui ont besoin d'analyses qui suivent le rythme de leurs systèmes de production.

Performances de requête inférieures à la seconde
ClickHouse atteint une latence inférieure à la seconde sur des requêtes analysant des milliards de lignes grâce au stockage en colonnes, à l'exécution vectorisée et à une compression agressive. Il peut agréger 10 milliards de lignes en moins d'une seconde, tandis que PostgreSQL prend des minutes et que d'autres entrepôts prennent des secondes à des dizaines de secondes.

ClickHouse vs Redshift vs BigQuery
ClickHouse offre une tarification stable basée sur les ressources avec une concurrence élevée et une mise à l'échelle efficace, idéale pour l'analyse interactive en temps réel. Redshift est idéal pour l'entreposage de données orienté traitement par lots avec des charges de travail prévisibles et une infrastructure AWS existante. BigQuery excelle dans l'analyse sans serveur avec des requêtes sporadiques et pour les équipes qui souhaitent zéro surcharge opérationnelle.

Icons/concept/Database/Database SQL Created with Sketch.

ClickHouse SQL
ClickHouse utilise un dialecte SQL compatible à 90 % avec l'expérience de développement SQL standard, mais il existe des différences clés. Les fonctions d'agrégation utilisent des tables MergeTree avec une syntaxe de moteur spécifique. La plupart des requêtes SELECT se traduisent directement, mais les JOIN complexes et les sous-requêtes peuvent nécessiter une optimisation.

Les conseils de migration à prendre en compte incluent le test préalable des requêtes sur un jeu de données hôte représentatif, l'utilisation de la fonction EXPLAIN de ClickHouse pour optimiser les plans d'exécution de session et l'exploitation des vues matérialisées pour pré-calculer les agrégations complexes de la pile d'outils.

Pourquoi choisir OVHcloud Managed ClickHouse

OVHcloud Managed ClickHouse est la seule solution ClickHouse gérée nativement proposée par un fournisseur cloud européen, aux côtés de nos Managed Databases for PostgreSQL établies. Cela signifie aucun routage de données par des tiers, aucune dépendance vis-à-vis de ClickHouse Cloud et aucun flux de données inter-fournisseurs.

  • ClickHouse géré par un fournisseur de l'UE : OVHcloud est le seul fournisseur cloud de la région européenne à proposer un moteur ClickHouse géré nativement. Contrairement aux concurrents où vous devriez passer par des services tiers, OVHcloud exécute ClickHouse directement sur son infrastructure.

  • Automatique vers OVHcloud Object Storage : Les données froides migrent automatiquement vers OVHcloud Object Storage compatible S3*, ce qui maintient les coûts linéaires à l'échelle du pétaoctet. Les données récentes (30 à 90 jours) restent sur des SSD NVMe pour une vitesse maximale, tandis que les données plus anciennes sont transférées vers OVHcloud Object Storage à une fraction du coût. Surtout, il n'y a aucuns frais de sortie. 

  • Déploiements sur 3 zones de disponibilité à Paris et Milan : Les clusters de production s'exécutent sur trois zones de disponibilité à Paris ou Milan avec un SLA de 99,99 % sur 3 zones de disponibilité, un support technique 24/7 inclus et une réplication multi-nœuds pour une haute disponibilité. Le service Gen3 (depuis août 2025) offre 5× plus de stockage, 4× plus de bande passante, 2× plus de TPS et un démarrage 1,5× plus rapide par rapport à la génération précédente ; tout cela est meilleur pour la mise à l'échelle.

  • RGPD dès la conception, aucune exposition au Cloud Act : OVHcloud est une entreprise française soumise uniquement au droit français/européen. Toutes les données analytiques restent dans des centres de données européens, sans exposition au Cloud Act qui affecte les fournisseurs américains. Ceci est particulièrement pertinent pour les données comportementales, les transactions financières et les données relevant du RGPD.

De plus, les services d'OVHcloud sont certifiés ISO/IEC 27001/27017/27018/27701 et conformes HDS, avec SecNumCloud en cours. Cela inclut notre Managed Apache Kafka pour les pipelines CDC et notre OVHcloud Object Storage (compatible S3)*.
Pour les entreprises européennes de SaaS, FinTech, AdTech et e-commerce traitant des données de clients de l'UE, cette garantie de souveraineté élimine le risque juridique d'accès aux données par les autorités américaines stockées chez des fournisseurs de cloud américains.

Lancez-vous : déployez ClickHouse et connectez-le à votre base de données de production

Prêt à libérer votre base de données de production des requêtes analytiques lourdes ? Le déploiement de OVHcloud Managed ClickHouse ne prend que quelques minutes via le panneau de contrôle ou l'API.
Nous garantissons que vos données restent dans des centres de données européens pour assurer la confidentialité et une observabilité totale, sans frais de sortie, et le stockage hiérarchisé vers OVHcloud Object Storage compatible S3 garantit des coûts prévisibles à mesure que vous passez de téraoctets à pétaoctets.
Démarrez votre cluster logiciel ClickHouse dès aujourd'hui et découvrez pourquoi plus de 2 000 entreprises, dont Tesla, Bloomberg et Anthropic, font confiance à ClickHouse pour l'analyse en temps réel.

* S3 est une marque déposée d’Amazon Technologies, Inc. Les services OVHcloud ne sont ni sponsorisés, ni approuvés, ni affiliés à Amazon Technologies, Inc.