Eliminar etiquetas

Para eliminar una etiqueta de un conjunto de datos, una tabla o una vista, puedes hacer lo siguiente:

Antes de empezar

Concede roles de gestión de identidades y accesos (IAM) que proporcionen a los usuarios los permisos necesarios para realizar cada tarea de este documento. Los permisos necesarios para realizar una tarea (si los hay) se indican en la sección "Permisos necesarios" de la tarea.

Eliminar una etiqueta de un conjunto de datos

En las siguientes secciones se especifican los permisos y los pasos para eliminar una etiqueta de un conjunto de datos.

Permisos obligatorios

Para eliminar una etiqueta de conjunto de datos, necesita los siguientes permisos de gestión de identidades y accesos:

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

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos que necesitas para eliminar una etiqueta de conjunto de datos:

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

Además, si tienes el permiso bigquery.datasets.create, puedes eliminar las etiquetas de los conjuntos de datos que crees.

Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.

Eliminar una etiqueta de un conjunto de datos

Para eliminar una etiqueta de un conjunto de datos, elija una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, selecciona el conjunto de datos.

  2. En la página de detalles del conjunto de datos, haz clic en el icono de lápiz situado a la derecha de Etiquetas.

    Lápiz de etiquetas

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

    • Haga clic en eliminar (X) en cada etiqueta que quiera eliminar.
    • Para guardar los cambios, haz clic en Actualizar.

SQL

Usa la declaración de DDL ALTER SCHEMA SET OPTIONS para definir las etiquetas de un conjunto de datos. Al definir etiquetas, se sobrescriben las etiquetas que ya tenga el conjunto de datos. En el siguiente ejemplo se eliminan todas las etiquetas del conjunto de datos mydataset:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

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

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

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

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

bq update \
--clear_label key \
project_id:dataset

Donde:

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

Ejemplos:

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

    bq update --clear_label department mydataset

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

    bq update --clear_label department myotherproject:mydataset

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

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

En cada uno de estos ejemplos, el resultado es el siguiente:

Dataset 'myproject:mydataset' successfully updated.

API

Para eliminar una etiqueta concreta de un conjunto de datos, llama al método datasets.patch y actualiza la propiedad labels del recurso de conjunto de datos. Para ello, asigna el valor null a la clave de la etiqueta.

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

Como el método datasets.update sustituye todo el recurso del conjunto de datos, es preferible usar el método datasets.patch.

Go

Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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))

Eliminar una etiqueta de tabla o vista

Puedes eliminar una tabla o una etiqueta de vista de las siguientes formas:

  • Usar la Google Cloud consola
  • Usar declaraciones de DDL de SQL
  • Usar el comando bq update de la herramienta de línea de comandos bq
  • Llamar al método de la API tables.patch
    • Como las vistas se tratan como recursos de tabla, tables.patch se usa para modificar tanto las vistas como las tablas.
  • Usar las bibliotecas de cliente

Permisos obligatorios

Para eliminar una etiqueta de tabla o de vista, necesitas los siguientes permisos de gestión de identidades y accesos:

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

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos que necesitas para eliminar una tabla o una etiqueta de vista:

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

Además, si tienes el permiso bigquery.datasets.create, puedes eliminar las etiquetas de las tablas y las vistas de los conjuntos de datos que crees.

Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.

Eliminar una etiqueta de tabla o vista

Para eliminar una etiqueta de una tabla o una vista, elija una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, selecciona el conjunto de datos.

  2. Haz clic en la pestaña Detalles y, a continuación, en el icono de lápiz situado a la derecha de Etiquetas.

    Lápiz de etiquetas

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

    • Haga clic en eliminar (X) en cada etiqueta que quiera eliminar.

      Eliminar etiqueta

    • Para guardar los cambios, haz clic en Actualizar.

SQL

Usa la declaración de DDL ALTER TABLE SET OPTIONS para definir la etiqueta en una tabla que ya tengas o la declaración de DDL ALTER VIEW SET OPTIONS para definir la etiqueta en una vista que ya tengas. Al definir etiquetas, se sobrescriben las etiquetas que ya haya en la tabla o en la vista. En el siguiente ejemplo se eliminan todas las etiquetas de la tabla mytable:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

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

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

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

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

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

Donde:

  • key es la clave de la etiqueta que quieres eliminar.
  • 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 la vista que vas a actualizar.

Ejemplos:

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

    bq update --clear_label department mydataset.mytable

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

    bq update --clear_label department myotherproject:mydataset.myview

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

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

En cada uno de estos ejemplos, el resultado es el siguiente:

Table 'myproject:mydataset.mytable' successfully updated.

API

Para eliminar una etiqueta concreta de una tabla o vista, llama al método tables.patch y actualiza la propiedad labels del recurso de tabla asignando el valor null a la clave de la etiqueta.

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

Como las vistas se tratan como recursos de tabla, puedes usar el método tables.patch para modificar tanto las vistas como las tablas. Además, como el método tables.update sustituye todo el recurso del conjunto de datos, es preferible usar el método tables.patch.

Go

Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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 probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación 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}.")

Eliminar una etiqueta de reserva

Puedes eliminar una etiqueta de reserva.

Roles de gestión de identidades y accesos necesarios

Para obtener el permiso que necesitas para eliminar una etiqueta de reserva, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de recursos de BigQuery (roles/bigquery.resourceEditor) en el proyecto de administración. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso bigquery.reservations.delete, que es necesario para eliminar una etiqueta de reserva.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

Eliminar una etiqueta de reserva

Para eliminar una etiqueta de una reserva, elige una de las siguientes opciones:

SQL

Para eliminar una etiqueta de reserva, usa la ALTER RESERVATION SET OPTIONSinstrucción DDL. Para eliminar las etiquetas de una reserva, asigna a las etiquetas un array vacío. En el siguiente ejemplo se elimina la etiqueta de la reserva myreservation:

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, introduce la siguiente instrucción:

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

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.

bq

Para eliminar una etiqueta de reserva, ejecuta el comando bq update con las marcas clear_label y --reservation. Para eliminar varias etiquetas, repite el proceso.

bq update --clear_label KEY  --reservation RESERVATION_NAME

Haz los cambios siguientes:

  • KEY: clave de una etiqueta que quieras eliminar de la reserva. La clave debe ser única. Las claves y los valores solo pueden contener letras en minúscula, caracteres numéricos, guiones y guiones bajos. Todos los caracteres deben usar la codificación UTF-8 y se pueden usar caracteres internacionales. Para eliminar varias etiquetas de una reserva, repite la marca --clear_label y especifica una clave única para cada etiqueta.
  • RESERVATION_NAME: el nombre de la reserva.

Eliminar etiquetas de tareas

No se puede eliminar una etiqueta de una tarea que ya se ha creado.

Siguientes pasos