Eliminazione delle etichette

Puoi eliminare un'etichetta da un set di dati, una tabella o una vista:

  • Utilizzo della console Google Cloud
  • Utilizzo delle istruzioni DDL SQL
  • Utilizzo del comando bq update dello strumento a riga di comando bq
  • Chiamata dei metodi API datasets.patch o tables.patch
  • Utilizzo delle librerie client

Prima di iniziare

Concedi ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento. Le autorizzazioni richieste per eseguire un'attività (se presenti) sono elencate nella sezione "Autorizzazioni richieste" dell'attività.

Eliminare un'etichetta del set di dati

Le sezioni seguenti specificano le autorizzazioni e i passaggi per eliminare un'etichetta del set di dati.

Autorizzazioni obbligatorie

Per eliminare un'etichetta del set di dati, sono necessarie le seguenti autorizzazioni IAM:

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

Ognuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per eliminare un'etichetta del set di dati:

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

Inoltre, se disponi dell'autorizzazione bigquery.datasets.create, puoi eliminare le etichette dei set di dati che crei.

Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Eliminare un'etichetta del set di dati

Per eliminare un'etichetta da un set di dati, scegli una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , seleziona il set di dati.

  2. Nella pagina dei dettagli del set di dati, fai clic sull'icona a forma di matita a destra di Etichette.

    Matita per etichette

  3. Nella finestra di dialogo Modifica etichette:

    • Per ogni etichetta che vuoi eliminare, fai clic su Elimina (X).
    • Per salvare le modifiche, fai clic su Aggiorna.

SQL

Utilizza l'istruzione DDL ALTER SCHEMA SET OPTIONS per impostare le etichette su un set di dati esistente. L'impostazione delle etichette sovrascrive le etichette esistenti nel set di dati. L'esempio seguente elimina tutte le etichette nel set di dati mydataset:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

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

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per eliminare un'etichetta del set di dati, esegui il comando bq update con il flag clear_label. Ripeti il flag per eliminare più etichette.

Se il set di dati si trova in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

Dove:

  • key è il tasto per un'etichetta che vuoi eliminare.
  • project_id è l'ID progetto.
  • dataset è il set di dati che stai aggiornando.

Esempi:

Per eliminare l'etichetta department:shipping da mydataset, inserisci il comando bq update con il flag --clear_label. mydataset si trova nel tuo progetto predefinito.

    bq update --clear_label department mydataset

Per eliminare l'etichetta department:shipping da mydataset in myotherproject, inserisci il comando bq update con il flag --clear_label.

    bq update --clear_label department myotherproject:mydataset

Per eliminare più etichette da un set di dati, ripeti il flag clear_label e specifica la chiave di ogni etichetta. Ad esempio, per eliminare le etichette department:shipping e cost_center:logistics da mydataset nel progetto predefinito, inserisci:

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

Per ciascuno di questi esempi, l'output è simile al seguente:

Dataset 'myproject:mydataset' successfully updated.

API

Per eliminare una determinata etichetta per un set di dati esistente, chiama il metodo datasets.patch e aggiorna la proprietà labels per la risorsa del set di dati impostando il valore della chiave dell'etichetta su null.

Per eliminare tutte le etichette da un set di dati, chiama il metodo datasets.patch ed elimina la proprietà labels.

Poiché il metodo datasets.update sostituisce l'intera risorsa del set di dati, è preferibile il metodo datasets.patch.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.


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

Eliminare un'etichetta di tabella o visualizzazione

Puoi eliminare un'etichetta di tabella o visualizzazione nei seguenti modi:

  • Utilizzo della console Google Cloud
  • Utilizzo delle istruzioni DDL SQL
  • Utilizzo del comando bq update dello strumento a riga di comando bq
  • Chiamare il metodo API tables.patch
    • Poiché le viste vengono trattate come risorse di tabella, tables.patch viene utilizzato per modificare sia le viste che le tabelle.
  • Utilizzo delle librerie client

Autorizzazioni obbligatorie

Per eliminare un'etichetta di tabella o vista, devi disporre delle seguenti autorizzazioni IAM:

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

Ognuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per eliminare una tabella o una visualizzazione etichetta:

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

Inoltre, se disponi dell'autorizzazione bigquery.datasets.create, puoi eliminare le etichette delle tabelle e delle viste nei set di dati che crei.

Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Eliminare un'etichetta di tabella o visualizzazione

Per eliminare un'etichetta da una tabella o una visualizzazione, scegli una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , seleziona il set di dati.

  2. Fai clic sulla scheda Dettagli e poi sull'icona a forma di matita a destra di Etichette.

    Matita per etichette

  3. Nella finestra di dialogo Modifica etichette:

    • Per ogni etichetta che vuoi eliminare, fai clic su Elimina (X).

      Eliminazione dell&#39;etichetta

    • Per salvare le modifiche, fai clic su Aggiorna.

SQL

Utilizza l'istruzione DDL ALTER TABLE SET OPTIONS per impostare l'etichetta su una tabella esistente oppure l'istruzione DDL ALTER VIEW SET OPTIONS per impostare l'etichetta su una vista esistente. L'impostazione delle etichette sovrascrive le etichette esistenti nella tabella o nella visualizzazione. L'esempio seguente elimina tutte le etichette dalla tabella mytable:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

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

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per eliminare un'etichetta da una tabella o una vista, esegui il comando bq update con il flag clear_label. Ripeti il flag per eliminare più etichette.

Se la tabella o la vista si trova in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset.table_or_view

Dove:

  • key è il tasto per un'etichetta che vuoi eliminare.
  • project_id è l'ID progetto.
  • dataset è il set di dati che stai aggiornando.
  • table_or_view è il nome della tabella o della visualizzazione che stai aggiornando.

Esempi:

Per eliminare l'etichetta department:shipping da mydataset.mytable, inserisci il comando bq update con il flag --clear_label. mydataset si trova nel tuo progetto predefinito.

    bq update --clear_label department mydataset.mytable

Per eliminare l'etichetta department:shipping da mydataset.myview in myotherproject, inserisci il comando bq update con il flag --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Per eliminare più etichette da una tabella o una visualizzazione, ripeti il flag clear_label e specifica la chiave di ogni etichetta. Ad esempio, per eliminare l'etichetta department:shipping e l'etichetta cost_center:logistics da mydataset.mytable nel progetto predefinito, inserisci:

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

Per ciascuno di questi esempi, l'output è simile al seguente:

Table 'myproject:mydataset.mytable' successfully updated.

API

Per eliminare una particolare etichetta per una tabella o una vista esistente, chiama il metodo tables.patch e aggiorna la proprietà labels per la risorsa tabella impostando il valore della chiave dell'etichetta su null.

Per eliminare tutte le etichette da una tabella o una visualizzazione, chiama il metodo tables.patch ed elimina la proprietà labels.

Poiché le viste vengono trattate come risorse di tabella, utilizzi il metodo tables.patch per modificare sia le viste che le tabelle. Inoltre, poiché il metodo tables.update sostituisce l'intera risorsa del set di dati, è preferibile il metodo tables.patch.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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}.")

Eliminare un'etichetta di prenotazione

Puoi eliminare un'etichetta di prenotazione.

Ruoli IAM richiesti

Per ottenere l'autorizzazione necessaria per eliminare un'etichetta di prenotazione, chiedi all'amministratore di concederti il ruolo IAM Editor risorse BigQuery (roles/bigquery.resourceEditor) nel progetto di amministrazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione bigquery.reservations.delete necessaria per eliminare un'etichetta di prenotazione.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Eliminare un'etichetta di prenotazione

Per eliminare un'etichetta da una prenotazione, scegli una delle seguenti opzioni:

SQL

Per eliminare un'etichetta di prenotazione, utilizza l'istruzione ALTER RESERVATION SET OPTIONS DDL. Per eliminare le etichette di una prenotazione, impostale su un array vuoto. L'esempio seguente elimina l'etichetta nella prenotazione myreservation:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER RESERVATION myreservation
    SET OPTIONS (
      labels = []);

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per eliminare un'etichetta di prenotazione, esegui il comando bq update con i flag clear_label e --reservation. Per eliminare più etichette, ripeti il passaggio.

bq update --clear_label KEY  --reservation RESERVATION_NAME

Sostituisci quanto segue:

  • KEY: una chiave per un'etichetta che vuoi eliminare dalla prenotazione. La chiave deve essere univoca. Le chiavi e i valori possono contenere solo lettere minuscole, caratteri numerici, trattini bassi e trattini. Tutti i caratteri devono utilizzare la codifica UTF-8 e sono consentiti i caratteri internazionali. Per eliminare più etichette da una prenotazione, ripeti il flag --clear_label e specifica una chiave univoca per ogni etichetta.
  • RESERVATION_NAME: il nome della prenotazione.

Eliminare le etichette dei job

L'eliminazione di un'etichetta da un job esistente non è supportata.

Passaggi successivi