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. 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. 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

Autorisations requises

Pour supprimer un ensemble de données, vous devez disposer d'un accès OWNER au niveau de l'ensemble de données ou détenir un rôle IAM au niveau du projet qui comprend les autorisations bigquery.datasets.delete. Si l'ensemble de données contient des tables, l'autorisation bigquery.tables.delete est également requise. Les rôles IAM prédéfinis au niveau du projet qui sont présentés ci-dessous incluent les autorisations bigquery.datasets.delete et bigquery.tables.delete.

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur ayant le rôle bigquery.user peut supprimer les ensembles de données qu'il crée. Lorsqu'un utilisateur détenant le rôle bigquery.user crée un ensemble de données, il bénéficie d'un accès OWNER à cet ensemble. L'accès OWNER donne à l'utilisateur un contrôle total sur l'ensemble de données.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la section Contrôle des accès. Pour plus d'informations sur les rôles au niveau des ensembles de données, consultez la section Rôles primitifs pour les ensembles de données.

Supprimer un ensemble de données

Lorsque vous supprimez un ensemble de données à l'aide de l'interface utilisateur Web, les tables 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 de cet ensemble de données.

Lorsqu'un ensemble de données est supprimé, il ne peut plus être récupéré ni restauré. La suppression d'un ensemble de données est définitive.

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 Delete (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 Delete dataset (Supprimer l'ensemble de données).

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

      Supprimer un ensemble de données

Ligne de commande

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 [PROJECT_ID]:[DATASET]

Où :

  • [PROJECT_ID] est l'ID de votre 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 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 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');

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

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

  // Create a client
  const bigqueryClient = new BigQuery();

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

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

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 cet exemple, suivez les instructions de configuration de Python décrites 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 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.