Restaurer les tables supprimées
Ce document explique comment restaurer (ou annuler la suppression) d'une table supprimée dans BigQuery. Vous pouvez restaurer une table supprimée pendant la période spécifiée pour l'ensemble de données, y compris les suppressions explicites et implicites dues à l'expiration de la table. Vous pouvez également configurer la période temporelle.
Pour savoir comment restaurer un ensemble de données ou un instantané supprimé, consultez les ressources suivantes :
La période temporelle peut durer entre deux et sept jours. Une fois la période temporelle écoulée, BigQuery fournit une période de sécurité pendant laquelle les données supprimées sont automatiquement conservées pendant sept jours supplémentaires. Une fois la période de sécurité écoulée, il n'est plus possible de restaurer une table, quelle que soit la méthode utilisée, y compris pour ouvrir une demande d'assistance.
Avant de commencer
Assurez-vous de disposer des autorisations IAM (Identity and Access Management) nécessaires pour restaurer une table supprimée.
Si vous restaurez une table à partir d'un ensemble de données supprimé, vous devez recréer l'ensemble de données dans la même région où il était initialement stocké. Si vous recréez l'ensemble de données dans une autre région, la restauration de la table à l'aide de la fonctionnalité temporelle échoue.
Rôles requis
Pour obtenir les autorisations nécessaires à la restauration d'une table supprimée, demandez à votre administrateur de vous attribuer le rôle utilisateur BigQuery (roles/bigquery.user) IAM sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Restaurer une table
Vous pouvez restaurer une table à partir des données de l'historique en copiant les données de l'historique dans une nouvelle table. La copie des données de l'historique fonctionne même si la table a été supprimée ou a expiré, tant que vous la restaurez pendant la durée de la période temporelle.
Lorsque vous restaurez une table à partir de données historiques, tags de la table source ne sont pas copiés dans la table de destination. Les informations de partitionnement de la table ne sont pas non plus copiées dans la table de destination. Pour recréer le schéma de partitionnement de la table d'origine, vous pouvez afficher la requête de création de table initiale dans Cloud Logging et utiliser ces informations pour partitionner la table restaurée.
Vous ne pouvez restaurer qu'une table entière. Vous ne pouvez pas restaurer des partitions individuelles.
Par exemple, la copie d'une partition à l'aide d'un décorateur de partition tel que bq cp mydataset.mytable$20260712@1418864998000 mydataset.mytable_restored n'est pas possible.
Vous pouvez restaurer une table supprimée, mais toujours dans la période temporelle
, en copiant la table dans une nouvelle table, à l'aide du décorateur d'heure @<time>.
Vous ne pouvez pas interroger une table supprimée, même si vous utilisez un décorateur d'heure. Vous devez d'abord la restaurer.
Utilisez la syntaxe suivante avec le décorateur d'heure @<time> :
tableid@TIMEoùTIMEcorrespond au nombre de millisecondes écoulées depuis l'époque Unix.tableid@-TIME_OFFSET, oùTIME_OFFSETest le décalage relatif par rapport à l'heure actuelle, en millisecondes.tableid@0: spécifie les données de l'historique les plus anciennes disponibles.
Pour restaurer une table, sélectionnez l'une des options suivantes :
Console
Vous ne pouvez pas annuler la suppression d'une table à l'aide de la Google Cloud console.
bq
-
Dans la Google Cloud console, activez Cloud Shell.
En bas de la Google Cloud console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Pour restaurer une table, commencez par déterminer un horodatage UNIX (en millisecondes) correspondant à la période d'existence de la table. Vous pouvez utiliser la commande Linux
datepour générer l'horodatage Unix à partir d'une valeur d'horodatage standard :date -d '2023-08-04 16:00:34.456789Z' +%s000
Exécutez ensuite la
bq copycommande avec le@<time>décorateur de fonctionnalité temporelle pour effectuer l'opération de copie de table.Par exemple, saisissez la commande suivante pour copier la table
mydataset.mytableau moment1418864998000dans une nouvelle tablemydataset.newtable.bq cp mydataset.mytable@1418864998000 mydataset.newtable
(Facultatif) Spécifiez l'option
--locationet définissez la valeur correspondant à votre emplacement.Vous pouvez également spécifier un décalage relatif. L'exemple suivant copie la version d'une table d'il y a une heure :
bq cp mydataset.mytable@-3600000 mydataset.newtable
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Go.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.