Sauvegardes

Cette page présente les sauvegardes Cloud Bigtable.

Les sauvegardes Cloud Bigtable vous permettent d'enregistrer une copie du schéma et des données d'une table, puis d'effectuer une restauration vers une nouvelle table ultérieurement. Avant de lire cette page, vous devez avoir consulté les articles Présentation de Cloud Bigtable et Gérer des tables.

Objectif des sauvegardes

Les sauvegardes vous aident à récupérer des données corrompues au niveau de l'application ou à corriger des erreurs d'opérateur, comme la suppression accidentelle d'une table.

Objectifs exclus des sauvegardes

Les sauvegardes ne sont pas destinées à garantir une protection contre les défaillances régionales ou zonales. Utilisez la réplication si vous avez besoin de basculer vers différentes régions ou zones.

Les sauvegardes ne sont pas lisibles. Elles ne sont donc pas utiles pour les analyses hors ligne.

Principales fonctionnalités

  • Intégration complète : les sauvegardes sont entièrement gérées par le service Cloud Bigtable, sans importation ni exportation.
  • Réduction des coûts : l'utilisation de sauvegardes Cloud Bigtable vous permet d'éviter les coûts associés à l'exportation, au stockage et à l'importation de données à l'aide d'autres services.
  • Expiration automatique : chaque sauvegarde est associée à une date d'expiration définie par l'utilisateur, pouvant aller jusqu'à 30 jours après la création de la sauvegarde.

Utiliser les sauvegardes

Consultez la page Gérer les sauvegardes pour obtenir des instructions détaillées sur la sauvegarde et la restauration d'une table, ainsi que sur les opérations telles que la mise à jour et la suppression de sauvegardes.

Pour effectuer des sauvegardes Cloud Bigtable, utilisez les éléments suivants :

Vous pouvez également accéder directement à l'API. Toutefois, nous vous conseillons vivement de n'employer cette méthode que dans le cas où vous ne pouvez pas utiliser une bibliothèque cliente Cloud Bigtable qui envoie des appels de sauvegarde à l'API.

Fonctionnement des sauvegardes

Stockage

Une sauvegarde de table est une ressource au niveau du cluster. Même si une table se trouve dans une instance dotée de plusieurs clusters (ce qui signifie que le cluster utilise la réplication), une sauvegarde est créée et stockée sur un seul cluster de cette instance.

Sauvegarde stockée sur un seul cluster

Une sauvegarde de table inclut toutes les données qui étaient présentes dans la table au moment de la création de la sauvegarde, sur le cluster où elle est créée. Une sauvegarde ne dépasse jamais la taille de la table source au moment de la création de la sauvegarde. Vous pouvez créer jusqu'à 50 sauvegardes par table et par cluster.

Vous pouvez supprimer une table qui dispose d'une sauvegarde. Pour protéger vos sauvegardes, vous ne pouvez pas supprimer un cluster contenant une sauvegarde ni une instance possédant une ou plusieurs sauvegardes dans un cluster.

Une sauvegarde existe toujours après sa restauration dans une nouvelle table. Vous pouvez la supprimer ou la laisser expirer lorsque vous n'en avez plus besoin. Le stockage des sauvegardes n'est pas comptabilisé dans la limite de stockage de nœuds d'un projet.

Les données contenues dans les sauvegardes sont chiffrées et stockées dans un format propriétaire.

Coûts

La création et la restauration d'une sauvegarde sont gratuites.

Pour stocker une sauvegarde, vous êtes facturé au tarif de stockage des sauvegardes standard pour la région dans laquelle se trouve le cluster.

Une sauvegarde est une copie logique complète d'une table. En arrière-plan, Cloud Bigtable optimise l'utilisation du stockage des sauvegardes. En effet, une sauvegarde partage l'espace de stockage physique avec la table d'origine ou avec d'autres sauvegardes de la table lorsque c'est possible. Grâce aux optimisations de stockage intégrées de Cloud Bigtable, le coût de sauvegarde peut parfois être inférieur au coût engendré par une copie physique complète de la sauvegarde de table.

Remarques sur la réplication

Cette section décrit des concepts supplémentaires à comprendre lors de la sauvegarde et de la restauration d'une table dans une instance qui utilise la réplication.

Sauvegarder

Lorsque vous sauvegardez une table d'une instance dupliquée, vous choisissez le cluster dans lequel vous souhaitez créer et stocker cette sauvegarde. Il n'est pas nécessaire d'interrompre les opérations d'écriture dans le cluster contenant la sauvegarde, mais vous devez savoir comment sont gérées les écritures répliquées sur le cluster.

Une sauvegarde est une copie de la table dans son état sur le cluster où la sauvegarde est stockée, au moment de la création de la sauvegarde. Les données de table qui n'ont pas encore été répliquées à partir d'un autre cluster de l'instance ne sont pas incluses dans la sauvegarde.

Chaque sauvegarde possède une heure de début et une heure de fin. Les écritures envoyées au cluster peu avant ou pendant l'opération de sauvegarde risquent de ne pas être incluses dans la sauvegarde. Deux facteurs contribuent à cette incertitude :

  • Une opération d'écriture peut être envoyée à une section de la table déjà copiée.
  • Une opération d'écriture sur un autre cluster peut ne pas avoir été répliquée sur le cluster contenant la sauvegarde.

En d'autres termes, il est possible que certaines opérations d'écriture dont l'horodatage est antérieur à l'heure de la sauvegarde n'y soient pas incluses. Si cela ne convient pas aux besoins de votre entreprise, vous pouvez utiliser un jeton de cohérence avec vos requêtes d'écriture pour vous assurer que toutes les opérations d'écriture répliquées sont incluses dans une sauvegarde.

Restaurer

Lorsque vous restaurez une sauvegarde dans une nouvelle table, la réplication vers et depuis les autres clusters de l'instance démarre immédiatement après la fin de l'opération de restauration sur le cluster où la sauvegarde a été stockée.

Performances

Sauvegarder

La création d'une sauvegarde prend généralement moins d'une minute, mais peut durer jusqu'à une heure. En temps normal, la création de sauvegardes n'affecte pas les performances de diffusion.

Pour des performances optimales, ne créez pas une sauvegarde d'une table plus d'une fois toutes les cinq minutes. Créer des sauvegardes plus fréquemment peut entraîner une augmentation notable de la latence de diffusion.

Restaurer

La restauration d'une sauvegarde dans une table d'une instance à cluster unique prend quelques minutes. Dans les instances multicluster, la restauration prend plus de temps, car les données doivent être copiées sur tous les clusters.

Si vous stockez vos tables dans des clusters SSD, il est possible que la latence en lecture soit initialement supérieure, même après la restauration, pendant l'optimisation de la table. Vous pouvez vérifier l'état à tout moment pendant l'opération de restauration afin de déterminer si l'optimisation est toujours en cours.

Contrôle des accès

Les autorisations IAM contrôlent l'accès aux opérations de sauvegarde et de restauration. Les autorisations de sauvegarde existent au niveau de l'instance et s'appliquent à toutes les sauvegardes de l'instance. Pour créer une sauvegarde de table, vous devez être autorisé à lire la table et à créer des sauvegardes dans l'instance où elle se trouve.

Action Autorisation IAM requise
Créer une sauvegarde bigtable.tables.readRows, bigtable.backups.create
Obtenir une sauvegarde bigtable.backups.get
Répertorier des sauvegardes bigtable.backups.list
Supprimer une sauvegarde bigtable.backups.delete
Mettre à jour une sauvegarde bigtable.backups.update
Restaurer une sauvegarde dans une table bigtable.tables.create, bigtable.backups.restore
Obtenir une opération bigtable.instances.get
Répertorier les opérations bigtable.instances.get

Bonnes pratiques

Sauvegardes

  • Ne sauvegardez pas une table plus souvent qu'une fois toutes les cinq minutes.
  • Lorsque vous sauvegardez une table qui utilise la réplication, tenez compte des facteurs suivants avant de choisir le cluster dans lequel stocker la sauvegarde :
    • Coût. Un cluster de votre instance peut se trouver dans une région moins coûteuse que les autres.
    • Proximité avec votre serveur d'applications. Vous souhaiterez peut-être stocker la sauvegarde le plus près possible de votre application de diffusion.
    • Utilisation du stockage. Vous avez besoin d'un espace de stockage suffisant pour conserver votre sauvegarde à mesure que sa taille augmente. En fonction de votre charge de travail, vous pouvez disposer de clusters de différentes tailles ou avec une utilisation de disque différente. Cela peut être un facteur de choix du cluster.
  • Si vous devez vous assurer que toutes les écritures répliquées sont incluses dans une sauvegarde lorsque vous sauvegardez une table dans une instance qui exploite la réplication, utilisez un jeton de cohérence avec vos requêtes d'écriture.

Restaurer des sauvegardes

  • Prévoyez à l'avance le nom de la nouvelle table si vous devez effectuer une restauration à partir d'une sauvegarde. Il est essentiel d'être bien préparé pour ne pas avoir à prendre de décision lorsqu'un problème surgit.
  • Si vous restaurez une table pour une raison autre qu'une suppression accidentelle, assurez-vous que toutes les opérations de lecture et d'écriture sont adressées à la nouvelle table avant de supprimer la table d'origine.

Quotas et limites

Les requêtes de sauvegarde et de restauration ainsi que le stockage des sauvegardes sont soumis aux quotas et limites de Cloud Bigtable.

Limites

Les limites suivantes s'appliquent aux sauvegardes Cloud Bigtable :

  • Vous ne pouvez pas lire directement les données d'une sauvegarde.
  • Vous ne pouvez pas restaurer une table vers une table existante ou vers une nouvelle table d'une instance différente.
  • Si vous restaurez une sauvegarde dans une table d'un cluster SSD, puis supprimez la table nouvellement restaurée, la suppression de la table peut prendre un certain temps, car Cloud Bigtable attend la fin de son optimisation.
  • Les sauvegardes sont zonales et partagent les mêmes garanties de disponibilité que le cluster où elles sont créées. Les sauvegardes ne vous protègent pas contre les pannes régionales.
  • Une sauvegarde est une version d'une table au sein d'un cluster unique à un moment donné. Les sauvegardes ne représentent pas un état cohérent. Cela s'applique également aux sauvegardes d'une même table situées dans des clusters différents.
  • Vous ne pouvez pas sauvegarder plusieurs tables en une seule opération.
  • Vous ne pouvez pas exporter, copier ni déplacer une sauvegarde Cloud Bigtable vers un autre service, tel que Cloud Storage.

Étape suivante