Gérer les tables
Ce document explique comment gérer les tables dans BigQuery. Vous pouvez gérer vos tables BigQuery comme suit :
- Mettez à jour les propriétés de la table :
- Renommer (copier) une table
- Copier une table
- Supprimer une table
- Restaurer une table supprimée
Pour en savoir plus sur la création et l'utilisation des tables, y compris sur l'obtention d'informations sur les tables, l'établissement d'une liste des tables et le contrôle de l'accès aux données des tables, consultez la page Créer et utiliser des tables.
Avant de commencer
Attribuez aux utilisateurs des rôles IAM (Identity and Access Management) incluant les autorisations nécessaires pour effectuer l'ensemble des tâches du présent document. Les autorisations requises pour effectuer une tâche (le cas échéant) sont répertoriées dans la section "Autorisations requises" de la tâche.
Mettre à jour les propriétés d'une table
Vous pouvez mettre à jour les éléments suivants d'une table :
- Description
- Date/Heure d'expiration
- Définition du schéma
- Libellés
- Table name (Nom de la table)
- Tags
Autorisations requises
Pour obtenir les autorisations nécessaires pour mettre à jour les propriétés d'une table, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de données (roles/bigquery.dataEditor
) sur une table.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations nécessaires pour mettre à jour les propriétés d'une table. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour mettre à jour les propriétés d'une table :
-
bigquery.tables.update
-
bigquery.tables.get
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
En outre, si vous disposez de l'autorisation bigquery.datasets.create
, vous pouvez mettre à jour les propriétés des tables des ensembles de données que vous créez.
Mettre à jour la description d'une table
Vous pouvez mettre à jour la description d'une table comme suit :
- Utiliser la console Google Cloud
- En soumettant une instruction LDD (langage de définition de données)
ALTER TABLE
- En utilisant la commande
bq update
de l'outil de ligne de commande bq - Appeler la méthode API
tables.patch
- En utilisant les bibliothèques clientes
Pour mettre à jour la description d'une table :
Console
Vous ne pouvez pas ajouter de description lorsque vous créez une table à l'aide de la console Google Cloud. Une fois la table créée, vous pouvez ajouter une description sur la page Details (Détails).
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le panneau des détails, cliquez sur Détails.
Dans la section Description, cliquez sur l'icône en forme de crayon pour modifier la description
Saisissez une description dans la zone de texte, puis cliquez sur Mettre à jour pour enregistrer.
SQL
Utilisez l'instruction ALTER TABLE SET OPTIONS
.
L'instruction suivante met à jour la description d'une table nommée mytable
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
ALTER TABLE mydataset.mytable SET OPTIONS ( description = 'Description of mytable');
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq update
avec l'option--description
. Si vous mettez à jour une table dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données en respectant le format suivant :project_id:dataset
.bq update \ --description "description" \ project_id:dataset.table
Remplacez l'élément suivant :
description
: texte décrivant la table entre guillemets.project_id
: ID de votre projet.dataset
: nom de l'ensemble de données contenant la table que vous mettez à jour.table
: nom de la table que vous mettez à jour.
Exemples :
Pour remplacer la description de la table
mytable
dans l'ensemble de donnéesmydataset
par "Description de ma table", saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans votre projet par défaut.bq update --description "Description of mytable" mydataset.mytable
Pour remplacer la description de la table
mytable
dans l'ensemble de donnéesmydataset
par "Description de ma table", saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans le projetmyotherproject
, et non dans votre projet par défaut.bq update \ --description "Description of mytable" \ myotherproject:mydataset.mytable
API
Appelez la méthode tables.patch
et utilisez la propriété description
dans la ressource de table pour mettre à jour la description de la table. Étant donné que la méthode tables.update
remplace l'intégralité de la ressource de table, la méthode tables.patch
est préférable.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Configurez la propriété Table.description et appelez Client.update_table() pour envoyer la mise à jour à l'API.Mettre à jour le délai d'expiration d'une table
Vous pouvez définir un délai d'expiration de la table par défaut au niveau de l'ensemble de données ou définir le délai d'expiration d'une table lors de sa création. La date/heure d'expiration d'une table est souvent appelée "time to live" (durée de vie) ou valeur TTL.
Lorsqu'une table expire, elle est supprimée avec toutes les données qu'elle contient. Si nécessaire, vous pouvez annuler la suppression de la table dans la période spécifiée pour l'ensemble de données. Pour en savoir plus, consultez la section Restaurer les tables supprimées.
Si vous définissez le délai d'expiration lorsque vous créez la table, la valeur TTL par défaut de l'ensemble de données est ignorée. Si vous ne définissez pas d'expiration de table par défaut au niveau de l'ensemble de données et que vous n'en définissez pas lors de sa création, la table n'expire jamais et vous devez la supprimer manuellement.
Une fois la table créée, vous pouvez mettre à jour ses date et heure d'expiration à tout moment comme suit :
- Utiliser la console Google Cloud
- En soumettant une instruction LDD (langage de définition de données)
ALTER TABLE
- En utilisant la commande
bq update
de l'outil de ligne de commande bq - Appeler la méthode API
tables.patch
- En utilisant les bibliothèques clientes
Pour mettre à jour la date/heure d'expiration d'une table :
Console
Vous ne pouvez pas ajouter de délai d'expiration lorsque vous créez une table à l'aide de la console Google Cloud. Une fois la table créée, vous pouvez ajouter ou mettre à jour le délai d'expiration de la table sur la page Table Details (Détails de la table).
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le panneau des détails, cliquez sur Détails.
Cliquez sur l'icône en forme de crayon à côté des Table info (Informations sur la table).
Pour Table expiration (Expiration de la table), sélectionnez Specify date (Spécifier une date). Sélectionnez ensuite la date d'expiration à l'aide du widget Agenda.
Cliquez sur Update (Mettre à jour) pour enregistrer la modification. Le délai d'expiration mis à jour apparaît dans la section Table info (Informations sur la table).
SQL
Utilisez l'instruction ALTER TABLE SET OPTIONS
.
L'exemple suivant met à jour l'heure d'expiration d'une table nommée mytable
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
ALTER TABLE mydataset.mytable SET OPTIONS ( -- Sets table expiration to timestamp 2025-02-03 12:34:56 expiration_timestamp = TIMESTAMP '2025-02-03 12:34:56');
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq update
avec l'option--expiration
. Si vous mettez à jour une table dans un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données en respectant le format suivant :project_id:dataset
.bq update \ --expiration integer \
project_id:dataset.table
Remplacez l'élément suivant :
integer
: durée de vie par défaut (en secondes) de la table. La valeur minimale est de 3 600 secondes (une heure). Le délai d'expiration correspond à l'heure actuelle plus la valeur entière. Si vous spécifiez0
, le délai d'expiration de la table est supprimé, et la table n'expire jamais. Les tables sans délai d'expiration doivent être supprimées manuellement.project_id
: ID de votre projet.dataset
: nom de l'ensemble de données contenant la table que vous mettez à jour.table
: nom de la table que vous mettez à jour.
Exemples :
Pour faire passer le délai d'expiration de la table
mytable
de l'ensemble de donnéesmydataset
à cinq jours (432 000 secondes), saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans votre projet par défaut.bq update --expiration 432000 mydataset.mytable
Pour faire passer le délai d'expiration de la table
mytable
de l'ensemble de donnéesmydataset
à cinq jours (432 000 secondes), saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans le projetmyotherproject
, et non dans votre projet par défaut.bq update --expiration 432000 myotherproject:mydataset.mytable
API
Appelez la méthode tables.patch
et utilisez la propriété expirationTime
dans la ressource de table pour mettre à jour le délai d'expiration de la table (en millisecondes). Étant donné que la méthode tables.update
remplace l'intégralité de la ressource de table, la méthode tables.patch
est préférable.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Configurez la propriété Table.expires et appelez Client.update_table() pour envoyer la mise à jour à l'API.Pour mettre à jour le délai d'expiration de la partition de l'ensemble de données par défaut, procédez comme suit :
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Mettre à jour le mode d'arrondi d'une table
Vous pouvez mettre à jour le mode d'arrondi par défaut d'une table à l'aide de l'instruction LDD ALTER TABLE SET OPTIONS
.
L'exemple suivant met à jour sur ROUND_HALF_EVEN
le mode d'arrondi par défaut pour mytable
:
ALTER TABLE mydataset.mytable SET OPTIONS ( default_rounding_mode = "ROUND_HALF_EVEN");
Lorsque vous ajoutez un champ NUMERIC
ou BIGNUMERIC
à une table et que vous ne spécifiez pas de mode d'arrondi, celui-ci est automatiquement défini sur le mode d'arrondi par défaut de la table. La modification du mode d'arrondi par défaut d'une table ne modifie pas le mode d'arrondi des champs existants.
Mettre à jour la définition d'un schéma de table
Pour plus d'informations sur la mise à jour de la définition d'un schéma de table, consultez la page Modifier des schémas de table.
Renommer une table
Vous pouvez renommer une table après sa création à l'aide de l'instruction ALTER TABLE RENAME TO
.
L'exemple suivant renomme mytable
en mynewtable
:
ALTER TABLE mydataset.mytable RENAME TO mynewtable;
Limites du changement de nom des tables
- Si vous souhaitez renommer une table contenant du streaming de données, vous devez arrêter la diffusion, valider les flux en attente et attendre que BigQuery indique que le streaming n'est pas utilisé.
- Une table peut généralement être renommée cinq heures après la dernière opération de streaming, mais cela peut prendre plus de temps.
- Les LCA de tables et les règles d'accès aux lignes existantes sont conservées, contrairement aux mises à jour des règles d'accès aux lignes et des LCA de tables effectuées lors du changement de nom des tables.
- Vous ne pouvez pas renommer une table et exécuter simultanément une instruction LMD sur cette table.
- Lorsque vous renommez une table, tous les tags Data Catalog de la table sont supprimés.
- Vous ne pouvez pas renommer les tables externes.
Copier une table
Cette section explique comment créer une copie complète d'une table. Pour en savoir plus sur les autres types de copies de tables, consultez les sections Clones de tables et Instantanés de table.
Vous pouvez copier une table comme suit :
- Utilisez la console Google Cloud.
- Exécutez la commande
bq cp
. - Utilisez une instruction LDD (langage de définition de données)
CREATE TABLE COPY
. - Appelez la méthode API jobs.insert et configurez une tâche
copy
. - Utilisez les bibliothèques client.
Limites de la copie de tables
Les tâches de copie de tables sont soumises aux limites suivantes :
- Lorsque vous copiez une table, le nom de la table de destination doit respecter les mêmes conventions d'attribution de noms que lorsque vous créez une table.
- Les copies de tables sont soumises aux limites de BigQuery applicables aux tâches de copie.
- La console Google Cloud ne permet de copier qu'une seule table à la fois. Vous ne pouvez pas écraser une table existante dans l'ensemble de données de destination. La table doit avoir un nom unique dans l'ensemble de données de destination.
- La console Google Cloud ne permet pas de copier plusieurs tables sources dans une table de destination.
Lors de la copie de plusieurs tables sources vers une table de destination à l'aide de l'API, de l'outil de ligne de commande bq ou des bibliothèques clientes, toutes les tables sources doivent avoir des schémas identiques, y compris tout type de partitionnement ou clustering.
Certaines mises à jour de schéma de table, telles que la suppression ou le renommage de colonnes, peuvent entraîner des schémas apparemment identiques, mais des représentations internes différentes. Cela peut entraîner l'échec d'un job de copie de table avec l'erreur
Maximum limit on diverging physical schemas reached
. Dans ce cas, vous pouvez utiliser l'instructionCREATE TABLE LIKE
pour vous assurer que le schéma de votre table source correspond exactement au schéma de la table de destination.Le temps nécessaire à BigQuery pour copier les tables peut varier considérablement selon les exécutions, car le stockage sous-jacent est géré de manière dynamique.
Vous ne pouvez pas copier et ajouter une table source à une table de destination qui contient plus de colonnes que la table source. Les colonnes supplémentaires ont des valeurs par défaut. Au lieu de cela, vous pouvez exécuter
INSERT destination_table SELECT * FROM source_table
pour copier les données.Si l'opération de copie écrase une table existante, l'accès au niveau de la table est conservé. Les tags de la table source ne sont pas copiés dans la table écrasée, tandis que les tags de la table existante sont conservés. Toutefois, lorsque vous copiez des tables d'une région à une autre, les tags de la table existante sont supprimés.
Si l'opération de copie crée une table, l'accès au niveau de la table pour la nouvelle table est déterminé par les règles d'accès de l'ensemble de données dans lequel la nouvelle table est créée. De plus, les tags sont copiés depuis la table source vers la nouvelle table.
Lorsque vous copiez plusieurs tables sources dans une table de destination, toutes les tables sources doivent contenir des tags identiques.
Rôles requis
Pour effectuer les tâches décrites dans ce document, vous devez disposer des autorisations suivantes.
Rôles pour copier des tables et des partitions
Pour obtenir les autorisations nécessaires pour copier des tables et des partitions, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de données (roles/bigquery.dataEditor
) sur les ensembles de données source et de destination.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations nécessaires pour copier des tables et des partitions. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour copier des tables et des partitions :
bigquery.tables.getData
sur les ensembles de données source et de destinationbigquery.tables.get
sur les ensembles de données source et de destination-
bigquery.tables.create
sur l'ensemble de données de destination -
bigquery.tables.update
sur l'ensemble de données de destination
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Autorisation pour exécuter une tâche de copie
Pour obtenir l'autorisation pour exécuter un job de copie, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur de job (roles/bigquery.jobUser
) sur les ensembles de données source et de destination.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient l'autorisation bigquery.jobs.create
, qui est nécessaire pour exécuter un job de copie.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
Copier une seule table source
Vous pouvez copier une seule table comme suit :
- Utiliser la console Google Cloud
- En utilisant la commande
bq cp
de l'outil de ligne de commande bq - En soumettant une instruction LDD (langage de définition de données)
CREATE TABLE COPY
- En appelant la méthode API
jobs.insert
, en configurant une tâche de copie (copy
) et en spécifiant la propriétésourceTable
- Utiliser les bibliothèques clientes
La console Google Cloud et l'instruction CREATE TABLE COPY
n'acceptent qu'une table source et une table de destination dans une tâche de copie. Pour copier plusieurs fichiers sources dans une table de destination, vous devez utiliser l'outil de ligne de commande bq ou l'API.
Pour copier une seule table source :
Console
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le panneau de détails, cliquez sur Copier une table.
Dans la boîte de dialogue Copy table (Copier la table), sous Destination :
- Pour Nom du projet, choisissez le projet qui hébergera la table copiée.
- Pour Nom de l'ensemble de données, sélectionnez l'ensemble de données dans lequel vous souhaitez stocker la table copiée. Les ensembles de données source et de destination doivent être stockés dans le même emplacement.
- Pour Table name (Nom de la table), saisissez un nom pour la nouvelle table. Le nom doit être unique dans l'ensemble de données de destination. Vous ne pouvez pas écraser une table existante dans l'ensemble de données de destination à l'aide de la console Google Cloud. Pour plus d'informations sur les exigences concernant les noms de table, consultez la page Nommer les tables.
Cliquez sur Copier pour démarrer la tâche de copie.
SQL
Utilisez l'instruction CREATE TABLE COPY
pour copier une table nommée table1
dans une nouvelle table nommée table1copy
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE TABLE
myproject.mydataset.table1copy
COPYmyproject.mydataset.table1
;Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq cp
. Les indicateurs facultatifs peuvent être utilisés pour contrôler la disposition d'écriture de la table de destination :-a
ou--append_table
ajoute les données de la table source à une table existante de l'ensemble de données de destination.-f
ou--force
écrase une table existante dans l'ensemble de données de destination, et ne vous demande pas de confirmation.-n
ou--no_clobber
renvoie le message d'erreur suivant si la table existe dans l'ensemble de données de destination :Table 'project_id:dataset.table' already exists, skipping.
Si-n
n'est pas spécifié, le comportement par défaut consiste à vous demander si vous souhaitez remplacer la table de destination.--destination_kms_key
est la clé Cloud KMS gérée par le client et utilisée pour chiffrer la table de destination.
--destination_kms_key
n'est pas présenté ici. Pour en savoir plus, consultez la page Protéger des données avec des clés Cloud Key Management Service.Si l'ensemble de données source ou de destination se trouve dans un projet autre que votre projet par défaut, ajoutez l'ID du projet aux noms des ensembles de données en respectant le format suivant :
project_id:dataset
.(Facultatif) Spécifiez l'option
--location
et définissez la valeur correspondant à votre emplacement.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table
\project_id:dataset.destination_table
Remplacez l'élément suivant :
location
: nom de votre emplacement. L'option--location
est facultative. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, vous pouvez définir la valeur de l'option surasia-northeast1
. Vous pouvez définir une valeur par défaut correspondant à l'emplacement à l'aide du fichier.bigqueryrc
.project_id
: ID de votre projet.dataset
: nom de l'ensemble de données source ou de destination.source_table
: la table que vous copiez.destination_table
: nom de la table dans l'ensemble de données de destination.
Exemples :
Pour copier la table
mydataset.mytable
vers la tablemydataset2.mytable2
, saisissez la commande suivante. Les deux ensembles de données sont dans votre projet par défaut.bq cp mydataset.mytable mydataset2.mytable2
Pour copier la table
mydataset.mytable
et écraser une table de destination portant le même nom, saisissez la commande suivante. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans le projetmyotherproject
. Le raccourci-f
permet d'écraser la table de destination sans invite.bq cp -f \ mydataset.mytable \ myotherproject:myotherdataset.mytable
Pour copier la table
mydataset.mytable
et renvoyer une erreur si l'ensemble de données de destination contient une table portant le même nom, saisissez la commande suivante. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans le projetmyotherproject
. Le raccourci-n
permet d'éviter d'écraser une table portant le même nom.bq cp -n \ mydataset.mytable \ myotherproject:myotherdataset.mytable
Pour copier la table
mydataset.mytable
et ajouter les données à une table de destination portant le même nom, utilisez la commande suivante. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans le projetmyotherproject
. Le raccourci- a
permet d'ajouter des données à la table de destination.bq cp -a mydataset.mytable myotherproject:myotherdataset.mytable
API
Vous pouvez copier une table existante via l'API en appelant la méthode bigquery.jobs.insert
et en configurant une tâche de copie (copy
). Spécifiez l'emplacement dans la propriété location
de la section jobReference
de la ressource de tâche.
Vous devez spécifier les valeurs suivantes dans votre configuration de tâche :
"copy": { "sourceTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "destinationTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "createDisposition": string, // Optional "writeDisposition": string, // Optional },
Où sourceTable
fournit des informations sur la table à copier, destinationTable
fournit des informations sur la nouvelle table, createDisposition
précise si la table doit être créée si elle n'existe pas, et writeDisposition
indique s'il convient d'écraser une table existante ou d'y ajouter des données.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# 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 C#.
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.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration pour PHP 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 PHP.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Copier plusieurs tables sources
Vous pouvez copier plusieurs tables sources dans une table de destination comme suit :
- En utilisant la commande
bq cp
de l'outil de ligne de commande bq - En appelant la méthode
jobs.insert
, en configurant une tâche de copie (copy
) et en spécifiant la propriétésourceTables
- Utiliser les bibliothèques clientes
Toutes les tables sources doivent avoir des schémas et des tags identiques, et une seule table de destination est autorisée.
Vous devez spécifier les tables sources sous forme de liste en les séparant par une virgule. Vous ne pouvez pas utiliser de caractères génériques lorsque vous copiez plusieurs tables sources.
Pour copier plusieurs tables sources, sélectionnez l'une des options suivantes :
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq cp
et incluez plusieurs tables sources sous forme de liste séparée par des virgules. Les indicateurs facultatifs peuvent être utilisés pour contrôler la disposition d'écriture de la table de destination :-a
ou--append_table
ajoute les données des tables sources à une table existante de l'ensemble de données de destination.-f
ou--force
écrase une table de destination existante dans l'ensemble de données de destination, et ne vous demande pas de confirmation.-n
ou--no_clobber
renvoie le message d'erreur suivant si la table existe dans l'ensemble de données de destination :Table 'project_id:dataset.table' already exists, skipping.
Si-n
n'est pas spécifié, le comportement par défaut consiste à vous demander si vous souhaitez remplacer la table de destination.--destination_kms_key
est la clé Cloud Key Management Service gérée par le client et utilisée pour chiffrer la table de destination.
--destination_kms_key
n'est pas présenté ici. Pour en savoir plus, consultez la page Protéger des données avec des clés Cloud Key Management Service.Si l'ensemble de données source ou de destination se trouve dans un projet autre que votre projet par défaut, ajoutez l'ID du projet aux noms des ensembles de données en respectant le format suivant :
project_id:dataset
.(Facultatif) Spécifiez l'option
--location
et définissez la valeur correspondant à votre emplacement.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table
,project_id:dataset.source_table
\project_id:dataset.destination_table
Remplacez l'élément suivant :
location
: nom de votre emplacement. L'option--location
est facultative. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, vous pouvez définir la valeur de l'option surasia-northeast1
. Vous pouvez définir une valeur par défaut correspondant à l'emplacement à l'aide du fichier.bigqueryrc
.project_id
: ID de votre projet.dataset
: nom de l'ensemble de données source ou de destination.source_table
: table que vous copiez.destination_table
: nom de la table dans l'ensemble de données de destination.
Exemples :
Pour copier la table
mydataset.mytable
et la tablemydataset.mytable2
vers la tablemydataset2.tablecopy
, saisissez la commande suivante : Tous les ensembles de données sont dans votre projet par défaut.bq cp \ mydataset.mytable,mydataset.mytable2 \ mydataset2.tablecopy
Pour copier la table
mydataset.mytable
et la tablemydataset.mytable2
vers la tablemyotherdataset.mytable
, et pour écraser une table de destination portant le même nom, saisissez la commande suivante. L'ensemble de données de destination se trouve dans le projetmyotherproject
, et non dans votre projet par défaut. Le raccourci-f
permet d'écraser la table de destination sans invite.bq cp -f \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
Pour copier la table
myproject:mydataset.mytable
et la tablemyproject:mydataset.mytable2
, et renvoyer une erreur si l'ensemble de données de destination contient une table portant le même nom, saisissez la commande suivante. L'ensemble de données de destination se trouve dans le projetmyotherproject
. Le raccourci-n
permet d'éviter d'écraser une table portant le même nom.bq cp -n \ myproject:mydataset.mytable,myproject:mydataset.mytable2 \ myotherproject:myotherdataset.mytable
Pour copier la table
mydataset.mytable
et la tablemydataset.mytable2
, et pour ajouter les données à une table de destination portant le même nom, saisissez la commande suivante. L'ensemble de données source est dans votre projet par défaut. L'ensemble de données de destination se trouve dans le projetmyotherproject
. Le raccourci-a
permet d'ajouter des données à la table de destination.bq cp -a \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
API
Pour copier plusieurs tables à l'aide de l'API, appelez la méthode jobs.insert
, configurez une tâche de copie (copy
) de table et spécifiez la propriété sourceTables
.
Spécifiez la région dans la propriété location
de la section jobReference
de la ressource de tâche.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Copier des tables d'une région à une autre
Vous pouvez copier une table, un instantané de table ou un clone de table d'une région BigQuery ou d'un emplacement multirégional à un autre. Cela inclut toutes les tables sur lesquelles les clés Cloud KMS gérées par le client (CMEK) sont appliquées. Cela entraîne des frais supplémentaires conformément aux tarifs de BigQuery.
Pour copier une table d'une région à une autre, sélectionnez l'une des options suivantes :
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq cp
:
bq cp \ -f -n \SOURCE_PROJECT:SOURCE_DATASET.SOURCE_TABLE
\DESTINATION_PROJECT:DESTINATION_DATASET.DESTINATION_TABLE
Remplacez les éléments suivants :
SOURCE_PROJECT
: ID du projet source. Si l'ensemble de données source se trouve dans un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données source.DESTINATION_PROJECT
: ID du projet de destination Si l'ensemble de données de destination se trouve dans un projet autre que celui par défaut, ajoutez l'ID du projet au nom de l'ensemble de données de destination.SOURCE_DATASET
: nom de l'ensemble de données sourceDESTINATION_DATASET
: nom de l'ensemble de données de destinationSOURCE_TABLE
: table que vous copiez.DESTINATION_TABLE
: nom de la table dans l'ensemble de données de destination.Exemples :
Pour copier la table
mydataset_us.mytable
de l'emplacement multirégionalus
vers la tablemydataset_eu.mytable2
de l'emplacement multirégionaleu
, saisissez la commande suivante : Les deux ensembles de données sont dans votre projet par défaut.bq cp --sync=false mydataset_us.mytable mydataset_eu.mytable2
Pour copier une table compatible avec les CMEK, vous pouvez créer une clé à l'aide de Cloud KMS et spécifier la clé dans la commande
bq cp
, ou utiliser un ensemble de données de destination avec le chiffrement CMEK par défaut configuré. L'exemple suivant spécifie le CMEK de destination dans la commandebq cp
.bq cp --destination_kms_key=projects/testing/locations/us/keyRings/us_key/cryptoKeys/eu_key mydataset_us.mytable mydataset_eu.mytable2
API
Pour copier une table dans plusieurs régions à l'aide de l'API, appelez la méthode jobs.insert
et configurez un job de copie copy
.
Spécifiez la région dans la propriété location
de la section jobReference
de la ressource de tâche.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# 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 C#.
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.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration pour PHP 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 PHP.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Limites
La copie d'une table dans plusieurs régions est soumise aux limites suivantes :
- Vous ne pouvez pas copier une table à l'aide de la console Google Cloud ou de l'instruction
TABLE COPY DDL
. - Vous ne pouvez pas copier une table si elle comporte des tags avec stratégie.
- Vous ne pouvez pas copier une table si la table source est supérieure à 20 Tio physiques. Pour connaître la taille physique de la table source, consultez Obtenir des informations sur les tables.
- Vous ne pouvez pas copier les stratégies IAM associées aux tables. Vous pouvez appliquer les mêmes règles à la destination une fois la copie terminée.
- Si l'opération de copie écrase une table existante, les tags de la table existante sont supprimés.
- Vous ne pouvez pas copier plusieurs tables sources dans une seule table de destination.
- Vous ne pouvez pas copier de tables en mode ajout.
- Les informations sur les plages temporelles ne sont pas copiées dans la région de destination.
- Lorsque vous copiez un clone ou un instantané de table dans une nouvelle région, une copie complète de la table est créée. Cela entraîne des frais de stockage supplémentaires.
Afficher l'utilisation actuelle des quotas
Vous pouvez afficher l'utilisation actuelle des jobs de requête, de chargement, d'extraction ou de copie en exécutant une requête INFORMATION_SCHEMA
pour afficher les métadonnées des tâches exécutées sur une période spécifiée. Vous pouvez comparer votre utilisation actuelle à la limite de quota pour déterminer votre utilisation de quotas pour un type de job particulier. L'exemple de requête suivant utilise la vue INFORMATION_SCHEMA.JOBS
pour répertorier le nombre de jobs de requête, de chargement, d'extraction et de copie par projet :
SELECT sum(case when job_type="QUERY" then 1 else 0 end) as QRY_CNT, sum(case when job_type="LOAD" then 1 else 0 end) as LOAD_CNT, sum(case when job_type="EXTRACT" then 1 else 0 end) as EXT_CNT, sum(case when job_type="COPY" then 1 else 0 end) as CPY_CNT FROM `region-eu`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE date(creation_time)= CURRENT_DATE()
Pour afficher les limites de quota pour les jobs de copie, consultez la section Quotas et limites : jobs de copie.
Supprimer des tables
Vous pouvez supprimer une table comme suit :
- Utiliser la console Google Cloud
- En soumettant une instruction LDD (langage de définition de données)
DROP TABLE
- À l'aide de la commande
bq rm
de l'outil de ligne de commande bq - Appeler la méthode API
tables.delete
- Utiliser les bibliothèques clientes
Pour supprimer toutes les tables de l'ensemble de données, supprimez l'ensemble de données.
Lorsque vous supprimez une table, toutes les données de la table sont également supprimées. Pour supprimer automatiquement des tables après une période donnée, définissez le délai d'expiration par défaut de la table pour l'ensemble de données ou spécifiez le délai d'expiration lorsque vous créez la table.
La suppression d'une table supprime également toutes les autorisations associées à cette table. Lorsque vous recréez une table supprimée, vous devez également reconfigurer manuellement les autorisations d'accès qui lui sont associées.
Rôles requis
Pour obtenir les autorisations nécessaires pour supprimer une table, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de données (roles/bigquery.dataEditor
) sur l'ensemble de données.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations nécessaires pour supprimer une table. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour supprimer une table :
-
bigquery.tables.delete
-
bigquery.tables.get
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Supprimer une table
Pour supprimer une table :
Console
Dans le panneau Explorateur, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le panneau de détails, cliquez sur Supprimer la table.
Saisissez
"delete"
dans la boîte de dialogue, puis cliquez sur Supprimer pour confirmer.
SQL
Utilisez l'instruction DROP TABLE
.
L'exemple suivant supprime une table nommée mytable
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
DROP TABLE mydataset.mytable;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
bq rm
avec l'option--table
(ou le raccourci-t
) pour supprimer une table. Lorsque vous supprimez une table à l'aide de l'outil de ligne de commande bq, vous devez confirmer l'action. Vous pouvez utiliser l'option--force
(ou le raccourci-f
) pour ignorer la confirmation.Si la table se trouve dans un ensemble de données d'un projet autre que votre projet par défaut, ajoutez l'ID du projet au nom de l'ensemble de données en respectant le format suivant :
project_id:dataset
.bq rm \ -f \ -t \ project_id:dataset.table
Remplacez l'élément suivant :
project_id
: ID de votre projet.dataset
: nom de l'ensemble de données contenant la table.table
: nom de la table que vous supprimez.
Exemples :
Pour supprimer la table
mytable
de l'ensemble de donnéesmydataset
, saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans votre projet par défaut.bq rm -t mydataset.mytable
Pour supprimer la table
mytable
de l'ensemble de donnéesmydataset
, saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans le projetmyotherproject
, et non dans votre projet par défaut.bq rm -t myotherproject:mydataset.mytable
Pour supprimer la table
mytable
de l'ensemble de donnéesmydataset
, saisissez la commande suivante. L'ensemble de donnéesmydataset
se trouve dans votre projet par défaut. La commande utilise le raccourci-f
pour contourner la confirmation.bq rm -f -t mydataset.mytable
API
Appelez la méthode API tables.delete
et spécifiez la table à supprimer à l'aide du paramètre tableId
.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# 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 C#.
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.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
PHP
Avant d'essayer cet exemple, suivez les instructions de configuration pour PHP 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 PHP.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration pour Ruby 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 Ruby.
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.
Restaurer les tables supprimées
Vous pouvez annuler la suppression d'une table 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 configurer la fenêtre de fonctionnalité temporelle. Pour annuler la suppression d'un ensemble de données complet, consultez la section Annuler la suppression d'ensembles de données.
La période temporelle peut durer entre deux et sept jours. Une fois la période de fonctionnalité temporelle terminé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 protection contre les erreurs écoulée, il n'est plus possible d'annuler la suppression d'une table, quelle que soit la méthode utilisée, y compris pour ouvrir une demande d'assistance.
Lorsque vous restaurez une table à partir de données historiques, les tags de la table source ne sont pas copiés dans la table de destination.
Vous pouvez restaurer une table supprimée, mais toujours dans la fenêtre temporelle, en copiant la table dans une nouvelle table, à l'aide du décorateur d'heure @<time>
.
Pour copier la table, vous pouvez utiliser l'outil de ligne de commande bq ou les bibliothèques clientes :
Console
Vous ne pouvez pas annuler la suppression d'une table à l'aide de la console Google Cloud.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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
date
pour 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 commande
bq copy
avec le décorateur de fonctionnalité temporelle@<time>
pour effectuer l'opération de copie de table.Par exemple, saisissez la commande suivante pour copier la table
mydataset.mytable
au moment1418864998000
dans une nouvelle tablemydataset.newtable
.bq cp mydataset.mytable@1418864998000 mydataset.newtable
(Facultatif) Spécifiez l'option
--location
et 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
Pour plus d'informations, consultez la section Restaurer une table à un moment précis.
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.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js 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 Node.js.
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.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python 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 Python.
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.
Si vous prévoyez de restaurer une table ultérieurement à ce qui est autorisé par la fenêtre temporelle, créez un instantané de la table. Pour en savoir plus, consultez la section Instantanés de table.
Sécurité des tables
Pour savoir comment contrôler l'accès aux tables dans BigQuery, consultez la page Présentation des contrôles d'accès aux tables.
Étape suivante
- Pour plus d'informations sur la création et l'utilisation des tables, consultez la page Créer et utiliser des tables.
- Pour plus d'informations sur la gestion des données, consultez la page Gérer des données de table.
- Pour en savoir plus sur la spécification des schémas de table, consultez la page Spécifier un schéma.
- Pour en savoir plus sur la modification des schémas de table, consultez la page Modifier des schémas de table.
- Pour en savoir plus sur les ensembles de données, consultez la page Présentation des ensembles de données.
- Pour plus d'informations sur les vues, consultez la page Présentation des vues.