Gérer les libellés

Pour vous aider à organiser vos ressources BigQuery, vous pouvez ajouter des libellés à vos ensembles de données, tables et vues. Les libellés sont des paires clé/valeur que vous pouvez associer à une ressource. Lorsque vous créez des ressources BigQuery, l'attribution de libellés est facultative.

Une fois vos ressources libellées, vous pouvez les rechercher grâce aux valeurs associées aux libellés. Vous pouvez par exemple exploiter les libellés pour regrouper des ensembles de données par finalité, par environnement, par service, etc.

Vous trouverez sur cette page la procédure à suivre pour gérer les libellés sur des ressources BigQuery, y compris pour mettre à jour et supprimer des libellés.

Pour en savoir plus sur l'ajout de libellés à des ressources BigQuery et sur l'utilisation de libellés dans BigQuery, consultez la page Ajouter et utiliser des libellés.

Que sont les libellés ?

Un libellé est une paire clé/valeur qui vous aide à organiser vos ressources BigQuery sur Google Cloud Platform. Vous pouvez associer un libellé à chaque ressource, puis filtrer les ressources par libellé. Les informations sur les libellés sont transmises au système de facturation afin que vous puissiez consulter le détail des frais apparaissant sur votre facture en fonction des libellés.

Cas d'utilisation courants des libellés

Voici quelques cas d'utilisation courants des libellés :

  • Libellés d'équipe ou de centre de coûts : ajoutez des libellés en fonction de l'équipe ou du centre de coûts pour distinguer les ressources BigQuery appartenant à différentes équipes (par exemple, team:research et team:analytics). Vous pouvez utiliser ce type de libellés pour la comptabilité analytique ou la budgétisation.

  • Libellés de composants : par exemple, component:redis, component:frontend, component:ingest et component:dashboard.

  • Libellés d'environnement ou de phase : par exemple, environment:production et environment:test.

  • Libellés d'état : par exemple, state:active, state:readytodelete et state:archive.

Exigences relatives aux libellés

Les libellés appliqués à une ressource doivent répondre aux exigences suivantes :

  • Chaque ressource peut posséder plusieurs libellés, jusqu'à un maximum de 64.
  • Chaque libellé doit correspondre à une paire clé/valeur.
  • Les clés doivent comporter un (1) caractère au minimum et 63 au maximum, et ne peuvent pas être vides. Les valeurs peuvent être vides et comporter 63 caractères au maximum.
  • Les clés et les valeurs ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Tous les caractères doivent être au format d'encodage UTF-8. Les caractères internationaux sont autorisés.
  • La partie clé d'un libellé doit être unique. Cependant, vous pouvez utiliser la même clé avec plusieurs ressources.
  • Les clés doivent commencer par une lettre minuscule ou un caractère international.

Mettre à jour les libellés d'un ensemble de données

Vous pouvez mettre à jour un libellé d'ensemble de données de l'une des manières suivantes :

  • À l'aide de la console GCP ou de l'UI Web classique de BigQuery
  • En exécutant la commande bq update de l'outil de ligne de commande
  • En appelant la méthode d'API datasets.patch

Autorisations requises

Pour mettre à jour un libellé d'ensemble de données, vous devez disposer d'un accès OWNER au niveau de l'ensemble de données, ou détenir au niveau du projet un rôle IAM qui comprend les autorisations bigquery.datasets.update. Voici les rôles IAM prédéfinis au niveau du projet qui incluent les autorisations bigquery.datasets.update :

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur ayant le rôle bigquery.user peut mettre à jour 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 à celui-ci. 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 page Contrôle des accès. Pour en savoir plus sur les rôles au niveau des ensembles de données, consultez la section Rôles primitifs pour les ensembles de données.

Mettre à jour un libellé d'ensemble de données

Pour mettre à jour les libellés d'un ensemble de données existant, procédez comme suit :

UI classique

  1. Dans l'UI Web, sélectionnez l'ensemble de données.

  2. Sur la page Dataset Details (Détails de l'ensemble de données), cliquez sur le bouton Edit (Modifier) situé à droite du champ Labels (Libellés).

    Modifier les libellés

  3. Dans la boîte de dialogue Edit Labels (Modifier les libellés), effectuez les opérations suivantes :

    • Pour attribuer des libellés supplémentaires, cliquez sur Add Label (Ajouter un libellé). Chaque clé ne peut être utilisée qu'une seule fois par ensemble de données, mais vous pouvez exploiter la même clé pour plusieurs ensembles de données au sein d'un même projet.
    • Modifiez les clés ou valeurs existantes pour mettre à jour un libellé.
    • Cliquez sur OK.

      Nouveau libellé

Ligne de commande

Pour ajouter des libellés supplémentaires ou pour mettre à jour un libellé d'ensemble de données, exécutez la commande bq update en spécifiant l'indicateur set_label. Répétez l'indicateur pour ajouter ou mettre à jour plusieurs libellés.

Si l'ensemble de données 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 utilisant le format suivant : [PROJECT_ID]:[DATASET].

    bq update --set_label [KEY:VALUE] [PROJECT_ID]:[DATASET]

Où :

  • [KEY:VALUE] correspond à une paire clé/valeur pour un libellé que vous souhaitez ajouter ou mettre à jour. Si vous spécifiez une clé associée à un libellé existant, la valeur de celui-ci est mise à jour. La clé doit être unique.
  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données que vous mettez à jour.

Exemples :

Pour mettre à jour le libellé department sur l'ensemble de données mydataset, saisissez la commande bq update et spécifiez department comme clé de libellé. Par exemple, si vous souhaitez remplacer le libellé department:shipping par department:logistics, saisissez la commande ci-dessous. L'ensemble de données mydataset se trouve dans le projet myotherproject, et non dans votre projet par défaut.

    bq update --set_label department:logistics myotherproject:mydataset

API

Pour ajouter des libellés ou mettre à jour un libellé associé à un ensemble de données existant, appelez la méthode datasets.patch, puis ajoutez ou mettez à jour la propriété labels de la ressource d'ensemble de données.

Comme la méthode datasets.update remplace la ressource d'ensemble de données dans son intégralité, il est préférable d'utiliser la méthode datasets.patch.

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.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}

update := bigquery.DatasetMetadataToUpdate{}
update.SetLabel("color", "green")
if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Cet exemple permet d'envoyer une requête à l'API BigQuery à l'aide de la bibliothèque cliente HTTP Google pour Java.
static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
static final JsonFactory JSON_FACTORY = new JacksonFactory();

public static class Dataset {
  @Key private Map<String, String> labels;

  public Map<String, String> getLabels() {
    return this.labels;
  }

  public Dataset addLabel(String key, String value) {
    if (this.labels == null) {
      this.labels = new HashMap<>();
    }
    this.labels.put(key, value);
    return this;
  }
}

/**
 * Add or modify a label on a dataset.
 *
 * <p>See <a href="https://cloud.google.com/bigquery/docs/labeling-datasets">the BigQuery
 * documentation</a>.
 */
public static void labelDataset(
    String projectId, String datasetId, String labelKey, String labelValue) throws IOException {

  // Authenticate requests using Google Application Default credentials.
  GoogleCredential credential = GoogleCredential.getApplicationDefault();
  credential = credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/bigquery"));

  // Get a new access token.
  // Note that access tokens have an expiration. You can reuse a token rather than requesting a
  // new one if it is not yet expired.
  credential.refreshToken();
  String accessToken = credential.getAccessToken();

  // Set the content of the request.
  Dataset dataset = new Dataset();
  dataset.addLabel(labelKey, labelValue);
  HttpContent content = new JsonHttpContent(JSON_FACTORY, dataset);

  // Send the request to the BigQuery API.
  String urlFormat =
      "https://www.googleapis.com/bigquery/v2/projects/%s/datasets/%s"
          + "?fields=labels&access_token=%s";
  GenericUrl url = new GenericUrl(String.format(urlFormat, projectId, datasetId, accessToken));
  HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
  HttpRequest request = requestFactory.buildPostRequest(url, content);
  request.setParser(JSON_FACTORY.createJsonObjectParser());

  // Workaround for transports which do not support PATCH requests.
  // See: http://stackoverflow.com/a/32503192/101923
  request.setHeaders(new HttpHeaders().set("X-HTTP-Method-Override", "PATCH"));
  HttpResponse response = request.execute();

  // Check for errors.
  if (response.getStatusCode() != 200) {
    throw new RuntimeException(response.getStatusMessage());
  }

  Dataset responseDataset = response.parseAs(Dataset.class);
  System.out.printf(
      "Updated label \"%s\" with value \"%s\"\n",
      labelKey, responseDataset.getLabels().get(labelKey));
}

Python

Avant de tester cet exemple, suivez la procédure de configuration de Python 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 Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.labels == {}
labels = {'color': 'green'}
dataset.labels = labels

dataset = client.update_dataset(dataset, ['labels'])  # API request

assert dataset.labels == labels

Mettre à jour des libellés de table et de vue

Vous pouvez mettre à jour un libellé après la création d'une table ou d'une vue de l'une des manières suivantes :

  • À l'aide de la console GCP ou de l'UI Web classique de BigQuery
  • En exécutant la commande bq update de l'outil de ligne de commande
  • En appelant la méthode d'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.

Autorisations requises

Pour mettre à jour un libellé de table ou de vue, vous devez disposer d'un accès OWNER au niveau de l'ensemble de données, ou détenir au niveau du projet un rôle IAM qui comprend les autorisations bigquery.tables.update. Voici les rôles IAM prédéfinis au niveau du projet qui incluent les autorisations bigquery.tables.update :

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur affecté au rôle bigquery.user peut mettre à jour les tables et les vues des 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 à celui-ci. L'accès OWNER donne à l'utilisateur un contrôle total sur l'ensemble de données et sur les tables et vues qu'il contient.

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

Mettre à jour un libellé de table ou de vue

Pour mettre à jour un libellé de table ou de vue, procédez comme suit :

UI classique

  1. Dans l'UI Web, sélectionnez la table ou la vue.

  2. Sur la page des détails, cliquez sur le bouton Edit (Modifier) à droite du champ Labels (Libellés). L'exemple ci-dessous vous montre les détails d'une table.

    Modifier les libellés

  3. Dans la boîte de dialogue Edit Labels (Modifier les libellés), effectuez les opérations suivantes :

    • Pour ajouter des libellés, cliquez sur Add Label (Ajouter un libellé). Chaque clé ne peut être utilisée qu'une seule fois par table ou par vue, mais vous pouvez vous servir de la même clé pour plusieurs tables ou vues au sein de différents ensembles de données.
    • Modifiez les clés ou valeurs existantes pour mettre à jour un libellé.
    • Cliquez sur OK.

      Nouveau libellé

Ligne de commande

Pour ajouter des libellés ou pour mettre à jour un libellé de table ou de vue, exécutez la commande bq update en spécifiant l'indicateur set_label. Répétez l'indicateur pour ajouter ou mettre à jour 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 utilisant le format suivant : [PROJECT_ID]:[DATASET].

    bq update --set_label [KEY:VALUE] [PROJECT_ID]:[DATASET].[TABLE_OR_VIEW]

Où :

  • [KEY:VALUE] correspond à une paire clé/valeur pour un libellé que vous souhaitez ajouter ou mettre à jour. Si vous spécifiez une clé associée à un libellé existant, la valeur de celui-ci est mise à jour. La clé doit être unique.
  • [PROJECT_ID] est l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données qui contient la table ou la vue que vous mettez à jour.
  • [TABLE_OR_VIEW] est le nom de la table ou de la vue que vous mettez à jour.

Exemples :

Pour mettre à jour le libellé department sur la table mytable, saisissez la commande bq update et spécifiez department comme clé de libellé. Par exemple, pour remplacer le libellé department:shipping par department:logistics pour la table mytable, saisissez la commande suivante. mytable se trouve dans le projet myotherproject, et non dans votre projet par défaut.

    bq update --set_label department:logistics myotherproject:mydataset.mytable

API

Pour ajouter des libellés ou mettre à jour un libellé associé à une table ou à une vue existante, appelez la méthode tables.patch, puis ajoutez ou mettez à jour la propriété labels de la ressource de table.

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.

Comme la méthode tables.update remplace la ressource d'ensemble de données dans son intégralité, il est préférable d'utiliser la méthode tables.patch.

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.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
tbl := client.Dataset(datasetID).Table(tableID)
meta, err := tbl.Metadata(ctx)
if err != nil {
	return err
}

update := bigquery.TableMetadataToUpdate{}
update.SetLabel("color", "green")
if _, err := tbl.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Java

Cet exemple permet d'envoyer une requête à l'API BigQuery à l'aide de la bibliothèque cliente HTTP Google pour Java.
public static class Table {
  @Key private Map<String, String> labels;

  public Map<String, String> getLabels() {
    return this.labels;
  }

  public Table addLabel(String key, String value) {
    if (this.labels == null) {
      this.labels = new HashMap<>();
    }
    this.labels.put(key, value);
    return this;
  }
}

/**
 * Add or modify a label on a table.
 *
 * <p>See <a href="https://cloud.google.com/bigquery/docs/labeling-datasets">the BigQuery
 * documentation</a>.
 */
public static void labelTable(
    String projectId,
    String datasetId,
    String tableId,
    String labelKey,
    String labelValue)
    throws IOException {

  // Authenticate requests using Google Application Default credentials.
  GoogleCredential credential = GoogleCredential.getApplicationDefault();
  credential = credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/bigquery"));

  // Get a new access token.
  // Note that access tokens have an expiration. You can reuse a token rather than requesting a
  // new one if it is not yet expired.
  credential.refreshToken();
  String accessToken = credential.getAccessToken();

  // Set the content of the request.
  Table table = new Table();
  table.addLabel(labelKey, labelValue);
  HttpContent content = new JsonHttpContent(JSON_FACTORY, table);

  // Send the request to the BigQuery API.
  String urlFormat =
      "https://www.googleapis.com/bigquery/v2/projects/%s/datasets/%s/tables/%s"
          + "?fields=labels&access_token=%s";
  GenericUrl url =
      new GenericUrl(String.format(urlFormat, projectId, datasetId, tableId, accessToken));
  HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
  HttpRequest request = requestFactory.buildPostRequest(url, content);
  request.setParser(JSON_FACTORY.createJsonObjectParser());

  // Workaround for transports which do not support PATCH requests.
  // See: http://stackoverflow.com/a/32503192/101923
  request.setHeaders(new HttpHeaders().set("X-HTTP-Method-Override", "PATCH"));
  HttpResponse response = request.execute();

  // Check for errors.
  if (response.getStatusCode() != 200) {
    throw new RuntimeException(response.getStatusMessage());
  }

  Table responseTable = response.parseAs(Table.class);
  System.out.printf(
      "Updated label \"%s\" with value \"%s\"\n",
      labelKey, responseTable.getLabels().get(labelKey));
}

Python

Avant de tester cet exemple, suivez la procédure de configuration de Python 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 Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# table_ref = client.dataset('my_dataset').table('my_table')
# table = client.get_table(table_ref)  # API request

assert table.labels == {}
labels = {'color': 'green'}
table.labels = labels

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

assert table.labels == labels

Mettre à jour des libellés de tâche

Actuellement, il n'est pas possible de mettre à jour des libellés de tâches. Pour mettre à jour le libellé d'une tâche, soumettez à nouveau la tâche en question en spécifiant un nouveau libellé.

Supprimer des libellés

Pour supprimer un libellé d'un ensemble de données, d'une table ou d'une vue, vous pouvez utiliser la console GCP, exploiter l'interface utilisateur Web de BigQuery, exécuter la commande bq update de l'outil de ligne de commande ou appeler la méthode API datasets.patch ou tables.patch.

Supprimer un libellé d'ensemble de données

Vous pouvez supprimer un libellé d'ensemble de données de l'une des manières suivantes :

  • À l'aide de la console GCP ou de l'UI Web classique de BigQuery
  • En exécutant la commande bq update de l'outil de ligne de commande
  • En appelant la méthode d'API datasets.patch

Autorisations requises

Pour supprimer un libellé d'ensemble de données, vous devez disposer d'un accès OWNER au niveau de l'ensemble de données, ou détenir au niveau du projet un rôle IAM qui comprend les autorisations bigquery.datasets.update. Voici les rôles IAM prédéfinis au niveau du projet qui incluent les autorisations bigquery.datasets.update :

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur ayant le rôle bigquery.user peut mettre à jour 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 à celui-ci. 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 page Contrôle des accès. Pour en savoir plus 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 libellé d'ensemble de données

Pour supprimer un libellé d'un ensemble de données, procédez comme suit :

UI classique

  1. Dans l'UI Web, sélectionnez l'ensemble de données.

  2. Sur la page Détails de l'ensemble de données, cliquez sur le bouton Modifier situé à droite du champ Libellés.

  3. Dans la boîte de dialogue Edit Labels (Modifier les libellés), effectuez les opérations suivantes :

    • Cliquez sur l'icône de suppression (X) à côté de chaque libellé que vous souhaitez supprimer.
    • Cliquez sur OK.

      Supprimer le libellé

Ligne de commande

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

Si l'ensemble de données 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 utilisant 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.

Exemples :

Pour supprimer le libellé department:shipping de mydataset, saisissez la commande bq update en spécifiant le paramètre --clear_label. L'ensemble de données mydataset se trouve dans votre projet par défaut.

    bq update --clear_label department mydataset

Pour supprimer le libellé department:shipping de mydataset dans le projet myotherproject, saisissez la commande bq update en spécifiant le paramètre --clear_label.

    bq update --clear_label department myotherproject:mydataset

Pour supprimer plusieurs libellés d'un ensemble de données, répétez le paramètre 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

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

Comme la méthode datasets.update remplace la ressource d'ensemble de données dans son intégralité, il est préférable d'utiliser la méthode datasets.patch.

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.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
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
}

Python

Avant de tester cet exemple, suivez la procédure de configuration de Python 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 Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

# This example dataset starts with one label
assert dataset.labels == {'color': 'green'}
# To delete a label from a dataset, set its value to None
dataset.labels['color'] = None

dataset = client.update_dataset(dataset, ['labels'])  # API request

assert dataset.labels == {}

Supprimer un libellé de table ou de vue

Vous pouvez supprimer un libellé de table ou de vue de l'une des manières suivantes :

  • À l'aide de la console GCP ou de l'UI Web classique de BigQuery
  • En exécutant la commande bq update de l'outil de ligne de commande
  • En appelant la méthode d'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.

Autorisations requises

Pour supprimer un libellé de table ou de vue, vous devez disposer d'un accès OWNER au niveau de l'ensemble de données, ou détenir au niveau du projet un rôle IAM qui comprend les autorisations bigquery.tables.update. Voici les rôles IAM prédéfinis au niveau du projet qui incluent les autorisations bigquery.tables.update :

En outre, comme le rôle bigquery.user dispose des autorisations bigquery.datasets.create, un utilisateur affecté au rôle bigquery.user peut mettre à jour les tables et les vues des 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 à celui-ci. L'accès OWNER à un ensemble de données confère à l'utilisateur un contrôle total sur celui-ci, et sur toutes les tables et les vues qu'il contient.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Contrôle des accès. Pour en savoir plus 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 libellé de table ou de vue

Pour supprimer un libellé d'une table ou d'une vue, procédez comme suit :

UI classique

  1. Dans l'UI Web, sélectionnez la table ou la vue.

  2. Sur la page Détails, cliquez sur le bouton Modifier situé à droite du champ Libellés.

  3. Dans la boîte de dialogue Edit Labels (Modifier les libellés), effectuez les opérations suivantes :

    • Cliquez sur l'icône de suppression (X) à côté de chaque libellé que vous souhaitez supprimer.
    • Cliquez sur OK.

      Supprimer le libellé

Ligne de commande

Pour supprimer un libellé d'une table ou d'une vue, exécutez la commande bq update en spécifiant l'indicateur clear_label. Répétez l'indicateur 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 utilisant le format suivant : [PROJECT_ID]:[DATASET].

    bq update --clear_label [KEY] [PROJECT_ID]:[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.

Exemples :

Pour supprimer le libellé department:shipping de mydataset.mytable, saisissez la commande bq update en spécifiant le paramètre --clear_label. L'ensemble de données 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 le projet myotherproject, saisissez la commande bq update en spécifiant le paramètre --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 le paramètre 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

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.

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. En outre, comme la méthode tables.update remplace la ressource d'ensemble de données dans son intégralité, il est préférable d'utiliser la méthode tables.patch.

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.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
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
}

Python

Avant de tester cet exemple, suivez la procédure de configuration de Python 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 Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# table_ref = client.dataset('my_dataset').table('my_table')
# table = client.get_table(table_ref)  # API request

# This example table starts with one label
assert table.labels == {'color': 'green'}
# To delete a label from a table, set its value to None
table.labels['color'] = None

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

assert table.labels == {}

Supprimer des libellés de tâche

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

Convertir un libellé en tag

Un libellé qui comporte une clé avec une valeur vide fait office de tag. Vous pouvez créer un libellé sans valeur ou bien transformer un libellé existant en tag.

Les tags peuvent s'avérer utiles lorsque vous attribuez des libellés à une ressource, mais n'avez pas besoin d'utiliser le format clé:valeur. Par exemple, si vous disposez d'une table qui contient des données de test utilisées par plusieurs groupes (assistance, développement, etc.), vous pouvez lui attribuer le tag test_data pour l'identifier.

Pour convertir un libellé en tag, procédez comme suit :

UI classique

  1. Dans l'UI Web, sélectionnez la ressource concernée (ensemble de données, table ou vue).

  2. Dans le cas des ensembles de données, la page Détails de l'ensemble de données s'ouvre automatiquement. Pour les tables et les vues, cliquez sur Détails pour ouvrir la page des détails.

  3. Sur la page des détails, cliquez sur le bouton Modifier à droite du champ Libellés.

  4. Dans la boîte de dialogue Edit Labels (Modifier les libellés), effectuez les opérations suivantes :

    • Supprimez la valeur d'un libellé existant.
    • Cliquez sur OK.

      Ajouter un tag

Ligne de commande

Pour convertir un libellé en tag, exécutez la commande bq update en saisissant l'indicateur set_label. Spécifiez la clé, suivie du caractère deux-points, mais ne renseignez pas la valeur. Cette action permet de transformer un libellé existant en tag.

bq update --set_label [KEY]: [RESOURCE_ID]

Où :

  • [KEY] est la clé de libellé que vous voulez convertir en tag.
  • [RESOURCE_ID] est un nom valide d'ensemble de données, de table ou de vue. Si la ressource se trouve dans un projet autre que celui par défaut, ajoutez l'ID du projet au format suivant : [PROJECT_ID]:[DATASET].

Exemples :

Saisissez la commande ci-dessous pour transformer le libellé existant test_data:development de mydataset en tag. L'ensemble de données mydataset se trouve dans myotherproject, et non dans votre projet par défaut.

bq update --set_label test_data: myotherproject:mydataset

API

Pour transformer un libellé existant en tag, appelez la méthode datasets.patch ou tables.patch, puis remplacez les valeurs du libellé par une chaîne vide ("") dans la ressource d'ensemble de données ou la ressource de table.

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. En outre, comme la méthode tables.update remplace la ressource d'ensemble de données dans son intégralité, il est préférable d'utiliser la méthode tables.patch.

Étapes suivantes

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

Envoyer des commentaires concernant…

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