Borra etiquetas

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

  • Usar la consola de Google Cloud
  • Usar declaraciones DDL de SQL
  • Usa el comando bq update de la herramienta de línea de comandos de bq
  • Con una llamada a los métodos datasets.patchtables.patch de la API
  • Usar bibliotecas cliente

Antes de comenzar

Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para hacer cada tarea de este documento. Los permisos necesarios para realizar una tarea (si existen) se enumeran en la sección “Permisos necesarios” de la tarea.

Borra una etiqueta de conjunto de datos

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

Permisos necesarios

Para borrar una etiqueta de conjunto de datos, necesitas los siguientes permisos de IAM:

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

Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para borrar una tabla:

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

Además, si tienes el permiso bigquery.datasets.create, puedes borrar tablas de los conjuntos de datos que crees.

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

Para borrar una etiqueta de un conjunto de datos, elige una de las siguientes opciones:

Console

  1. En la consola de Google Cloud, 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 cuadro de diálogo Editar etiquetas (Edit Labels), haz lo siguiente:

    • Para cada etiqueta que desees borrar, haz clic en borrar (X).
    • Para guardar los cambios, haz clic en Update (Actualizar).

SQL

Usa la declaración DDL ALTER SCHEMA SET OPTIONS para configurar las etiquetas en un conjunto de datos existente. La configuración de etiquetas reemplaza cualquier etiqueta existente en el conjunto de datos. En el siguiente ejemplo, se borran todas las etiquetas del conjunto de datos mydataset:

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

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente sentencia:

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

  3. Haz clic en Ejecutar.

Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

bq

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

Si el conjunto de datos está en un proyecto que no es el 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

Aquí:

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

Ejemplos:

Para borrar 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 borrar 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 borrar varias etiquetas de un conjunto de datos, repite la marca clear_label y especifica la clave de cada etiqueta. Por ejemplo, para borrar 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 borrar 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 borrar todas las etiquetas de un conjunto de datos, llama al método datasets.patch y borra la propiedad labels.

Debido a que el método datasets.update 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 incluidas 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 BigQuery para Go.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Java incluidas 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 BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Node.js incluidas 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 BigQuery para Node.js.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Python incluidas 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 BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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))

Borra la etiqueta de una tabla o vista

Puedes borrar una etiqueta de una tabla o vista de las siguientes maneras:

  • Usar la consola de Google Cloud
  • Usar declaraciones DDL de SQL
  • Usa 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

Para borrar una etiqueta de una tabla o vista, necesitas los siguientes permisos de IAM:

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

Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para borrar la etiqueta de una tabla o vista:

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

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

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

Borra la etiqueta de una tabla o vista

Para borrar una etiqueta de una tabla o vista, elige una de las siguientes opciones:

Console

  1. En la consola de Google Cloud, 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 cuadro de diálogo Editar etiquetas (Edit Labels), haz lo siguiente:

    • Para cada etiqueta que desees borrar, haz clic en borrar (X).

      Borrar etiqueta

    • Para guardar los cambios, haz clic en Update (Actualizar).

SQL

Usa la declaración DDL ALTER TABLE SET OPTIONS para configurar la etiqueta en una tabla existente o la declaración DDL ALTER VIEW SET OPTIONS para configurar. la etiqueta en una vista existente. Si configuras etiquetas, se reemplazan las etiquetas existentes en la tabla o vista. En el siguiente ejemplo, se borran todas las etiquetas de la tabla mytable:

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

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente sentencia:

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

  3. Haz clic en Ejecutar.

Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

bq

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

Si la tabla o la vista están en un proyecto que no es el 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

Aquí:

  • key es la clave para la etiqueta que desees borrar.
  • 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 borrar 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 borrar 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 borrar varias etiquetas de una tabla o vista, repite la marca clear_label y especifica la clave de cada etiqueta. Por ejemplo, para borrar 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 borrar 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 borrar todas las etiquetas de una tabla o vista, llama al método tables.patch y borra 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 incluidas 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 BigQuery para Go.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Java incluidas 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 BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Node.js incluidas 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 BigQuery para Node.js.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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 instrucciones de configuración para Python incluidas 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 BigQuery para Python.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas 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}.")

Borra etiquetas de trabajo

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

¿Qué sigue?