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

Pour le moment, il n'est pas possible de modifier le nom d'un ensemble de données existant ni de copier un ensemble de données pour lui attribuer un nouveau nom. Pour modifier le nom d'un ensemble de données, vous devez le recréer. Procédez comme suit :

  1. Créez un ensemble de données et indiquez le nouveau nom.

  2. Copiez les tables de l'ancien ensemble de données dans le nouveau.

  3. Copiez ou recréez les vues dans le nouvel ensemble de données.

  4. Supprimez l'ancien ensemble de données pour ne pas avoir à payer des coûts de stockage supplémentaires.

Copier des ensembles de données

Pour le moment, il n'est pas possible de copier un ensemble de données. Vous devez donc le recréer. Procédez comme suit.

  1. Créez un ensemble de données. Comme les noms des ensembles de données doivent être uniques au sein de chaque projet, vous devez attribuer un nouveau nom à un ensemble de données que vous recréez dans le même projet.

  2. Copiez les tables de l'ancien ensemble de données dans le nouveau.

  3. Copiez ou recréez les vues dans le nouvel ensemble de données.

  4. Supprimez l'ancien ensemble de données pour ne pas avoir à payer des coûts de stockage supplémentaires.

Supprimer des ensembles de données

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

  • En utilisant la console GCP ou l'interface utilisateur Web classique de BigQuery
  • En utilisant 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 les autorisations bigquery.datasets.delete et bigquery.tables.delete :

  • bigquery.dataOwner
  • bigquery.admin

En outre, si un utilisateur possède des autorisations bigquery.datasets.create, lorsqu'il crée un ensemble de données, il obtient également le rôle bigquery.dataOwner qui lui permet d'y accéder. L'accès bigquery.dataOwner donne à l'utilisateur la possibilité de supprimer les ensembles de données et les tables qu'il a créés.

Pour en savoir plus sur les rôles et les autorisations Cloud IAM dans BigQuery, consultez la page Contrôle des accès.

Supprimer un ensemble de données

Lorsque vous supprimez un ensemble de données à l'aide de la console GCP ou de l'interface utilisateur 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'indicateur -r pour supprimer les tables et les vues de cet 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 Resources (Ressources), puis cliquez sur Delete dataset (Supprimer l'ensemble de données) à la droite de la fenêtre.

    Supprimer un ensemble de données

  2. Dans la boîte de dialogue Delete dataset (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

Utilisez la commande bq rm avec l'indicateur --dataset ou le raccourci -d (facultatif) pour supprimer un ensemble de données. Lorsque vous utilisez la CLI pour supprimer un ensemble de données, vous devez confirmer la commande. Pour ignorer la confirmation, utilisez l'indicateur -f.

De plus, si l'ensemble de données contient des tables, vous devez utiliser l'indicateur -r pour toutes les supprimer de l'ensemble de données. Si vous supprimez une table dans un projet autre que votre projet par défaut, ajoutez l'ID de ce projet au nom de l'ensemble de données, au 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 suivante 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 suivante 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'indicateur -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 relatif à l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

if err := client.Dataset(datasetID).Delete(ctx); err != nil {
	return fmt.Errorf("Failed to delete dataset: %v", err)
}

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java dans le 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 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 dans le 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 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 dans le 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 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 relatif à l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Python.

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)

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

Ruby

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Ruby dans le 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 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.