Skip to main content
ClickHouse Managed Postgres prend en charge la création de branches de base de données isolées à l’aide de la restauration à un instant précis (PITR). Une branche est un déploiement PostgreSQL entièrement indépendant, créé à partir d’un instant précis d’une base de données existante. Les branches peuvent être utilisées pour le développement, la préproduction, les tests, le débogage, la validation des données ou les workflows de reprise, sans affecter la base de données source. Contrairement aux implémentations copy-on-write qui partagent le stockage avec la base de données principale, les branches ClickHouse Managed Postgres sont restaurées à partir de sauvegardes et fonctionnent comme des déploiements PostgreSQL indépendants.

Fonctionnement de la création de branches

La création d’une branche s’appuie sur la même infrastructure de sauvegarde et de restauration que celle utilisée pour la restauration à un instant précis. Lorsque vous créez une branche, ClickHouse Managed Postgres restaure une sauvegarde de base depuis le stockage objet, rejoue les segments WAL nécessaires pour atteindre le point de récupération demandé, puis déploie une nouvelle instance PostgreSQL à partir de l’état restauré. Une fois la restauration terminée, la branche fonctionne indépendamment de la base de données source. La branche obtenue est une copie complète de la base de données source au moment sélectionné.

Cas d’usage courants

Développement et tests

Créez une branche à partir d’une base de données de production ou de préproduction afin de valider les modifications de l’application, les migrations ou les nouvelles fonctionnalités avec des données réalistes.

Environnements de préproduction

Maintenez un environnement de préproduction aussi proche que possible de la production, sans affecter les charges de travail en production.

Validation des données

Testez les modifications de schéma, les stratégies d’indexation et les optimisations de requêtes avant de les déployer en production.

Récupération et investigation

Restaurez une base de données à un instant précis pour le dépannage, l’audit ou la validation du comportement de l’application.

Dimensionnement des branches

Les branches sont des déploiements PostgreSQL indépendants et peuvent être dimensionnées séparément de la base de données source. Par exemple, un déploiement de production peut utiliser une configuration plus importante, tandis qu’une branche de développement ou de préproduction peut utiliser un profil de calcul plus modeste afin de réduire les coûts. Cela permet aux équipes de créer des environnements temporaires sans avoir à disposer des mêmes ressources de calcul qu’en production.

Délai de création d’une branche

Comme ClickHouse Managed Postgres utilise un stockage PostgreSQL sur NVMe, les branches sont restaurées à partir de sauvegardes plutôt que créées via des mécanismes de copy-on-write au niveau du stockage. Par conséquent, la création d’une branche n’est pas instantanée. Le délai de création d’une branche varie généralement de quelques minutes à plusieurs dizaines de minutes, selon :
  • Taille de la base de données
  • Taille de la sauvegarde
  • Point de récupération
  • Quantité de WAL à rejouer
  • Configuration globale du cluster
Pour la plupart des déploiements, les branches sont disponibles en quelques minutes. Les bases de données plus volumineuses peuvent nécessiter plus de temps. Si le délai de création d’une branche devient un goulot d’étranglement dans votre workflow, contactez l’équipe ClickHouse. Dans bien des cas, les performances de récupération de la branche peuvent être optimisées en fonction des caractéristiques de la charge de travail et des exigences de récupération.

Branches ou développement local

Une question fréquente est de savoir si chaque développeur doit utiliser une branche de production comme environnement de développement. Bien que les branches soient utiles pour les workflows de test, de validation et de préproduction, elles ne sont généralement pas l’approche recommandée pour le développement quotidien des applications. Chaque branche est un déploiement PostgreSQL distinct qui doit être restauré depuis des sauvegardes et maintenu de manière indépendante. La création d’un grand nombre de branches peut augmenter les coûts d’infrastructure et la complexité opérationnelle. Pour la plupart des organisations, nous recommandons :
  • D’utiliser les branches PostgreSQL pour les workflows de préproduction, de test, de débogage et de validation.
  • D’utiliser des environnements PostgreSQL locaux pour le développement au quotidien.
  • De générer des jeux de données de développement synthétiques ou d’utiliser, lorsque c’est pertinent, des jeux de données assainis.
  • D’éviter le développement courant directement sur des branches dérivées de la production.
Cette approche réduit la charge sur les systèmes de production, accélère le développement et contribue à garantir que les données de production restent correctement protégées. Pour savoir comment créer des environnements de développement PostgreSQL locaux avec Docker, consultez Environnements de développement locaux. Un workflow courant se présente ainsi :
Les branches sont particulièrement adaptées aux environnements qui nécessitent une copie de base de données proche de la production. Pour le développement courant, les environnements PostgreSQL locaux offrent généralement un workflow plus rapide, moins coûteux et plus facile à faire évoluer.
Dernière modification le 14 août 2026