Gérer les ensembles de données

Ce document explique comment gérer des ensembles de données dans BigQuery. Après avoir créé un ensemble de données, vous pouvez gérer cet ensemble comme décrit ci-dessous.

Renommer des ensembles de données

Vous ne pouvez pas modifier le nom d'un ensemble de données existant pour le moment, mais vous pouvez copier un ensemble de données. Consultez la page Copier des ensembles de données.

Copier des ensembles de données

Pour connaître la procédure à suivre pour copier un ensemble de données, y compris sur plusieurs régions, consultez la section Copier des ensembles de données.

Déplacer un ensemble de données

Pour déplacer manuellement un ensemble de données d'un emplacement à un autre, procédez comme suit :

  1. Exportez les données de vos tables BigQuery vers un bucket Cloud Storage régional ou multirégional situé dans le même emplacement que l'ensemble de données. Par exemple, si votre ensemble de données se trouve dans l'emplacement multirégional UE, exportez les données dans un bucket régional ou multirégional 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 tâches d'exportation.

  2. Copiez ou déplacez les données de votre bucket Cloud Storage vers un bucket régional ou multirégional dans le nouvel emplacement. Par exemple, si vous déplacez vos données de l'emplacement multirégional US vers l'emplacement régional Tokyo, vous les transférez vers un bucket régional situé à 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.

    Notez que le transfert de données entre régions entraîne des frais de sortie réseau dans Cloud Storage.

  3. Après avoir transféré les données vers un bucket Cloud Storage dans le nouvel emplacement, créez-y un ensemble de données BigQuery. Ensuite, chargez les données du bucket Cloud Storage dans BigQuery.

    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 applicables aux tâches de chargement.

Pour en savoir plus sur le stockage de données à l'aide de Cloud Storage, consultez la section Utiliser Cloud Storage avec Big Data.

Supprimer des ensembles de données

Vous pouvez supprimer un ensemble de données de différentes manières :

  • En utilisant Cloud Console ou l'UI Web classique de BigQuery
  • En exécutant la commande CLI bq rm
  • En appelant la méthode d'API datasets.delete
  • En utilisant les bibliothèques clientes

Autorisations requises

Pour supprimer un ensemble de données, vous devez au minimum disposer des autorisations bigquery.datasets.delete. Si l'ensemble de données contient des tables ou des vues, l'autorisation bigquery.tables.delete est également requise. Les rôles Cloud IAM prédéfinis suivants incluent des autorisations bigquery.datasets.delete et bigquery.tables.delete :

  • bigquery.dataOwner
  • bigquery.admin

En outre, si un utilisateur possède les autorisations bigquery.datasets.create, il obtient également un accès bigquery.dataOwner à l'ensemble de données qu'il crée. L'accèscorrespondant au rôle bigquery.dataOwner permet à l'utilisateur de supprimer les ensembles de données et les tables qu'il crée.

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Rôles et autorisations prédéfinis.

Supprimer un ensemble de données

Lorsque vous supprimez un ensemble de données à l'aide de Cloud Console ou de l'UI Web classique, les tables et les vues de l'ensemble de données (et les données qu'elles contiennent) sont supprimées. Lorsque vous supprimez un ensemble de données à l'aide de la CLI, vous devez utiliser l'option -r pour supprimer les tables et les vues de l'ensemble de données.

Pour supprimer un ensemble de données, procédez comme suit.

Console

  1. Sélectionnez votre ensemble de données dans le volet Ressources, puis cliquez sur Supprimer un ensemble de données à la droite de la fenêtre.

    Supprimer un ensemble de données

  2. Dans la boîte de dialogue Supprimer l'ensemble de données, saisissez le nom de l'ensemble de données dans la zone de texte, puis cliquez sur Supprimer.

UI classique

  1. Dans le volet de navigation, cliquez sur l'icône de flèche vers le bas flèche vers le bas à côté du nom de l'ensemble de données, puis cliquez sur Supprimer l'ensemble de données.

  2. Dans la boîte de dialogue Supprimer l'ensemble de données :

    • Pour l'ID de l'ensemble de données, saisissez le nom de l'ensemble de données à supprimer.
    • Cliquez sur OK.

CLI

La commande bq rm, utilisée avec l'option de raccourci --dataset ou -d (facultative), vous permet de supprimer un ensemble de données. Lorsque vous utilisez la CLI pour supprimer un ensemble de données, vous devez confirmer la commande. L'option -f permet quant à elle d'ignorer la confirmation.

De plus, si l'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 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 <var>project_id:dataset</var>

Où :

  • project_id est l'ID du projet.
  • dataset est le nom de l'ensemble de données que vous supprimez.

Exemples :

Saisissez la commande ci-dessous pour supprimer mydataset et toutes les tables qu'il contient de votre projet par défaut. La commande utilise le raccourci facultatif -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 le raccourci facultatif -d. Pour ignorer la confirmation, utilisez l'option -f.

bq rm -r -f myotherproject:mydataset

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.

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// deleteDataset demonstrates the deletion of an empty dataset.
func deleteDataset(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}

	// To recursively delete a dataset and contents, use DeleteWithContents.
	if err := client.Dataset(datasetID).Delete(ctx); err != nil {
		return fmt.Errorf("Delete: %v", err)
	}
	return nil
}

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.

DatasetId datasetId = DatasetId.of(projectId, datasetName);
boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
if (deleted) {
  // the dataset was deleted
} else {
  // the dataset was not found
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function deleteDataset() {
  // Deletes a dataset named "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset';

  // Create a reference to the existing dataset
  const dataset = bigquery.dataset(datasetId);

  // Delete the dataset and its contents
  await dataset.delete({force: true});
  console.log(`Dataset ${dataset.id} deleted.`);
}

PHP

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour PHP décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery PHP.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->delete();
printf('Deleted dataset %s' . PHP_EOL, $datasetId);

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery en langage Python.

# TODO(developer): Import the client library.
# from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set model_id to the ID of the model to fetch.
# dataset_id = 'your-project.your_dataset'

# Use the delete_contents parameter to delete a dataset and its contents.
# Use the not_found_ok parameter to not receive an error if the dataset has already been deleted.
client.delete_dataset(
    dataset_id, delete_contents=True, not_found_ok=True
)  # Make an API request.

print("Deleted dataset '{}'.".format(dataset_id))

Ruby

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Ruby décrite dans le guide de démarrage rapide de BigQuery sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Ruby.

require "google/cloud/bigquery"

def delete_dataset dataset_id = "my_empty_dataset"
  bigquery = Google::Cloud::Bigquery.new

  # Delete a dataset that does not contain any tables
  dataset = bigquery.dataset dataset_id
  dataset.delete
  puts "Dataset #{dataset_id} deleted."
end

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.