Conservation des données avec la fonctionnalité temporelle et la prévention des défaillances

Ce document décrit comment conserver les données des ensembles de données avec la fonctionnalité temporelle et la prévention des défaillances. Pendant les périodes de transit et de sécurité, les données que vous avez modifiées ou supprimées dans une table de l'ensemble de données continuent d'être stockées au cas où vous auriez besoin de les récupérer.

Fonctionnalité temporelle

Vous pouvez accéder aux données à partir de n'importe quel moment pendant la fenêtre de fonctionnalité temporelle, qui couvre les sept derniers jours par défaut. La fonctionnalité temporelle vous permet d'interroger des données mises à jour ou supprimées, de restaurer une table supprimée ou un ensemble de données supprimé ou de restaurer une table arrivée à expiration.

Configurer la fenêtre de fonctionnalité temporelle

Vous pouvez définir la durée de la fenêtre de fonctionnalité temporelle comprise entre deux jours et sept jours au maximum. Cette valeur par défaut est définie sur sept jours. Vous définissez la fenêtre de fonctionnalité temporelle au niveau de l'ensemble de données, qui s'applique ensuite à toutes les tables de l'ensemble de données.

Vous pouvez allonger la durée de la fenêtre de fonctionnalité temporelle dans le cas où il est important de disposer de plus de temps pour récupérer les données mises à jour ou supprimées, et la diminuer lorsqu'elle n'est pas requise. Une fenêtre de fonctionnalité temporelle plus courte vous permet de réduire les coûts de stockage lorsque vous utilisez le modèle de facturation du stockage physique. Ces économies ne s'appliquent pas au modèle de facturation du stockage logique.

Pour en savoir plus sur l'incidence du modèle de facturation du stockage sur les coûts, consultez la section Facturation.

Impact de la fenêtre de fonctionnalité temporelle sur la récupération des tables et des ensembles de données

Une table ou un ensemble de données supprimé utilise la durée de la fenêtre de fonctionnalité temporelle appliquée au moment de la suppression.

Par exemple, si vous disposez d'une durée de fenêtre de fonctionnalité temporelle de deux jours, puis que vous augmentez cette durée à sept jours, les tables supprimées avant cette modification ne peuvent toujours être récupérées que pendant deux jours. De même, si vous disposez d'une durée de fenêtre de fonctionnalité temporelle de cinq jours et que vous la réduisez à trois jours, toutes les tables supprimées avant la modification peuvent être récupérées pendant cinq jours.

Les fenêtres de fonctionnalité temporelle étant définies au niveau de l'ensemble de données, vous ne pouvez pas modifier la fenêtre temporelle d'un ensemble de données supprimé tant que la suppression n'est pas annulée.

Si vous réduisez la durée de la fenêtre de fonctionnalité temporelle, supprimez une table, puis réalisez que vous avez besoin de plus de récupération pour ces données, vous pouvez créer un instantané de la table à partir d'un moment antérieur à la suppression de la table. Vous devez le faire pendant que la table supprimée est toujours récupérable. Pour en savoir plus, consultez la page Créer un instantané de table à l'aide des fonctionnalités temporelles.

Spécifier une fenêtre de fonctionnalité temporelle

Vous pouvez utiliser la console Google Cloud, l'outil de ligne de commande bq ou l'API BigQuery pour spécifier la fenêtre de fonctionnalité temporelle d'un ensemble de données.

Pour savoir comment spécifier la fenêtre de fonctionnalité temporelle dans le nouvel ensemble de données, consultez la section Créer des ensembles de données.

Pour plus d'informations sur la mise à jour de la fenêtre de fonctionnalité temporelle pour un ensemble de données existant, consultez la section Mettre à jour les fenêtres de fonctionnalité temporelle.

Si le code temporel spécifie une heure en dehors de la fenêtre de fonctionnalité temporelle ou avant la création de la table, la requête échoue et renvoie une erreur semblable à celle-ci :

Table ID was created at time which is
before its allowed time travel interval timestamp. Creation
time: timestamp

Déplacements temporels et accès au niveau des lignes

Si une table dispose ou a eu des règles d'accès au niveau des lignes, seul un administrateur de table peut accéder aux données historiques de la table.

L'autorisation IAM (Identity and Access Management) suivante est requise :

Autorisation Ressource
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions Table dont les données historiques sont accessibles

Le rôle BigQuery suivant fournit l'autorisation requise :

Rôle Ressource
roles/bigquery.admin Table dont les données historiques sont accessibles

L'autorisation bigquery.rowAccessPolicies.overrideTimeTravelRestrictions ne peut pas être ajoutée à un rôle personnalisé.

  • Exécutez la commande suivante pour obtenir l'epoch Unix équivalent :

    date -d '2023-08-04 16:00:34.456789Z' +%s000
    
  • Remplacez l'heure UNIX 1691164834000 reçue de la commande ci-dessus dans l'outil de ligne de commande bq. Exécutez la commande suivante pour restaurer une copie de la table supprimée deletedTableID dans une autre table restoredTable de l'ensemble de données myDatasetID :

    bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
    

Prévention des défaillances

BigQuery prévoit une période de sécurité. Pendant cette période, les données supprimées sont automatiquement conservées pendant sept jours supplémentaires après la fenêtre de fonctionnalité temporelle, afin que les données soient disponibles pour la récupération d'urgence. Les données peuvent être récupérées au niveau de la table. Les données d'une table sont récupérées à partir du moment représenté par le code temporel de la suppression de cette table. La période de sécurité n'est pas configurable.

Vous ne pouvez pas interroger ou récupérer directement des données dans un espace de stockage sécurisé. Pour récupérer des données à partir d'un espace de stockage sécurisé, contactez Cloud Customer Care.

Facturation

Si vous définissez votre modèle de facturation du stockage pour qu'il utilise des octets physiques, les coûts de stockage totaux qui vous sont facturés incluent les octets utilisés pour le stockage temporel et de sécurité. Si vous choisissez d'utiliser des octets logiques dans votre modèle de facturation du stockage, les coûts de stockage totaux qui vous sont facturés n'incluent pas les octets utilisés pour le stockage temporel ou de sécurité. Vous pouvez configurer la fenêtre de fonctionnalité temporelle pour équilibrer les coûts de stockage et vos besoins en termes de conservation des données.

Si vous utilisez le stockage physique, vous pouvez voir les octets utilisés par la fonctionnalité temporelle et la prévention des défaillances en consultant les colonnes TIME_TRAVEL_PHYSICAL_BYTES et FAIL_SAFE_PHYSICAL_BYTES dans les vues TABLE_STORAGE et TABLE_STORAGE_BY_ORGANIZATION.

Limites

  • Les fonctionnalités temporelles ne permettent d'accéder aux données de l'historique que pour la durée de la fenêtre de fonctionnalité temporelle. Pour conserver les données d'une table à des fins non urgentes pendant une durée supérieure à celle de la fenêtre de fonctionnalité temporelle, utilisez des instantanés de table.
  • Si une table dispose ou a déjà configuré des règles d'accès au niveau des lignes, seul un administrateur de table peut utiliser la fonctionnalité temporelle. Pour en savoir plus, consultez la section Fonctionnalité temporelle et accès au niveau des lignes.
  • La fonctionnalité temporelle ne permet pas de restaurer les métadonnées d'une table.

Étapes suivantes