Présentation de la récupération à un moment précis (PITR)

La récupération à un moment précis (PITR) protège contre la suppression ou l'écriture accidentelles. La récupération à un moment précis conserve les versions de vos documents à partir de codes temporels passés. Par exemple, si un développeur transfère des données incorrectes, ou en cas de suppression ou d'écriture accidentelle, la récupération PITR permet de récupérer les données à un moment précis du passé (jusqu'à sept jours).

Pour toute base de données active qui suit les bonnes pratiques, l'utilisation de la récupération à un moment précis n'affecte pas les performances des lectures ou des écritures.

Fenêtre PITR

Une fois que vous avez activé la PITR, Cloud Firestore commence à conserver les données PITR. Les données PITR sont conservées pendant sept jours dans la fenêtre PITR.

Vous pouvez lire les données d'un code temporel en fonction du moment où la récupération PITR a été activée :

État d'activation de la récupération PITR Données PITR les plus anciennes disponibles
Désactivé 1 heure avant l'heure de la requête de lecture
activé sous 7 jours 1 heure avant l'activation de la récupération PITR
activé il y a plus de 7 jours 7 jours avant l'heure de la requête de lecture

Une seule version par minute est conservée dans la fenêtre de récupération PITR. Vous pouvez lire des documents à la minute près en utilisant un code temporel d'une minute entière. Les lectures qui ne sont pas à la précision de la minute, comme 2023-05-30 09:00:00.1234AM, renvoient une erreur indiquant que read_time est trop ancien.

Une seule version d'un document est conservée en cas d'écritures multiples. Par exemple, si un document a fait l'objet de plusieurs écritures allant de v1, v2, ... vk entre le code temporel 2023-05-30 09:00:00AM (exclusif) et le code temporel 2023-05-30 09:01:00AM (inclusif), une requête de lecture au code temporel 2023-05-30 09:01:00AM renvoie la version vk du document.

Vous pouvez lire les données créées pendant la fenêtre de récupération à un moment précis. Les données sont stockées à une précision d'une minute et vous pouvez les récupérer avec la même précision. La fonctionnalité PITR est désactivée par défaut.

Le champ earliestVersionTime de votre base de données spécifie l'heure de lecture autorisée la plus ancienne pour vos données.

Que la récupération PITR soit activée ou non, vous pouvez lire (mais pas exporter) des documents à n'importe quel code temporel avec une précision à la microseconde au cours de l'heure écoulée, mais pas avant le earliestVersionTime.

Méthodes de récupération des données

Il existe plusieurs façons de récupérer des données :

  • Pour récupérer une partie de la base de données, effectuez une lecture non actualisée en spécifiant une condition de requête ou en utilisant une recherche de clé directe avec un code temporel dans le passé, puis réécrivez les résultats dans la base de données active. Cette méthode est généralement utilisée pour les opérations chirurgicales sur une base de données active. Par exemple, si vous supprimez accidentellement un document particulier ou si vous mettez à jour un sous-ensemble de données de manière incorrecte, vous pouvez le récupérer à l'aide de cette méthode. Pour obtenir des instructions, consultez Récupérer une partie de votre base de données.

  • Pour récupérer l'intégralité de la base de données, utilisez l'une des options suivantes :

    • Clonez la base de données pour créer une copie de la base de données à un code temporel spécifique.

    • Exportez la base de données et spécifiez un code temporel antérieur, puis importez-la dans une nouvelle base de données. L'opération d'exportation PITR est compatible avec tous les filtres, y compris l'exportation de tous les documents et l'exportation de collections spécifiques.

    Vous pouvez cloner ou exporter des données PITR dont le code temporel correspond à une minute entière au cours des sept derniers jours, mais pas avant le earliestVersionTime.

Tarifs

Avant d'activer la récupération PITR pour votre base de données, tenez compte des informations de tarification suivantes :

  • Stockage : Cloud Firestore mesure la taille de la base de données quotidiennement. Sur une période d'un mois, la moyenne de ces points d'échantillonnage est calculée pour déterminer la taille de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire de la récupération à un moment précis (Go/mois). Pour en savoir plus, consultez les tarifs de stockage.

    Le stockage PITR n'est pas disponible dans le niveau sans frais. Vous devez donc activer la facturation si vous souhaitez utiliser la PITR.

  • Facturation du calcul : toutes les requêtes que vous effectuez pendant la période de PITR de sept jours, que ce soit par le biais de lectures non actualisées ou d'exportations, entraînent des coûts d'opération de lecture en fonction du nombre de documents lus. Consultez la page Tarifs pour plus de détails.

  • Facturation minimale : vous pouvez être facturé jusqu'à un jour de frais de stockage PITR, même si vous désactivez la fonctionnalité PITR dans la journée suivant son activation.

Étape suivante