Supprimer des libellés

Vous pouvez supprimer un libellé d'un ensemble de données, d'une table ou d'une vue de différentes manières :

  • En utilisant la console Google Cloud
  • Utiliser des instructions LDD SQL
  • En utilisant la commande bq update de l'outil de ligne de commande bq
  • En appelant les méthodes d'API datasets.patch ou tables.patch
  • Utiliser les bibliothèques clientes

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.

Supprimer un libellé d'ensemble de données

Les sections suivantes spécifient les autorisations et les étapes à suivre pour supprimer un libellé d'ensemble de données.

Autorisations requises

Pour supprimer un libellé d'ensemble de données, vous devez disposer des autorisations IAM suivantes :

  • bigquery.datasets.get
  • bigquery.datasets.update

Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour supprimer un libellé d'ensemble de données :

  • roles/bigquery.dataOwner
  • roles/bigquery.admin

En outre, si vous disposez de l'autorisation bigquery.datasets.create, vous pouvez supprimer les libellés des ensembles de données que vous créez.

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

Supprimer un libellé d'ensemble de données

Pour supprimer un libellé d'un ensemble de données, choisissez l'une des options suivantes :

Console

  1. Dans la console Google Cloud, sélectionnez l'ensemble de données.

  2. Sur la page des détails de l'ensemble de données, cliquez sur l'icône en forme de crayon située à droite de Libellés.

    Icône en forme de crayon pour modifier un libellé

  3. Dans la boîte de dialogue Modifier les étiquettes, effectuez les opérations suivantes :

    • Pour chaque libellé que vous souhaitez supprimer, cliquez sur "Supprimer" (X).
    • Pour enregistrer vos modifications, cliquez sur Mettre à jour.

SQL

Utilisez l'instruction LDD ALTER SCHEMA SET OPTIONS pour définir les libellés d'un ensemble de données existant. La définition de libellés écrase tous les libellés existants de l'ensemble de données. L'exemple suivant supprime tous les libellés de l'ensemble de données mydataset :

  1. Dans Google Cloud Console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    ALTER SCHEMA mydataset
    SET OPTIONS (labels = []);
    

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

bq

Pour supprimer un libellé d'ensemble de données, exécutez la commande bq update en spécifiant l'option clear_label. Répétez l'option pour supprimer plusieurs libellés.

Si l'ensemble de données se trouve 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 \
--clear_label key \
project_id:dataset

Où :

  • key est la clé d'un libellé que vous souhaitez supprimer.
  • project_id est l'ID de votre projet.
  • dataset est le nom de l'ensemble de données que vous mettez à jour.

Par exemple :

Pour supprimer le libellé department:shipping de mydataset, saisissez la commande bq update avec l'option --clear_label. mydataset se trouve dans votre projet par défaut.

    bq update --clear_label department mydataset

Pour supprimer le libellé department:shipping de mydataset dans myotherproject, saisissez la commande bq update en spécifiant l'option --clear_label.

    bq update --clear_label department myotherproject:mydataset

Pour supprimer plusieurs libellés d'un ensemble de données, répétez l'option clear_label et spécifiez la clé de chaque libellé. Si vous souhaitez par exemple supprimer les libellés department:shipping et cost_center:logistics de l'ensemble de données mydataset dans votre projet par défaut, saisissez la commande suivante :

    bq update \
    --clear_label department \
    --clear_label cost_center \
    mydataset

Pour chacun de ces exemples, le résultat ressemble à ce qui suit :

Dataset 'myproject:mydataset' successfully updated.

API

Pour supprimer un libellé spécifique d'un ensemble de données existant, appelez la méthode datasets.patch, puis mettez à jour la propriété labels de la ressource d'ensemble de données en définissant la valeur de clé de libellé sur null.

Pour supprimer tous les libellés d'un ensemble de données, appelez la méthode datasets.patch, puis supprimez la propriété labels.

Étant donné que la méthode datasets.update remplace l'intégralité de la ressource d'ensemble de données, la méthode datasets.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.

import (
	"context"
	"fmt"

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

// deleteDatasetLabel demonstrates removing a specific label from a dataset's metadata.
func deleteDatasetLabel(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)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{}
	update.DeleteLabel("color")
	if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

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.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.HashMap;
import java.util.Map;

// Sample tp deletes a label on a dataset.
public class DeleteLabelDataset {

  public static void runDeleteLabelDataset() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    deleteLabelDataset(datasetName);
  }

  public static void deleteLabelDataset(String datasetName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // This example dataset starts with existing label { color: 'green' }
      Dataset dataset = bigquery.getDataset(datasetName);
      // Add label to dataset
      Map<String, String> labels = new HashMap<>();
      labels.put("color", null);

      dataset.toBuilder().setLabels(labels).build().update();
      System.out.println("Dataset label deleted successfully");
    } catch (BigQueryException e) {
      System.out.println("Dataset label was not deleted. \n" + e.toString());
    }
  }
}

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.

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

async function deleteLabelDataset() {
  // Deletes a label on a dataset.
  // This example dataset starts with existing label { color: 'green' }

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

  // Retrieve current dataset metadata.
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Add label to dataset metadata
  metadata.labels = {color: null};
  const [apiResponse] = await dataset.setMetadata(metadata);

  console.log(`${datasetId} labels:`);
  console.log(apiResponse.labels);
}

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.


from google.cloud import bigquery

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

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = "your-project.your_dataset"

dataset = client.get_dataset(dataset_id)  # Make an API request.

# To delete a label from a dataset, set its value to None.
dataset.labels["color"] = None

dataset = client.update_dataset(dataset, ["labels"])  # Make an API request.
print("Labels deleted from {}".format(dataset_id))

Supprimer un libellé de table ou de vue

Vous pouvez supprimer un libellé de table ou de vue de différentes manières :

  • Utiliser la console Google Cloud
  • Utiliser des instructions LDD SQL
  • En utilisant la commande bq update de l'outil de ligne de commande bq
  • En appelant la méthode API tables.patch
    • Comme les vues sont traitées comme des ressources de table, la méthode tables.patch permet de modifier à la fois des vues et des tables.
  • Utiliser les bibliothèques clientes

Autorisations requises

Pour supprimer un libellé de table ou de vue, vous devez disposer des autorisations IAM suivantes :

  • bigquery.tables.get
  • bigquery.tables.update

Chacun des rôles IAM prédéfinis suivants inclut les autorisations dont vous avez besoin pour supprimer un libellé de table ou de vue :

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

De plus, si vous disposez de l'autorisation bigquery.datasets.create, vous pouvez supprimer les libellés des tables et des vues des ensembles de données que vous créez.

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

Supprimer un libellé de table ou de vue

Pour supprimer un libellé d'une table ou d'une vue, choisissez l'une des options suivantes :

Console

  1. Dans la console Google Cloud, sélectionnez l'ensemble de données.

  2. Cliquez sur l'onglet Details (Détails), puis sur l'icône représentant un crayon à droite de Labels (Libellés).

    Icône en forme de crayon pour modifier un libellé

  3. Dans la boîte de dialogue Modifier les étiquettes, effectuez les opérations suivantes :

    • Pour chaque libellé que vous souhaitez supprimer, cliquez sur "Supprimer" (X).

      Libellé supprimé

    • Pour enregistrer vos modifications, cliquez sur Mettre à jour.

SQL

Utilisez l'instruction LDD ALTER TABLE SET OPTIONS pour définir le libellé d'une table existante ou l'instruction LDD ALTER VIEW SET OPTIONS pour définir le libellé d'une vue existante. La définition de libellés écrase tous les libellés existants de la table ou de la vue. L'exemple suivant supprime tous les libellés de la table mytable :

  1. Dans Google Cloud Console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, saisissez l'instruction suivante :

    ALTER TABLE mydataset.mytable
    SET OPTIONS (labels = []);
    

  3. Cliquez sur Exécuter.

Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.

bq

Pour supprimer un libellé d'une table ou d'une vue, exécutez la commande bq update en spécifiant l'option clear_label. Répétez l'option pour supprimer plusieurs libellés.

Si la table ou la vue se trouve dans un projet autre que celui 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 \
--clear_label key \
project_id:dataset.table_or_view

Où :

  • key est la clé d'un libellé que vous souhaitez supprimer.
  • project_id est l'ID de votre projet.
  • dataset est le nom de l'ensemble de données que vous mettez à jour.
  • table_or_view est le nom de la table ou de la vue que vous mettez à jour.

Par exemple :

Pour supprimer le libellé department:shipping de mydataset.mytable, saisissez la commande bq update en spécifiant l'option --clear_label. mydataset se trouve dans votre projet par défaut.

    bq update --clear_label department mydataset.mytable

Pour supprimer le libellé department:shipping de mydataset.myview dans myotherproject, saisissez la commande bq update en spécifiant l'option --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Pour supprimer plusieurs libellés d'une table ou d'une vue, répétez l'option clear_label et spécifiez la clé de chaque libellé. Si vous souhaitez par exemple supprimer les libellés department:shipping et cost_center:logistics de la table mydataset.mytable dans votre projet par défaut, saisissez la commande suivante :

    bq update \
    --clear_label department \
    --clear_label cost_center \
    mydataset.mytable

Pour chacun de ces exemples, le résultat ressemble à ce qui suit :

Table 'myproject:mydataset.mytable' successfully updated.

API

Pour supprimer un libellé spécifique d'une table ou d'une vue existante, appelez la méthode tables.patch, puis mettez à jour la propriété labels de la ressource de table en définissant la valeur de clé du libellé sur null.

Pour supprimer tous les libellés d'une table ou d'une vue, appelez la méthode tables.patch, puis supprimez la propriété labels.

Les vues étant traitées comme des ressources de table, la méthode tables.patch vous permet de modifier à la fois des vues et des tables. En outre, étant donné que la méthode tables.update remplace l'intégralité de la ressource d'ensemble de données, 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.

import (
	"context"
	"fmt"

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

// deleteTableLabel demonstrates how to remove a specific metadata Label from a BigQuery table.
func deleteTableLabel(projectID, datasetID, tableID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	tbl := client.Dataset(datasetID).Table(tableID)
	meta, err := tbl.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.TableMetadataToUpdate{}
	update.DeleteLabel("color")
	if _, err := tbl.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

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.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Table;
import com.google.cloud.bigquery.TableId;
import java.util.HashMap;
import java.util.Map;

// Sample tp deletes a label on a table.
public class DeleteLabelTable {

  public static void runDeleteLabelTable() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String tableName = "MY_TABLE_NAME";
    deleteLabelTable(datasetName, tableName);
  }

  public static void deleteLabelTable(String datasetName, String tableName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // This example table starts with existing label { color: 'green' }
      Table table = bigquery.getTable(TableId.of(datasetName, tableName));
      // Add label to table
      Map<String, String> labels = new HashMap<>();
      labels.put("color", null);

      table.toBuilder().setLabels(labels).build().update();
      System.out.println("Table label deleted successfully");
    } catch (BigQueryException e) {
      System.out.println("Table label was not deleted. \n" + e.toString());
    }
  }
}

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.

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

async function deleteLabelTable() {
  // Deletes a label from an existing table.
  // This example dataset starts with existing label { color: 'green' }

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

  const dataset = bigquery.dataset(datasetId);
  const [table] = await dataset.table(tableId).get();

  // Retrieve current table metadata
  const [metadata] = await table.getMetadata();

  // Add label to table metadata
  metadata.labels = {color: null};
  const [apiResponse] = await table.setMetadata(metadata);

  console.log(`${tableId} labels:`);
  console.log(apiResponse.labels);
}

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.

from google.cloud import bigquery

client = bigquery.Client()

# TODO(dev): Change table_id to the full name of the table you wish to delete from.
table_id = "your-project.your_dataset.your_table_name"
# TODO(dev): Change label_key to the name of the label you want to remove.
label_key = "color"
table = client.get_table(table_id)  # API request

# To delete a label from a table, set its value to None
table.labels[label_key] = None

table = client.update_table(table, ["labels"])  # API request

print(f"Deleted label '{label_key}' from {table_id}.")

Supprimer des libellés de tâche

Actuellement, il n'est pas possible de supprimer un libellé d'une tâche existante.

Étapes suivantes