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

La récupération à un moment précis de Firestore offre une protection contre les suppressions ou les écritures accidentelles. La récupération à un moment précis conserve les versions de vos documents datant d'horodatages passés. Par exemple, si un développeur transmet des données incorrectes, des suppressions ou des écritures accidentelles, la récupération à un moment précis peut récupérer les données à un moment précis dans le passé (jusqu'à sept jours maximum).

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

Période de récupération à un moment précis

Une fois que vous avez activé la récupération à un moment précis, Firestore commence à conserver les données correspondantes. Les données PITR sont conservées pendant sept jours.

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

État d'activation de la récupération à un moment précis Premières données PITR disponibles
Désactivé 1 heure avant l'heure de la requête de lecture
activée sous sept jours 1 heure avant l'activation de la récupération à un moment précis
Activé il y a plus de sept jours 7 jours avant l'heure de la requête de lecture

Une seule version par minute est conservée pendant la période de récupération à un moment précis. Vous pouvez lire des documents à la minute près à l'aide d'un code temporel entier. Les lectures qui ne sont pas effectuées à la minute près, par exemple 2023-05-30 09:00:00.1234AM, renverront une erreur indiquant que le paramètre read_time est trop ancien.

Une seule version d'un document est conservée en cas d'écritures multiples. Par exemple, si un document comporte plusieurs écritures allant de v1, v2, ... vk entre l'horodatage 2023-05-30 09:00:00AM (exclusif) et 2023-05-30 09:01:00AM (inclus), 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 période de récupération à un moment précis. Les données sont stockées à la minute près et vous pouvez les récupérer avec la même précision. La fonctionnalité de récupération à un moment précis de Firestore est désactivée par défaut.

Le champ earliestVersionTime de votre base de données spécifie la durée de lecture la plus tôt autorisée pour vos données.

Que la récupération à un moment précis est activée ou non, vous pouvez lire (mais pas exporter) des documents à n'importe quel horodatage de précision de l'ordre de la microseconde au cours de la dernière heure, mais pas avant la première version de l'heure.

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

Il existe deux 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 la recherche directe de clé avec un code temporel antérieur, puis écrivez les résultats dans la base de données active. Elle 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 de manière incorrecte un sous-ensemble de données, vous pouvez le récupérer à l'aide de cette méthode. Pour obtenir des instructions, consultez la section Récupérer une partie de votre base de données.

  • Pour récupérer l'intégralité de la base de données, exportez-la en spécifiant un horodatage passé, 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 de collections spécifiques. Vous pouvez exporter des données PITR dont le code temporel correspond à une minute entière au cours des sept derniers jours, mais pas avant la première version de l'heure.

Tarification

Avant d'activer la récupération à un moment précis pour votre base de données, tenez compte des informations tarifaires suivantes:

  • Stockage: 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 calculer la taille de l'espace 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). Consultez les tarifs de stockage pour plus d'informations.

    Le stockage PITR ne fait pas l'objet d'une version gratuite, et la facturation doit être activée si vous souhaitez utiliser la récupération à un moment précis.

  • Facturation de calcul: toutes les requêtes que vous effectuez au cours de la période de récupération à un moment précis de sept jours, via des lectures ou des exportations non actualisées, entraînent des coûts d'opération de lecture basés sur le nombre de documents lus. Consultez la page pricing pour plus de détails.

  • Facturation minimale: les frais de stockage de la récupération à un moment précis peuvent vous être facturés jusqu'à un jour, même si vous désactivez la récupération à un moment précis dans les 24 heures suivant l'activation.

Étapes suivantes