Cómo administrar conjuntos de datos

En este documento, se describe cómo administrar conjuntos de datos en BigQuery. Después de crear un conjunto de datos, puedes administrarlo de las siguientes maneras:

Renombra conjuntos de datos

Actualmente, no puedes cambiar el nombre de un conjunto de datos existente y no puedes copiar un conjunto de datos y ponerle un nombre nuevo. Si necesitas cambiar el nombre del conjunto de datos, sigue estos pasos para volver a crear el conjunto de datos:

  1. Crea un conjunto de datos nuevo y especifica el nombre nuevo.

  2. Copia las tablas del conjunto de datos anterior al nuevo.

  3. Copia las vistas al nuevo conjunto de datos o recréalas en el nuevo conjunto de datos.

  4. Borra el conjunto de datos anterior para evitar costos de almacenamiento adicionales.

Copia conjuntos de datos

Actualmente, no puedes copiar un conjunto de datos. En su lugar sigue estos pasos para recrear el conjunto de datos:

  1. Crea un nuevo conjunto de datos. Debido a que los nombres de los conjuntos de datos deben ser únicos por proyecto, debes asignar un nombre nuevo al conjunto de datos si vas a volver a crearlo en el mismo proyecto.

  2. Copia las tablas del conjunto de datos anterior al nuevo.

  3. Copia las vistas al nuevo conjunto de datos o recréalas en el nuevo conjunto de datos.

  4. Borra el conjunto de datos anterior para evitar costos de almacenamiento adicionales.

Borra conjuntos de datos

Puedes borrar un conjunto de datos:

  • Usando GCP Console o la IU web de BigQuery clásica
  • Usando el comando de CLI bq rm
  • Llamando al método de la API datasets.delete

Permisos necesarios

Para borrar un conjunto de datos, debes tener acceso de OWNER a nivel de conjunto de datos o tener asignada una función de IAM a nivel de proyecto que incluya permisos bigquery.datasets.delete. Si el conjunto de datos contiene tablas, también se requiere bigquery.tables.delete. Las siguientes funciones de IAM predefinidas, incluyen los permisos bigquery.datasets.delete y bigquery.tables.delete:

Además, debido a que la función bigquery.user tiene permisos bigquery.datasets.create, un usuario a quien se le asigna la función bigquery.user puede borrar cualquier conjunto de datos que cree el usuario. Cuando un usuario asignado a la función bigquery.user crea un conjunto de datos, se le otorga acceso de OWNER al conjunto de datos. El acceso OWNER a un conjunto de datos otorga al usuario un control total sobre este.

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Control de acceso. A fin de obtener más información sobre las funciones a nivel de conjunto de datos, consulta Funciones básicas para conjuntos de datos.

Borra un conjunto de datos

Cuando borras un conjunto de datos con la IU web, se borran las tablas en el conjunto de datos (y los datos que contiene). Cuando borras un conjunto de datos con la CLI, debes usar la marca -r para borrar las tablas del conjunto de datos.

Después de borrar un conjunto de datos, no se puede recuperar, restablecer o recuperar. Borrar un conjunto de datos es permanente.

Sigue los siguientes pasos para borrar un conjunto de datos:

Console

  1. Selecciona tu conjunto de datos desde el panel Recursos (Resources) y, a continuación, haz clic en Borrar conjunto de datos (Delete dataset) a la derecha de la ventana.

    Borrar conjunto de datos

  2. En el cuadro de diálogo ¿Borrar conjunto de datos? (Delete dataset?) ingresa el nombre del conjunto de datos en el cuadro de texto y, a continuación, haz clic en Borrar (Delete).

IU clásica

  1. Haz clic en el ícono de la flecha hacia abajo ícono de flecha hacia abajo junto al nombre de tu conjunto de datos en la navegación y haz clic en Borrar conjunto de datos (Delete dataset).

  2. En el cuadro de diálogo Borrar conjunto de datos (Delete Dataset):

    • Para el ID del conjunto de datos, ingresa el nombre del conjunto de datos que deseas borrar.
    • Haga clic en Aceptar (OK).

Línea de comandos

Usa el comando bq rm con la marca de acceso directo --dataset o -d (opcional) para borrar un conjunto de datos. Cuando usas la CLI para quitar un conjunto de datos, debes confirmar el comando. Puedes usar la marca -f para omitir la confirmación.

Además, si el conjunto de datos contiene tablas, puedes usar la marca -r para quitar todas las tablas del conjunto de datos. Si vas a borrar una tabla en un proyecto que no es tu proyecto predeterminado, agrega el ID del proyecto al nombre del conjunto de datos al siguiente formato: [PROJECT_ID]:[DATASET].

bq rm -r -f -d [PROJECT_ID]:[DATASET]

Donde:

  • [PROJECT_ID] es tu ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos que vas a borrar.

Ejemplos:

Ingresa el siguiente comando para quitar mydataset y todas las tablas desde tu proyecto predeterminado. El comando usa el acceso directo -d opcional.

bq rm -r -d mydataset

Cuando se te solicite, escribe y, luego presiona INTRO.

Ingresa el siguiente comando para quitar mydataset y todas las tablas desde myotherproject. El comando no usa el acceso directo -d opcional. La marca -f se usa para omitir la confirmación.

bq rm -r -f myotherproject:mydataset

API

Llama al método datasets.delete a fin de borrar el conjunto de datos y configura el parámetro deleteContents como true para borrar las tablas que contiene.

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go de la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

if err := client.Dataset(datasetID).Delete(ctx); err != nil {
	return fmt.Errorf("Failed to delete dataset: %v", err)
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

DatasetId datasetId = DatasetId.of(projectId, datasetName);
boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
if (deleted) {
  // the dataset was deleted
} else {
  // the dataset was not found
}

Node.js

Antes de probar esta muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');

async function deleteDataset() {
  // Deletes a dataset named "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_new_dataset";

  // Create a client
  const bigqueryClient = new BigQuery();

  // Create a reference to the existing dataset
  const dataset = bigqueryClient.dataset(datasetId);

  // Delete the dataset and its contents
  await dataset.delete({force: true});
  console.log(`Dataset ${dataset.id} deleted.`);
}
deleteDataset();

PHP

Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->delete();
printf('Deleted dataset %s' . PHP_EOL, $datasetId);

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set model_id to the ID of the model to fetch.
# dataset_id = 'your-project.your_dataset'

# Use the delete_contents parameter to delete a dataset and its contents
# Use the not_found_ok parameter to not receive an error if the dataset has already been deleted.
client.delete_dataset(dataset_id, delete_contents=True, not_found_ok=True)

print("Deleted dataset '{}'.".format(dataset_id))

Ruby

Antes de probar esta muestra, sigue las instrucciones de configuración para Ruby que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.

require "google/cloud/bigquery"

def delete_dataset dataset_id = "my_empty_dataset"
  bigquery = Google::Cloud::Bigquery.new

  # Delete a dataset that does not contain any tables
  dataset = bigquery.dataset dataset_id
  dataset.delete
  puts "Dataset #{dataset_id} deleted."
end

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.