Gérer les ensembles de données
Ce document explique comment copier des ensembles de données, les recréer dans un autre emplacement, sécuriser les ensembles de données, supprimer des ensembles de données, restaurer les tables d'ensembles de données supprimés et annuler la suppression d'ensembles de données dans BigQuery.
En tant qu'administrateur BigQuery, vous pouvez organiser et contrôler l'accès aux tables et aux vues utilisées par les analystes. Pour en savoir plus sur les ensembles de données, consultez la page Présentation des ensembles de données.
Vous ne pouvez pas modifier le nom d'un ensemble de données existant ou déplacer un ensemble de données après sa création. Pour contourner ce problème, vous pouvez copier un ensemble de données et modifier le nom de l'ensemble de données de destination. Pour déplacer un ensemble de données, vous pouvez suivre l'une des méthodes suivantes :
Rôles requis
Cette section décrit les rôles et les autorisations dont vous avez besoin pour gérer les ensembles de données. Si votre ensemble de données source ou de destination se trouve dans le même projet que celui que vous utilisez pour la copie, vous n'avez pas besoin d'autorisations ni de rôles supplémentaires sur cet ensemble de données.
Pour obtenir les autorisations nécessaires pour gérer les ensembles de données, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Copier un ensemble de données (bêta) :
-
Administrateur BigQuery (
roles/bigquery.admin
) sur le projet de destination -
Lecteur de données BigQuery (
roles/bigquery.dataViewer
) sur l'ensemble de données source -
Éditeur de données BigQuery (
roles/bigquery.dataEditor
) sur l'ensemble de données de destination
-
Administrateur BigQuery (
- Supprimer un ensemble de données :
Propriétaire de données BigQuery (
roles/bigquery.dataOwner
) sur le projet - Restaurer un ensemble de données supprimé :
Utilisateur BigQuery (
roles/bigquery.user
) sur le projet
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.
Ces rôles prédéfinis contiennent les autorisations requises pour gérer les ensembles de données. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer les ensembles de données :
-
Copier un ensemble de données :
-
bigquery.transfers.update
sur le projet de destination -
bigquery.jobs.create
sur le projet de destination -
bigquery.datasets.get
sur les ensembles de données source et de destination -
bigquery.tables.list
sur les ensembles de données source et de destination bigquery.datasets.update
sur l'ensemble de données de destinationbigquery.tables.create
sur l'ensemble de données de destination
-
-
Supprimer un ensemble de données :
bigquery.datasets.delete
sur le projetbigquery.tables.delete
sur le projet
-
Restaurer un ensemble de données supprimé :
bigquery.datasets.create
sur le projet-
bigquery.datasets.get
sur l'ensemble de données
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour plus d'informations sur les rôles et les autorisations IAM dans BigQuery, consultez la page Présentation d'IAM.
Copier des ensembles de données
Vous pouvez copier un ensemble de données, y compris des données partitionnées au sein d'une même région ou entre différentes régions, sans avoir à extraire, déplacer ou actualiser des données dans BigQuery. BigQuery utilise le service de transfert de données BigQuery dans le backend pour copier les ensembles de données. Pour plus d'informations sur l'emplacement lorsque vous transférez des données, consultez la page Emplacement des données et transferts.
Pour chaque configuration de copie d'un ensemble de données, une seule exécution de transfert peut être active à la fois. Les exécutions de transfert supplémentaires sont mises en file d'attente. Si vous utilisez la console Google Cloud, vous pouvez planifier des copies récurrentes et configurer des notifications e-mail ou Pub/Sub avec le service de transfert de données BigQuery.
Limites
Les limites suivantes s'appliquent lorsque vous copiez des ensembles de données :
Vous ne pouvez pas copier les ressources suivantes à partir d'un ensemble de données source :
- Vues.
- Routines, y compris les fonctions définies par l'utilisateur.
- Tables externes.
- Tables de capture de données modifiées (CDC) si le job de copie concerne plusieurs régions. La copie de tables CDC dans la même région est possible.
Le job de copie de table interrégional n'est pas compatible avec les tables chiffrées avec des clés de chiffrement gérées par le client (CMEK) lorsque l'ensemble de données de destination n'est pas chiffré avec CMEK et qu'aucune clé CMEK n'est fournie. Il est possible d'effectuer des copies interrégionales de tables protégées par le chiffrement par défaut.
Vous pouvez copier toutes les tables chiffrées dans la même région, y compris celles qui sont chiffrées avec des clés CMEK.
Vous ne pouvez pas utiliser les ressources suivantes en tant qu'ensembles de données de destination pour les jobs de copie :
- Stockage optimisé pour l'écriture.
Ensemble de données chiffré avec des clés CMEK si le job de copie concerne plusieurs régions et que la table source n'est pas chiffrée avec des clés CMEK.
Cependant, les tables chiffrées avec des CMEK sont autorisées en tant que tables de destination en cas de copie dans la même région.
La fréquence minimale entre les jobs de copie est de 12 heures.
Il n'est pas possible d'ajouter des données à une table partitionnée de l'ensemble de données de destination.
Si une table existe dans l'ensemble de données source et dans l'ensemble de données de destination, et que la table source n'a pas été modifiée depuis la dernière copie réussie, elle est ignorée. La table source est ignorée même si la case Écraser les tables de destination est cochée.
Lorsque vous tronquez des tables dans l'ensemble de données de destination, le job de copie de l'ensemble de données ne détecte aucune modification apportée aux ressources de l'ensemble de données de destination avant de commencer le job de copie. Le job de copie de l'ensemble de données écrase toutes les données de l'ensemble de données de destination, y compris les tables et le schéma.
La table de destination peut ne pas refléter les modifications apportées aux tables sources après le démarrage d'un job de copie.
La copie d'un ensemble de données n'est pas disponible dans les régions BigQuery Omni.
Pour copier un ensemble de données dans un projet situé dans un autre périmètre de service VPC Service Controls, vous devez définir les règles de sortie suivantes :
Dans la configuration du périmètre de service VPC Service Controls du projet de destination, le compte principal IAM doit disposer des méthodes suivantes :
bigquery.datasets.get
bigquery.tables.list
bigquery.tables.get
,bigquery.tables.getData
Dans la configuration du périmètre de service VPC Service Controls du projet source, la méthode du compte principal IAM utilisé doit être définie sur
All Methods
.
Copier un ensemble de données
Sélectionnez l'une des options suivantes :
Console
Activez le service de transfert de données BigQuery pour votre ensemble de données de destination.
Assurez-vous de disposer des rôles requis.
Si vous avez l'intention de configurer des notifications d'exécution de transfert pour Pub/Sub (option 2 plus loin dans les présentes étapes), vous devez disposer de l'autorisation
pubsub.topics.setIamPolicy
.Si vous ne configurez que des notifications par e-mail, les autorisations Pub/Sub ne sont pas nécessaires. Pour en savoir plus, consultez la page Notifications d'exécution du service de transfert de données BigQuery.
Créez un ensemble de données BigQuery dans la même région ou dans une région différente de votre ensemble de données source.
Option 1 : Utiliser la fonction de copie BigQuery
Pour créer un transfert ponctuel, utilisez la fonction de copie BigQuery :
Accédez à la page BigQuery.
Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
Dans la section Informations sur l'ensemble de données, cliquez sur
Copier, puis procédez comme suit :Dans le champ Ensemble de données, créez un nouvel ensemble de données ou sélectionnez un ID d'ensemble de données existant dans la liste.
Les noms des ensembles de données d'un projet doivent être uniques. Le projet et l'ensemble de données peuvent se trouver dans des régions distinctes, mais toutes les régions ne sont pas compatibles avec les copies interrégionales d'ensembles de données.
Dans le champ Emplacement, l'emplacement de l'ensemble de données source est affiché.
Facultatif : pour écraser les données et le schéma des tables de destination avec les tables sources, cochez la case Écraser les tables de destination. Les tables source et de destination doivent avoir le même schéma de partitionnement.
Pour copier l'ensemble de données, cliquez sur Copier.
Option 2 : Utiliser le service de transfert de données BigQuery.
Pour planifier des copies récurrentes et configurer des notifications par e-mail ou Pub/Sub, utilisez le service de transfert de données BigQuery dans la console Google Cloud du projet de destination :
Accédez à la page Transferts de données.
Cliquez sur Créer un transfert.
Dans la liste Source, sélectionnez Copie de l'ensemble de données.
Dans le champ Nom à afficher, saisissez le nom de votre exécution de transfert.
Dans la section Options de programmation, procédez comme suit :
Pour le champ Fréquence de répétition, choisissez la fréquence d'exécution du transfert :
Si vous sélectionnez Personnalisé, saisissez une fréquence personnalisée, par exemple
every day 00:00
. Pour en savoir plus, consultez la section Mettre en forme l'élément schedule.Pour Start date and run time (Date de début et heure d'exécution), saisissez la date et l'heure de début du transfert. Cette option est désactivée si vous choisissez Start now (Commencer).
Dans la section Paramètres de destination, sélectionnez un ensemble de données de destination pour stocker vos données de transfert. Vous pouvez également cliquer sur CRÉER UN ENSEMBLE DE DONNÉES pour créer un ensemble de données avant de le sélectionner pour ce transfert.
Dans la section Détails de la source de données, saisissez les informations suivantes :
- Pour Ensemble de données source, saisissez l'ID de l'ensemble de données que vous souhaitez copier.
- Pour Projet source, saisissez l'ID de projet de votre ensemble de données source.
Pour écraser les données et le schéma des tables de destination avec les tables sources, cochez la case Écraser les tables de destination. Les tables source et de destination doivent avoir le même schéma de partitionnement.
Dans le menu Compte de service, sélectionnez un compte de service parmi ceux associés à votre projet Google Cloud. Vous pouvez associer un compte de service à votre transfert au lieu d'utiliser vos identifiants utilisateur. Pour en savoir plus sur l'utilisation des comptes de service avec des transferts de données, consultez la page Utiliser des comptes de service.
- Si vous vous êtes connecté avec une identité fédérée, vous devez disposer d'un compte de service pour créer un transfert. Si vous vous êtes connecté avec un compte Google, il n'est pas nécessaire de disposer d'un compte de service pour le transfert.
- Le compte de service doit disposer des rôles requis.
Facultatif : dans la section Options de notification, procédez comme suit :
- Pour activer les notifications par e-mail, cliquez sur le bouton d'activation/désactivation. Lorsque vous activez cette option, le propriétaire de la configuration de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
- Pour activer les notifications Pub/Sub, cliquez sur le bouton d'activation, puis sélectionnez un nom de Sujet dans la liste ou cliquez sur Créer un sujet. Cette option configure les notifications d'exécution Pub/Sub pour votre transfert.
Cliquez sur Enregistrer.
bq
Activez le service de transfert de données BigQuery pour votre ensemble de données de destination.
Assurez-vous de disposer des rôles requis.
Pour créer un ensemble de données BigQuery, exécutez la commande
bq mk
avec l'option de création d'ensemble de données--dataset
et l'optionlocation
:bq mk \ --dataset \ --location=LOCATION \ PROJECT:DATASET
Remplacez les éléments suivants :
LOCATION
: emplacement dans lequel vous souhaitez copier l'ensemble de données.PROJECT
: ID de projet de votre ensemble de données cible.DATASET
: nom de l'ensemble de données cible.
Pour copier un ensemble de données, exécutez la commande
bq mk
avec l'option de création de transfert--transfer_config
et l'option--data_source
. Vous devez définir l'option--data_source
surcross_region_copy
. Pour obtenir la liste complète des valeurs valides pour l'option--data_source
, consultez les options de configuration de transfert dans la documentation de référence de l'outil de ligne de commande bq.bq mk \ --transfer_config \ --project_id=PROJECT \ --data_source=cross_region_copy \ --target_dataset=DATASET \ --display_name=NAME \ --service_account_name=SERCICE_ACCOUNT \ --params='PARAMETERS'
Remplacez les éléments suivants :
NAME
: nom à afficher pour le job de copie ou la configuration de transfert.SERVICE_ACCOUNT
: nom du compte de service utilisé pour authentifier le transfert. Le compte de service doit appartenir au mêmeproject_id
que celui utilisé pour créer le transfert et disposer de toutes les autorisations requises.PARAMETERS
: paramètres pour la configuration de transfert au format JSON.Les paramètres pour la configuration d'une copie d'un ensemble de données sont les suivants :
source_dataset_id
: ID de l'ensemble de données source que vous souhaitez copier.source_project_id
: ID du projet contenant l'ensemble de données source.overwrite_destination_table
: option facultative permettant de tronquer les tables d'une copie précédente et d'actualiser toutes les données.
Les tables source et de destination doivent avoir le même schéma de partitionnement.
Les exemples suivants montrent la mise en forme des paramètres en fonction de l'environnement de votre système :
Linux : utilisez des guillemets simples pour délimiter la chaîne JSON, par exemple :
'{"source_dataset_id":"mydataset","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'
Ligne de commande Windows : utilisez des guillemets doubles pour délimiter la chaîne JSON et échappez les guillemets doubles de la chaîne à l'aide d'une barre oblique inverse, par exemple :
"{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}"
Powershell : utilisez des guillemets simples pour délimiter la chaîne JSON et échappez les guillemets doubles de la chaîne à l'aide d'une barre oblique inverse, par exemple :
'{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}'
Par exemple, la commande suivante crée une configuration de copie d'ensemble de données nommée
My Transfer
, qui comprend un ensemble de données cible nommémydataset
et un projet dont l'ID estmyproject
.bq mk \ --transfer_config \ --project_id=myproject \ --data_source=cross_region_copy \ --target_dataset=mydataset \ --display_name='My Transfer' \ --params='{ "source_dataset_id":"123_demo_eu", "source_project_id":"mysourceproject", "overwrite_destination_table":"true" }'
API
Activez le service de transfert de données BigQuery pour votre ensemble de données de destination.
Assurez-vous de disposer des rôles requis.
Pour créer un ensemble de données BigQuery, appelez la méthode
datasets.insert
avec une ressource d'ensemble de données définie.Pour copier un ensemble de données, utilisez la méthode
projects.locations.transferConfigs.create
et fournissez une instance de la ressourceTransferConfig
.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
Pour éviter des coûts de stockage supplémentaires, vous pouvez supprimer l'ensemble de données précédent.
Afficher les jobs de copie d'un ensemble de données
Pour afficher l'état et les détails d'un job de copie d'ensembles de données dans la console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page Transferts de données.
Sélectionnez un transfert dont vous souhaitez afficher les détails, puis procédez comme suit :
Sur la page Détails du transfert, sélectionnez une exécution de transfert.
Pour actualiser, cliquez sur
Actualiser.
Recréer des ensembles de données dans un autre emplacement
Pour déplacer manuellement un ensemble de données d'un emplacement à un autre, procédez comme suit :
-
Exportez les données de vos tables BigQuery vers un bucket Cloud Storage situé dans le même emplacement que votre ensemble de données ou dans un emplacement contenu dans l'emplacement de votre ensemble de données. Par exemple, si votre ensemble de données se trouve dans l'emplacement multirégional
EU
, vous pouvez exporter vos données vers l'emplacementeurope-west1
en Belgique, qui fait partie de l'UE.L'exportation de données depuis BigQuery est gratuite, mais vous engagez des frais pour le stockage des données exportées dans Cloud Storage. Les exportations BigQuery sont soumises aux limites applicables aux jobs d'exportation.
-
Copiez ou déplacez les données de votre bucket Cloud Storage d'exportation vers un nouveau bucket que vous avez créé dans l'emplacement de destination. Par exemple, si vous déplacez vos données de l'emplacement multirégional
US
vers la régionasia-northeast1
de Tokyo, vous les transférez vers un bucket que vous avez créé à Tokyo. Pour en savoir plus sur le transfert d'objets Cloud Storage, consultez la page Renommer, copier et déplacer des objets de la documentation Cloud Storage.Le transfert de données entre régions entraîne des frais de sortie réseau dans Cloud Storage.
-
Créez un ensemble de données BigQuery au nouvel emplacement, puis chargez vos données à partir du bucket Cloud Storage dans le nouvel ensemble de données.
Le chargement des données dans BigQuery est gratuit, mais vous devrez payer des frais pour le stockage des données dans Cloud Storage jusqu'à ce que vous supprimiez les données ou le bucket. Le stockage des données dans BigQuery après leur chargement vous est également facturé. Le chargement de données dans BigQuery est soumis aux limites des jobs de chargement.
Vous pouvez également utiliser Cloud Composer pour déplacer et copier automatiquement des ensembles de données volumineux.
Pour en savoir plus sur le stockage de données à l'aide de Cloud Storage, consultez la section Utiliser Cloud Storage avec Big Data.
Sécuriser des ensembles de données
Pour savoir comment contrôler l'accès aux ensembles de données dans BigQuery, consultez la page Contrôler l'accès aux ensembles de données. Pour en savoir plus sur le chiffrement des données, consultez la page Chiffrement au repos.
Supprimer des ensembles de données
Lorsque vous supprimez un ensemble de données à l'aide de la console Google Cloud, les tables et les vues de l'ensemble de données, y compris leurs données, sont supprimées. Lorsque vous supprimez un ensemble de données à l'aide de l'outil de ligne de commande bq, vous devez utiliser l'option -r
pour supprimer les tables et les vues.
Pour supprimer un ensemble de données, sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Dans le volet Explorateur, développez votre projet et sélectionnez un ensemble de données.
Développez l'option
Actions, puis cliquez sur Supprimer.Dans la boîte de dialogue Supprimer l'ensemble de données, saisissez
delete
dans le champ, puis cliquez sur Supprimer.
SQL
Pour supprimer un ensemble de données, utilisez
l'instruction DDL DROP SCHEMA
.
L'exemple suivant supprime un ensemble de données nommé mydataset
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
DROP SCHEMA IF EXISTS mydataset;
Par défaut, cela ne permet de supprimer qu'un ensemble de données vide. Pour supprimer un ensemble de données et tout son contenu, utilisez le mot clé
CASCADE
:DROP SCHEMA IF EXISTS mydataset CASCADE;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
bq
Exécutez la commande bq rm
avec l'option --dataset
ou -d
, qui est facultative.
Si votre ensemble de données contient des tables, vous devez toutes les supprimer de l'ensemble de données en utilisant l'option -r
. Si vous utilisez l'option -r
, vous pouvez omettre l'option --dataset
ou -d
.
Une fois la commande exécutée, le système vous demande une confirmation. Vous pouvez utiliser l'option -f
pour ignorer la confirmation.
Si vous supprimez 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 rm -r -f -d PROJECT_ID:DATASET
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetDATASET
: nom de l'ensemble de données que vous supprimez.
Exemples :
Saisissez la commande suivante pour supprimer de votre projet par défaut un ensemble de données nommé mydataset
et toutes les tables qu'il contient. La commande utilise l'option -d
.
bq rm -r -d mydataset
Lorsque vous y êtes invité, saisissez y
, puis appuyez sur ENTRÉE.
Saisissez la commande ci-dessous pour supprimer mydataset
et toutes les tables qu'il contient de myotherproject
. La commande n'utilise pas l'option facultative -d
.
Pour ignorer la confirmation, utilisez l'option -f
.
bq rm -r -f myotherproject:mydataset
Vous pouvez utiliser la commande bq ls
pour vérifier que l'ensemble de données a bien été supprimé.
API
Appelez la méthode datasets.delete
pour supprimer l'ensemble de données et définissez le paramètre deleteContents
sur true
pour supprimer les tables qu'il contient.
C#
L'exemple de code suivant supprime un ensemble de données vide.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
L'exemple de code suivant supprime un ensemble de données et tout son contenu :
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
Java
L'exemple de code suivant supprime un ensemble de données vide.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
L'exemple de code suivant supprime un ensemble de données et tout son contenu :
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
Ruby
L'exemple de code suivant supprime un ensemble de données vide.
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.
Installez le client Python pour l'API Data Transfer de BigQuery en saisissant la commandepip install google-cloud-bigquery-datatransfer
. Créez ensuite une configuration de transfert pour copier l'ensemble de données.
L'exemple de code suivant supprime un ensemble de données et tout son contenu :
Restaurer les tables à partir d'ensembles de données supprimés
Vous pouvez restaurer des tables à partir d'un ensemble de données supprimé qui se trouve dans la fenêtre temporelle de l'ensemble de données. Pour restaurer l'intégralité de l'ensemble de données, consultez la page Annuler la suppression d'ensembles de données.
- Créez un ensemble de données portant le même nom et dans le même emplacement que l'original.
- Choisissez un horodatage antérieur à la suppression de l'ensemble de données d'origine, en utilisant un format de millisecondes écoulées depuis l'époque, par exemple
1418864998000
. Copiez la table
originaldataset.table1
au moment1418864998000
dans le nouvel ensemble de données :bq cp originaldataset.table1@1418864998000 mydataset.mytable
Pour rechercher les noms des tables non vides qui se trouvaient dans l'ensemble de données supprimé, interrogez la vue
INFORMATION_SCHEMA.TABLE_STORAGE
de l'ensemble de données dans la fenêtre de fonctionnalité temporelle.
Annuler la suppression d'ensembles de données
Vous pouvez annuler la suppression d'un ensemble de données pour le restaurer à l'état dans lequel il se trouvait lors de sa suppression. Vous ne pouvez annuler la suppression que des ensembles de données situés dans votre fenêtre de fonctionnalité temporelle. Cette récupération inclut tous les objets qu'il contenait ainsi que leurs propriétés et les paramètres de sécurité. Pour connaître les ressources non récupérées, consultez la section Limitations de l'annulation de suppression pour les ensembles de données.
Limitations de l'annulation de suppression pour les ensembles de données
- Les ensembles de données restaurés peuvent faire référence à des comptes principaux de sécurité qui n'existent plus.
- Les références à un ensemble de données supprimé dans les ensembles de données associés ne sont pas restaurées lorsque vous annulez la suppression. Les abonnés doivent se réabonner pour restaurer manuellement les liens.
- Les tags d'entreprise ne sont pas restaurés lorsque la suppression est annulée.
- Vous devez actualiser manuellement les vues matérialisées et réautoriser les vues autorisées, les ensembles de données autorisés et les routines autorisées. Notez que lorsque des ressources autorisées (vues, ensembles de données et routines) sont supprimées, la suppression de l'autorisation peut prendre jusqu'à 24 heures. Ainsi, si vous annulez la suppression d'un ensemble de données avec une ressource autorisée moins de 24 heures après la suppression, il est possible que cette nouvelle autorisation ne soit pas nécessaire. Il est recommandé de toujours vérifier l'autorisation après l'annulation de la suppression des ressources.
Annuler la suppression d'un ensemble de données
Pour annuler la suppression d'un ensemble de données, sélectionnez l'une des options suivantes :
SQL
Utilisez l'instruction LDD (langage de définition de données) UNDROP SCHEMA
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
UNDROP SCHEMA
DATASET_ID
;Remplacez
DATASET_ID
par l'ensemble de données dont vous souhaitez annuler la suppression.Spécifiez l'emplacement de l'ensemble de données dont vous souhaitez annuler la suppression.
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez la page Exécuter des requêtes interactives.
API
Appelez la méthode datasets.undelete
.
Lorsque vous annulez la suppression d'un ensemble de données, les erreurs suivantes peuvent se produire :
ALREADY_EXISTS
: un ensemble de données portant le même nom existe déjà dans la région pour laquelle vous avez tenté d'annuler la suppression. Vous ne pouvez pas utiliser l'annulation de suppression pour écraser ou fusionner des ensembles de données.NOT_FOUND
: l'ensemble de données que vous essayez de récupérer a dépassé sa fenêtre de fonctionnalité temporelle, n'a jamais existé ou vous n'avez pas spécifié le bon emplacement de l'ensemble de données.ACCESS_DENIED
: vous ne disposez pas des autorisations appropriées pour annuler la suppression de cet ensemble de données.
Quotas
Pour en savoir plus sur les quotas de copie, consultez la section Jobs de copie.
L'utilisation pour les tâches de copie est disponible dans le champ INFORMATION_SCHEMA
. Pour savoir comment interroger la vue INFORMATION_SCHEMA.JOBS
, consultez la section Obtenir l'utilisation des tâches de copie.
Tarifs
Pour connaître les tarifs de la copie des ensembles de données, consultez la section Tarifs de la réplication de données.
BigQuery envoie des données compressées pour la copie interrégionale. Par conséquent, le nombre de Go facturés peut être inférieur à la taille de votre ensemble de données. Pour en savoir plus, consultez la page décrivant les tarifs de BigQuery.
Étapes suivantes
- Découvrez comment créer des ensembles de données.
- Découvrez comment mettre à jour des ensembles de données.