Stratégie de compression : LZ4 vs ZSTD en production
- 50 % d’économies de stockage sur les grandes tables grâce à la compression ZSTD
- Capacité mensuelle de traitement de 2 pétaoctets de données
- Impact maîtrisé sur les performances de l’ingestion et des requêtes
- Réduction significative des coûts à l’échelle de plusieurs centaines de To
Stratégie de rétention basée sur les colonnes
- Analyser les schémas d’utilisation des colonnes à l’aide de la télémétrie ClickHouse
- Identifier les colonnes gourmandes en stockage et peu interrogées
- Mettre en œuvre des politiques de rétention sélectives
- Surveiller les schémas de requêtes pour prendre des décisions fondées sur les données
Gestion des données par partition
- Purge des données très simple (drop partition vs suppression ligne par ligne)
- Calculs de facturation simplifiés
- Meilleures performances des requêtes grâce à l’élimination des partitions
- Gestion opérationnelle simplifiée
Stratégie de conversion des chaînes en entiers
weather_answer, sports_answer ou factual_answer. Avec des milliards de requêtes de recherche traitées, ces valeurs textuelles étaient stockées de façon répétée dans ClickHouse, ce qui consommait énormément d’espace de stockage et imposait des comparaisons de chaînes coûteuses lors des requêtes.
Microsoft a mis en place un système de correspondance entre chaînes et entiers à l’aide d’une base de données MySQL distincte. Au lieu de stocker les chaînes proprement dites dans ClickHouse, ils n’y stockent que des ID entiers. Lorsque vous exécutez des requêtes via l’UI et demandez les données correspondant à weather_answer, l’optimiseur de requêtes consulte d’abord la table de correspondance MySQL pour obtenir l’ID entier associé, puis réécrit la requête pour utiliser cet entier avant de l’envoyer à ClickHouse.
Cette architecture préserve l’expérience utilisateur : les utilisateurs voient toujours des libellés explicites comme weather_answer dans leurs tableaux de bord, tandis que le stockage et les requêtes côté backend s’appuient sur des entiers bien plus efficaces. Le système de correspondance gère toute la traduction de manière transparente, sans nécessiter de modification de l’interface utilisateur ni des flux de travail.
Principaux avantages :
- Réduction de 60 % du stockage sur les jeux de données concernés
- Meilleures performances de requête grâce aux comparaisons sur des entiers
- Réduction de l’utilisation mémoire pour les joins et les aggregations
- Réduction des coûts de transfert réseau pour les grands ensembles de résultats
Il s’agit d’un exemple utilisé spécifiquement pour le scénario de données de Microsoft Clarity. Si toutes vos données sont dans ClickHouse ou si vous n’avez pas de contraintes empêchant leur déplacement vers ClickHouse, essayez plutôt d’utiliser les dictionaries.
Sources vidéo
- Microsoft Clarity et ClickHouse - l’équipe Microsoft Clarity
- Le parcours de ClickHouse chez Contentsquare - Doron Hoffman & Guram Sigua (ContentSquare)