A eliminar etiquetas

Pode eliminar uma etiqueta de um conjunto de dados, uma tabela ou uma vista:

Antes de começar

Conceda funções de gestão de identidade e acesso (IAM) que dão aos utilizadores as autorizações necessárias para realizar cada tarefa neste documento. As autorizações necessárias para realizar uma tarefa (se aplicável) estão listadas na secção "Autorizações necessárias" da tarefa.

Elimine uma etiqueta de conjunto de dados

As secções seguintes especificam as autorizações e os passos para eliminar uma etiqueta de conjunto de dados.

Autorizações necessárias

Para eliminar uma etiqueta de conjunto de dados, precisa das seguintes autorizações de IAM:

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

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações de que precisa para eliminar uma etiqueta de conjunto de dados:

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

Além disso, se tiver a autorização bigquery.datasets.create, pode eliminar etiquetas dos conjuntos de dados que criar.

Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Elimine uma etiqueta de conjunto de dados

Para eliminar uma etiqueta de um conjunto de dados, escolha uma das seguintes opções:

Consola

  1. Na Google Cloud consola, selecione o conjunto de dados.

  2. Na página de detalhes do conjunto de dados, clique no ícone de lápis à direita de Etiquetas.

    Lápis de etiquetas

  3. Na caixa de diálogo Editar etiquetas:

    • Para cada etiqueta que quer eliminar, clique em Eliminar (X).
    • Para guardar as alterações, clique em Atualizar.

SQL

Use a ALTER SCHEMA SET OPTIONS declaração DDL para definir as etiquetas num conjunto de dados existente. A definição de etiquetas substitui todas as etiquetas existentes no conjunto de dados. O exemplo seguinte elimina todas as etiquetas no conjunto de dados mydataset:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para eliminar uma etiqueta de conjunto de dados, execute o comando bq update com a flag clear_label. Repita o comando para eliminar várias etiquetas.

Se o conjunto de dados estiver num projeto diferente do projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

Onde:

  • key é a tecla de uma etiqueta que quer eliminar.
  • project_id é o ID do seu projeto.
  • dataset é o conjunto de dados que está a atualizar.

Exemplos:

Para eliminar a etiqueta department:shipping de mydataset, introduza o comando bq update com a flag --clear_label. mydataset está no seu projeto predefinido.

    bq update --clear_label department mydataset

Para eliminar a etiqueta department:shipping de mydataset em myotherproject, introduza o comando bq update com a flag --clear_label.

    bq update --clear_label department myotherproject:mydataset

Para eliminar várias etiquetas de um conjunto de dados, repita a flag clear_label e especifique a chave de cada etiqueta. Por exemplo, para eliminar as etiquetas department:shipping e cost_center:logistics de mydataset no seu projeto predefinido, introduza:

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

Para cada um destes exemplos, o resultado tem o seguinte aspeto:

Dataset 'myproject:mydataset' successfully updated.

API

Para eliminar uma etiqueta específica de um conjunto de dados existente, chame o método datasets.patch e atualize a propriedade labels do recurso dataset definindo o valor da chave da etiqueta como null.

Para eliminar todas as etiquetas de um conjunto de dados, chame o método datasets.patch e elimine a propriedade labels.

Uma vez que o método datasets.update substitui o recurso do conjunto de dados completo, é preferível usar o método datasets.patch.

Go

Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.


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

Elimine uma etiqueta de tabela ou vista

Pode eliminar uma tabela ou uma etiqueta de visualização das seguintes formas:

  • Usar a Google Cloud consola
  • Usar declarações DDL de SQL
  • Usar o comando bq update da ferramenta de linhas de comando bq
  • Chamar o método da API tables.patch
    • Uma vez que as vistas são tratadas como recursos de tabelas, o comando tables.patch é usado para modificar vistas e tabelas.
  • Usar as bibliotecas de cliente

Autorizações necessárias

Para eliminar uma tabela ou uma etiqueta de visualização, precisa das seguintes autorizações de IAM:

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

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações de que precisa para eliminar uma tabela ou ver uma etiqueta:

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

Além disso, se tiver a autorização bigquery.datasets.create, pode eliminar etiquetas das tabelas e das vistas nos conjuntos de dados que criar.

Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Elimine uma etiqueta de tabela ou vista

Para eliminar uma etiqueta de uma tabela ou uma vista, escolha uma das seguintes opções:

Consola

  1. Na Google Cloud consola, selecione o conjunto de dados.

  2. Clique no separador Detalhes e, de seguida, clique no ícone de lápis à direita de Etiquetas.

    Lápis de etiquetas

  3. Na caixa de diálogo Editar etiquetas:

    • Para cada etiqueta que quer eliminar, clique em Eliminar (X).

      Eliminação de etiquetas

    • Para guardar as alterações, clique em Atualizar.

SQL

Use a declaração DDL ALTER TABLE SET OPTIONS para definir a etiqueta numa tabela existente ou a declaração DDL ALTER VIEW SET OPTIONS para definir a etiqueta numa vista existente. A definição de etiquetas substitui quaisquer etiquetas existentes na tabela ou na vista. O exemplo seguinte elimina todas as etiquetas da tabela mytable:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para eliminar uma etiqueta de uma tabela ou vista, execute o comando bq update com a flag clear_label. Repita o comando para eliminar várias etiquetas.

Se a tabela ou a vista estiver num projeto diferente do projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato: project_id:dataset.

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

Onde:

  • key é a tecla de uma etiqueta que quer eliminar.
  • project_id é o ID do seu projeto.
  • dataset é o conjunto de dados que está a atualizar.
  • table_or_view é o nome da tabela ou da vista que está a atualizar.

Exemplos:

Para eliminar a etiqueta department:shipping de mydataset.mytable, introduza o comando bq update com a flag --clear_label. mydataset está no seu projeto predefinido.

    bq update --clear_label department mydataset.mytable

Para eliminar a etiqueta department:shipping de mydataset.myview em myotherproject, introduza o comando bq update com a flag --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Para eliminar várias etiquetas de uma tabela ou vista, repita a flag clear_label e especifique a chave de cada etiqueta. Por exemplo, para eliminar a etiqueta department:shipping e a etiqueta cost_center:logistics de mydataset.mytable no seu projeto predefinido, introduza:

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

Para cada um destes exemplos, o resultado tem o seguinte aspeto:

Table 'myproject:mydataset.mytable' successfully updated.

API

Para eliminar uma etiqueta específica de uma tabela ou uma vista existente, chame o método tables.patch e atualize a propriedade labels do recurso de tabela definindo o valor da chave da etiqueta como null.

Para eliminar todas as etiquetas de uma tabela ou uma vista, chame o método tables.patch e elimine a propriedade labels.

Uma vez que as vistas são tratadas como recursos de tabelas, usa o método tables.patch para modificar vistas e tabelas. Além disso, uma vez que o método tables.update substitui todo o recurso do conjunto de dados, o método tables.patch é preferível.

Go

Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Go BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Node.js BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

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

Elimine uma etiqueta de reserva

Pode eliminar uma etiqueta de reserva.

Funções de IAM necessárias

Para receber a autorização de que precisa para eliminar uma etiqueta de reserva, peça ao seu administrador para lhe conceder a função de editor de recursos do BigQuery (roles/bigquery.resourceEditor) no projeto de administração. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém a autorização bigquery.reservations.delete , que é necessária para eliminar uma etiqueta de reserva.

Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.

Elimine uma etiqueta de reserva

Para eliminar uma etiqueta de uma reserva, escolha uma das seguintes opções:

SQL

Para eliminar uma etiqueta de reserva, use a declaração ALTER RESERVATION SET OPTIONS DDL. Para eliminar as etiquetas numa reserva, defina as etiquetas como uma matriz vazia. O exemplo seguinte elimina a etiqueta na reserva myreservation:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para eliminar uma etiqueta de reserva, emita o comando bq update com o parâmetro clear_label e o parâmetro --reservation. Para eliminar várias etiquetas, repita a sinalização.

bq update --clear_label KEY  --reservation RESERVATION_NAME

Substitua o seguinte:

  • KEY: uma chave para uma etiqueta que quer eliminar da reserva. A chave tem de ser exclusiva. As chaves e os valores só podem conter letras minúsculas, carateres numéricos, sublinhados e travessões. Todos os carateres têm de usar a codificação UTF-8, e são permitidos carateres internacionais. Para eliminar várias etiquetas de uma reserva, repita a flag --clear_label e especifique uma chave única para cada etiqueta.
  • RESERVATION_NAME: o nome da reserva.

Elimine etiquetas de tarefas

A eliminação de uma etiqueta de uma tarefa existente não é suportada.

O que se segue?