Skip to main content

Vue d’ensemble

Ce guide explique comment utiliser ClickHouse et S3 pour mettre en place une architecture dissociant stockage et calcul. La séparation du stockage et du calcul signifie que les ressources de calcul et de stockage sont gérées indépendamment. Dans ClickHouse, cela permet d’améliorer l’évolutivité, de mieux maîtriser les coûts et de gagner en flexibilité. Vous pouvez dimensionner séparément les ressources de stockage et de calcul selon les besoins, afin d’optimiser les performances et les coûts. L’utilisation de ClickHouse adossé à S3 est particulièrement utile dans les cas d’usage où les performances des requêtes sur des données « froides » sont moins critiques. ClickHouse prend en charge l’utilisation de S3 comme stockage pour le moteur MergeTree via S3BackedMergeTree. Ce moteur de table vous permet de tirer parti de l’évolutivité et des avantages économiques de S3 tout en conservant les performances d’insertion et de requête du moteur MergeTree. Veuillez noter que la mise en place et la gestion d’une architecture dissociant stockage et calcul sont plus complexes que celles de déploiements ClickHouse standard. Bien que ClickHouse autogéré permette de séparer le stockage et le calcul comme décrit dans ce guide, nous recommandons d’utiliser ClickHouse Cloud, qui vous permet d’exploiter cette architecture avec ClickHouse sans configuration grâce au moteur de table SharedMergeTree. Ce guide suppose que vous utilisez ClickHouse version 22.8 ou ultérieure.
Ne configurez aucune politique de cycle de vie AWS/GCS. Ce n’est pas pris en charge et cela pourrait entraîner une corruption des tables.
1

Utiliser S3 comme disque pour ClickHouse

Créer un disque

Créez un nouveau fichier dans le répertoire config.d de ClickHouse pour y stocker la configuration du stockage :
Copiez le XML suivant dans le fichier nouvellement créé, en remplaçant BUCKET, ACCESS_KEY_ID et SECRET_ACCESS_KEY par les informations du bucket AWS dans lequel vous souhaitez stocker vos données :
Si vous devez définir plus précisément les paramètres du disque S3, par exemple pour spécifier une region ou envoyer un header HTTP personnalisé, vous trouverez la liste des paramètres correspondants ici.Vous pouvez également remplacer access_key_id et secret_access_key par ce qui suit, afin de tenter d’obtenir les identifiants à partir des variables d’environnement et des métadonnées Amazon EC2 :
Après avoir créé votre fichier de configuration, vous devez attribuer le fichier à l’utilisateur et au groupe clickhouse :
Vous pouvez maintenant redémarrer le serveur ClickHouse pour que les modifications soient prises en compte :
2

Créer une table basée sur S3

Pour vérifier que le disque S3 est correctement configuré, nous pouvons essayer de créer une table et de l’interroger.Créez une table en spécifiant la nouvelle politique de stockage S3 :
Notez que nous n’avons pas eu besoin d’indiquer le moteur comme étant S3BackedMergeTree. ClickHouse convertit automatiquement le type de moteur en interne s’il détecte que la table utilise S3 pour le stockage.Vérifiez que la table a été créée avec la bonne policy :
Vous devriez voir le résultat suivant :
Insérons maintenant quelques lignes dans notre nouvelle table :
Vérifions que nos lignes ont bien été insérées :
Dans la console AWS, si vos données ont bien été insérées dans S3, vous devriez voir que ClickHouse a créé de nouveaux fichiers dans le bucket que vous avez spécifié.Si tout a fonctionné correctement, vous utilisez maintenant ClickHouse avec un stockage et un calcul séparés !
3

Mise en place de la réplication pour la tolérance aux pannes (facultatif)

Ne configurez aucune politique de cycle de vie AWS/GCS. Cela n’est pas pris en charge et pourrait entraîner des tables corrompues.
Pour la tolérance aux pannes, vous pouvez utiliser plusieurs nœuds de serveur ClickHouse répartis sur plusieurs régions AWS, avec un bucket S3 pour chaque nœud.La réplication avec des disques S3 peut être réalisée à l’aide du moteur de table ReplicatedMergeTree. Consultez le guide suivant pour plus de détails :

Pour aller plus loin

Dernière modification le 23 juillet 2026