Excluindo rótulos

Para excluir um rótulo de um conjunto de dados, tabela ou visualização:

Antes de começar

Atribua papéis do Identity and Access Management (IAM) que concedam aos usuários as permissões necessárias para realizar cada tarefa deste documento. As permissões necessárias para executar uma tarefa (se houver) são listadas na seção "Permissões necessárias".

Como excluir um rótulo de conjunto de dados

As seções a seguir especificam as permissões e as etapas para excluir um rótulo de conjunto de dados.

Permissões necessárias

Para excluir um rótulo de conjunto de dados, você precisa das seguintes permissões do IAM:

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

Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para excluir um rótulo de conjunto de dados:

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

Além disso, se você tiver a permissão bigquery.datasets.create, poderá excluir os rótulos dos conjuntos de dados que criar.

Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como excluir um rótulo de conjunto de dados

Para excluir um rótulo de um conjunto de dados, escolha uma das seguintes opções:

Console

  1. No console do Google Cloud, selecione o conjunto de dados.

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

    Lápis de rótulo

  3. Na caixa de diálogo Editar rótulos:

    • Clique em "Excluir" (X) para cada rótulo que você quer excluir.
    • Para salvar as alterações, clique em Atualizar.

SQL

Use a instrução DDL ALTER SCHEMA SET OPTIONS para definir os rótulos em um conjunto de dados atual. A definição dos rótulos substitui os rótulos no conjunto de dados. O exemplo a seguir exclui todos os rótulos no conjunto de dados mydataset:

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

bq

Para excluir um rótulo de conjunto de dados, use o comando bq update com a sinalização clear_label. Repita a sinalização para excluir vários rótulos.

Se o conjunto de dados estiver em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

Em que:

  • key é a chave de um rótulo que você quer excluir.
  • project_id é o ID do projeto.
  • dataset é o conjunto de dados que você está atualizando.

Exemplos:

Para excluir o rótulo department:shipping de mydataset, insira o comando bq update com a sinalização --clear_label. mydataset está no projeto padrão.

    bq update --clear_label department mydataset

Para excluir o rótulo department:shipping de mydataset em myotherproject, insira o comando bq update com a sinalização --clear_label.

    bq update --clear_label department myotherproject:mydataset

Para excluir vários rótulos de um conjunto de dados, repita a sinalização clear_label e especifique a chave de cada rótulo. Por exemplo, para excluir os rótulos department:shipping e cost_center:logistics de mydataset em seu projeto padrão, insira:

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

Para cada um desses exemplos, o resultado será semelhante ao mostrado a seguir:

Dataset 'myproject:mydataset' successfully updated.

API

Para excluir um rótulo específico de um conjunto de dados atual, chame o método datasets.patch e atualize a propriedade labels para o recurso do conjunto de dados definindo a chave-valor do rótulo como null.

Para excluir todos os rótulos de um conjunto de dados, chame o método datasets.patch e exclua a propriedade labels.

Como o método datasets.update substitui todo o recurso do conjunto de dados, é melhor usar o método datasets.patch.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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))

Como excluir um rótulo de tabela ou visualização

É possível excluir um rótulo de visualização ou tabela das seguintes maneiras:

  • Use o console do Google Cloud
  • Usar instruções DDL do SQL;
  • Use o comando bq update da ferramenta de linha de comando bq
  • utilize o método da API tables.patch
      ;
    • Como as visualizações são tratadas como recursos de tabela, tables.patch é usado para modificar visualizações e tabelas.
  • use as bibliotecas de cliente.

Permissões necessárias

Para excluir um rótulo de tabela ou visualização, você precisa das seguintes permissões do IAM:

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

Cada um dos papéis predefinidos do IAM a seguir inclui as permissões necessárias para excluir um rótulo de tabela ou visualização:

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

Além disso, se você tiver a permissão bigquery.datasets.create, poderá excluir os rótulos das tabelas e visualizações nos conjuntos de dados que criar.

Para mais informações sobre papéis e permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Como excluir um rótulo de tabela ou visualização

Para excluir um rótulo de uma tabela ou visualização, escolha uma das seguintes opções:

Console

  1. No console do Google Cloud, selecione o conjunto de dados.

  2. Clique na guia Detalhes, em seguida clique no ícone de lápis à direita de Rótulos.

    Lápis de rótulo

  3. Na caixa de diálogo Editar rótulos:

    • Clique em "Excluir" (X) para cada rótulo que você quer excluir.

      Rótulo de exclusão

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

SQL

Use a instrução DDL ALTER TABLE SET OPTIONS para definir o rótulo em uma tabela atual ou a instrução DDL ALTER VIEW SET OPTIONS para definir o rótulo em uma visualização existente. A definição dos rótulos substitui os que já estão na tabela ou na visualização. O exemplo a seguir exclui todos os rótulos da tabela mytable:

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

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

  3. Clique em Executar.

Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.

bq

Para excluir um rótulo de visualização ou tabela, insira o comando bq update com a sinalização clear_label. Repita a sinalização para excluir vários rótulos.

Se a tabela ou a visualização estiver em um projeto diferente do padrão, 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

Em que:

  • key é a chave de um rótulo que você quer excluir.
  • project_id é o ID do projeto.
  • dataset é o conjunto de dados que você está atualizando.
  • table_or_view é o nome da tabela ou visualização que você está atualizando.

Exemplos:

Para excluir o rótulo department:shipping de mydataset.mytable, insira o comando bq update com a sinalização --clear_label. mydataset está no projeto padrão.

    bq update --clear_label department mydataset.mytable

Para excluir o rótulo department:shipping de mydataset.myview em myotherproject, insira o comando bq update com a sinalização --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Para excluir vários rótulos de uma tabela ou visualização, repita a sinalização clear_label e especifique a chave de cada rótulo. Por exemplo, para excluir os rótulos department:shipping e cost_center:logistics de mydataset.mytable no seu projeto padrão, insira:

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

Para cada um desses exemplos, o resultado será semelhante ao mostrado a seguir:

Table 'myproject:mydataset.mytable' successfully updated.

API

Para excluir um rótulo específico de uma tabela ou visualização atual, chame o método tables.patch e atualize a propriedade labels para o recurso de tabela definindo a chave-valor do rótulo como null.

Para excluir todos os rótulos de uma tabela ou visualização, chame o método tables.patch e exclua a propriedade labels.

Como as visualizações são tratadas como recursos de tabela, você usa o método tables.patch para modificar visualizações e tabelas. Além disso, como o método tables.update substitui todo o recurso do conjunto de dados, é melhor usar o método tables.patch.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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 testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar 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}.")

Como excluir rótulos de job

No momento, não é possível excluir um rótulo de um job atual.

A seguir