Como excluir rótulos

Nesta página, você verá como remover rótulos de recursos do BigQuery.

Visão geral

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

  • use o Console do Cloud ou a IU clássica da Web;
  • use o comando bq update da ferramenta de linha de comando bq;
  • chame os métodos de API datasets.patch ou tables.patch;
  • use as bibliotecas de cliente.

Permissões necessárias

No mínimo, para remover um rótulo de conjunto de dados, é necessário ter permissões bigquery.datasets.get e bigquery.datasets.update. Os seguintes papéis predefinidos do IAM incluem permissões bigquery.datasets.update e bigquery.datasets.get:

  • bigquery.dataOwner
  • bigquery.admin

Além disso, se um usuário tiver permissões bigquery.datasets.create ao criar um conjunto de dados, será concedido o acesso bigquery.dataOwner. O acesso bigquery.dataOwner oferece ao usuário a capacidade de remover rótulos dos respectivos conjuntos de dados e de tabelas e visualizações contidas nesses conjuntos de dados.

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

Como excluir um rótulo de conjunto de dados

Para remover um rótulo de um conjunto de dados, faça o seguinte:

Console

  1. No Console do 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, faça isto:

    • Clique no ícone de exclusão (X) para cada rótulo que você quer remover.
    • Clique em Atualizar para salvar as alterações.

IU clássica

  1. Na IU da Web, selecione o conjunto de dados.

  2. Na página Detalhes do conjunto de dados, à direita de Rótulos, clique em Editar.

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

    • Clique no ícone de exclusão (X) para cada rótulo que você quer remover.
    • Clique em OK.

      Excluir rótulo

bq

Para remover um rótulo de conjunto de dados, use o comando bq update com a sinalização clear_label. Repita a sinalização para remover 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

Onde:

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

Exemplos:

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

    bq update --clear_label department mydataset

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

    bq update --clear_label department myotherproject:mydataset

Para remover 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 remover 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 remover 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 remover todos os rótulos de um conjunto de dados, chame o método datasets.patch e remova 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 essa amostra, siga as instruções de configuração para 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 Go (em inglês).

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 essa amostra, siga as instruções de configuração para 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 Java.

Ver no GitHub (em inglês) Feedback
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 essa amostra, siga as instruções de configuração para 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 Node.js (em inglês).

Ver no GitHub (em inglês) Feedback
// 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 essa amostra, siga as instruções de configuração para 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 Python (em inglês).


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

Para remover o rótulo de uma tabela ou visualização:

  • Use o Console do Cloud ou a IU da Web clássica do BigQuery
  • 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

No mínimo, para remover um rótulo de tabela ou visualização, é necessário ter permissões bigquery.tables.update e bigquery.tables.get. Os seguintes papéis predefinidos de IAM incluem as permissões bigquery.tables.update e bigquery.tables.get:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Além disso, se um usuário tiver permissões bigquery.datasets.create ao criar um conjunto de dados, será concedido o acesso bigquery.dataOwner. O acesso bigquery.dataOwner permite que o usuário remova rótulos de tabelas e visualizações em um conjunto de dados.

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

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

Para remover um rótulo de uma tabela ou visualização, faça o seguinte:

Console

  1. No Console do 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, faça isto:

    • Clique no ícone de exclusão (X) para cada rótulo que você quer remover.

      Rótulo de exclusão

    • Clique em Atualizar para salvar as alterações.

IU clássica

  1. Na IU da Web, selecione a tabela ou a visualização.

  2. Na página Detalhes, à direita de Rótulos, clique em Editar.

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

    • Clique no ícone de exclusão (X) para cada rótulo que você quer remover.
    • Clique em OK.

      Excluir rótulo

bq

Para remover um rótulo de visualização ou tabela, insira o comando bq update com a sinalização clear_label. Repita a sinalização para remover 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

Onde:

  • key é a chave para um rótulo que você quer remover;
  • 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 remover o rótulo department:shipping de mydataset.mytable, digite o comando bq update com a sinalização --clear_label. mydataset está no projeto padrão.

    bq update --clear_label department mydataset.mytable

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

    bq update --clear_label department myotherproject:mydataset.myview

Para remover 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 remover 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 remover 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 remover todos os rótulos de uma tabela ou visualização, chame o método tables.patch e remova 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 essa amostra, siga as instruções de configuração para 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 Go (em inglês).

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 essa amostra, siga as instruções de configuração para 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 Java.

Ver no GitHub (em inglês) Feedback
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 essa amostra, siga as instruções de configuração para 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 Node.js (em inglês).

Ver no GitHub (em inglês) Feedback
// 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 essa amostra, siga as instruções de configuração para 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 Python (em inglês).

# from google.cloud import bigquery
# client = bigquery.Client()
# project = client.project
# dataset_ref = bigquery.DatasetReference(project, dataset_id)
# table_ref = dataset_ref.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 == {}

Como excluir rótulos de job

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

A seguir