Borra etiquetas

En esta página, se explica cómo quitar etiquetas de los recursos de BigQuery.

Descripción general

Para quitar una etiqueta de un conjunto de datos, una tabla o una vista, puedes realizar las siguientes acciones:

  • Con Cloud Console o la IU web clásica
  • Mediante el comando bq update de la herramienta de línea de comandos de bq
  • Realizar una llamada a los métodos de la API datasets.patch o tables.patch
  • Usar bibliotecas cliente

Permisos necesarios

Como mínimo, para quitar una etiqueta de conjunto de datos, debes tener los permisos bigquery.datasets.get y bigquery.datasets.update. Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.datasets.update y bigquery.datasets.get:

  • bigquery.dataOwner
  • bigquery.admin

Además, si un usuario tiene permisos bigquery.datasets.create, se le otorga el acceso bigquery.dataOwner cuando crea un conjunto de datos. Con el acceso bigquery.dataOwner, el usuario puede quitar etiquetas de los conjuntos de datos, y de las tablas y vistas de esos conjuntos.

Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Borra una etiqueta de conjunto de datos

Sigue estos pasos para quitar una etiqueta de un conjunto de datos:

Console

  1. En Cloud Console, selecciona el conjunto de datos.

  2. En la página de detalles del conjunto de datos, haz clic en el ícono de lápiz a la derecha de Labels (Etiquetas).

    Lápiz de etiqueta

  3. En el diálogo Editar etiquetas, haz lo siguiente:

    • Haz clic en el ícono de borrar (X) de cada etiqueta que desees quitar.
    • Haz clic en Actualizar para guardar los cambios.

IU clásica

  1. En la IU web, selecciona el conjunto de datos.

  2. En la página Detalles del conjunto de datos, a la derecha de Etiquetas, haz clic en Editar.

  3. En el diálogo Editar etiquetas, haz lo siguiente:

    • Haz clic en el ícono de borrar (X) de cada etiqueta que desees quitar.
    • Haz clic en Aceptar (OK).

      Borrar etiqueta

bq

Para quitar una etiqueta de conjunto de datos, emite el comando bq update con la marca clear_label. Repite la marca para quitar varias etiquetas.

Si el conjunto de datos está en un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

En el ejemplo anterior, se ilustra lo siguiente:

  • key es la clave para la etiqueta que desees quitar.
  • project_id es el ID del proyecto.
  • dataset es el conjunto de datos que estás actualizando.

Ejemplos:

Para quitar la etiqueta department:shipping de mydataset, ingresa el comando bq update con la marca --clear_label. mydataset está en tu proyecto predeterminado.

    bq update --clear_label department mydataset

Para quitar la etiqueta department:shipping de mydataset en myotherproject, ingresa el comando bq update con la marca --clear_label.

    bq update --clear_label department myotherproject:mydataset

Para quitar varias etiquetas de un conjunto de datos, repite la marca clear_label y especifica la clave de cada etiqueta. Por ejemplo, para quitar la etiqueta department:shipping y las etiquetas cost_center:logistics de mydataset en tu proyecto predeterminado, ingresa lo siguiente:

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

Para cada ejemplo, el resultado es similar al siguiente:

Dataset 'myproject:mydataset' successfully updated.

API

Para quitar una etiqueta específica de un conjunto de datos existente, llama al método datasets.patch y actualiza la propiedad labels para el recurso de conjunto de datos con la configuración del valor de la clave de la etiqueta en null.

Para quitar todas las etiquetas de un conjunto de datos, llama al método datasets.patch y quita la propiedad labels.

Debido a que, con el método datasets.update, se reemplaza todo el recurso del conjunto de datos, es preferible usar el método datasets.patch.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

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 probar este ejemplo, sigue las instrucciones de configuración para Java que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

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 probar este ejemplo, sigue las instrucciones de configuración para Node.js que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de Node.js de BigQuery.

// 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 probar esta muestra, sigue las instrucciones de configuración para Python incluidas en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.


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

Borra una etiqueta de una tabla o vista

Para quitar una etiqueta de una tabla o vista, puedes realizar las siguientes acciones:

  • Con Cloud Console o la IU web clásica de BigQuery
  • Mediante el comando bq update de la herramienta de línea de comandos de bq
  • Llamar al método tables.patch de la API
    • Debido a que las vistas se tratan como recursos de tabla, tables.patch se usa para modificar vistas y tablas.
  • Usar bibliotecas cliente

Permisos necesarios

Como mínimo, para quitar una etiqueta de una tabla o vista, debes tener los permisos bigquery.tables.update y bigquery.tables.get. Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.tables.update y bigquery.tables.get:

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

Además, si un usuario tiene permisos bigquery.datasets.create, se le otorga el acceso bigquery.dataOwner cuando crea un conjunto de datos. El acceso bigquery.dataOwner permite al usuario quitar etiquetas de las tablas y vistas en el conjunto de datos.

Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Borra una etiqueta de una tabla o vista

Sigue estos pasos para quitar una etiqueta de una tabla o vista:

Console

  1. En Cloud Console, selecciona el conjunto de datos.

  2. Haz clic en la pestaña Detalles y, luego, en el ícono de lápiz a la derecha de Etiquetas (Labels).

    Lápiz de etiqueta

  3. En el diálogo Editar etiquetas, haz lo siguiente:

    • Haz clic en el ícono de borrar (X) de cada etiqueta que desees quitar.

      Borrar etiqueta

    • Haz clic en Actualizar para guardar los cambios.

IU clásica

  1. En la IU web, selecciona la tabla o vista.

  2. En la página de Detalles, a la derecha de Etiquetas, haz clic en Editar.

  3. En el diálogo Editar etiquetas, haz lo siguiente:

    • Haz clic en el ícono de borrar (X) de cada etiqueta que desees quitar.
    • Haz clic en Aceptar (OK).

      Borrar etiqueta

bq

Para quitar una etiqueta de una tabla o vista, emite el comando bq update con la marca clear_label. Repite la marca para quitar varias etiquetas.

Si la tabla o vista está en un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: project_id:dataset.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • key es la clave para la etiqueta que desees quitar.
  • project_id es el ID del proyecto.
  • dataset es el conjunto de datos que estás actualizando.
  • table_or_view es el nombre de la tabla o vista que estás actualizando.

Ejemplos:

Para quitar la etiqueta department:shipping de mydataset.mytable, ingresa el comando bq update con la marca --clear_label. mydataset está en tu proyecto predeterminado.

    bq update --clear_label department mydataset.mytable

Para quitar la etiqueta department:shipping de mydataset.myview en myotherproject, ingresa el comando bq update con la marca --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Para quitar varias etiquetas de una tabla o vista, repite la marca clear_label y especifica la clave de cada etiqueta. Por ejemplo, para quitar la etiqueta department:shipping y la etiqueta cost_center:logistics de mydataset.mytable en tu proyecto predeterminado, ingresa lo siguiente:

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

Para cada ejemplo, el resultado es similar al siguiente:

Table 'myproject:mydataset.mytable' successfully updated.

API

Si deseas quitar una etiqueta específica de una tabla o vista existente, llama al método tables.patch y actualiza la propiedad labels para el recurso de tabla mediante la configuración del valor de la clave de la etiqueta en null.

Para quitar todas las etiquetas de una tabla o vista, llama al método tables.patch y quita la propiedad labels.

Debido a que las vistas se tratan como recursos de tabla, debes usar el método tables.patch para modificar las vistas y las tablas. Además, debido a que el método tables.update reemplaza todo el recurso del conjunto de datos, es preferible usar el método tables.patch.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

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 probar este ejemplo, sigue las instrucciones de configuración para Java que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

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 probar este ejemplo, sigue las instrucciones de configuración para Node.js que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de Node.js de BigQuery.

// 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 probar esta muestra, sigue las instrucciones de configuración para Python incluidas en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

# 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 == {}

Borra etiquetas de trabajo

Por el momento, no se puede borrar una etiqueta de un trabajo existente.

Próximos pasos