Administra 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. Vuelve a crear las vistas en el conjunto de datos nuevo.

  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 volver a crear 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. Vuelve a crear las vistas en el conjunto de datos nuevo.

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

Borra conjuntos de datos

Puedes borrar un conjunto de datos mediante:

  • GCP Console o la IU web de BigQuery
  • El comando de CLI bq rm
  • Una llamada 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 de OWNER a un conjunto de datos permite 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:

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.

  2. En el cuadro de diálogo Borrar conjunto de datos:

    • Para el ID del conjunto de datos, ingresa el nombre del conjunto de datos que deseas borrar.
    • Haz clic en Aceptar.

      Borrar conjunto de datos

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 a true para borrar las tablas que contiene.

Go

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

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 en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de Java de BigQuery.

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 de Node.js en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de Node.js de BigQuery.

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = "your-project-id";
// const datasetId = "my_dataset";

// Creates a client
const bigquery = new BigQuery({projectId});

// Creates a reference to the existing dataset
const dataset = bigquery.dataset(datasetId);

// Deletes the dataset
await dataset.delete();
console.log(`Dataset ${dataset.id} deleted.`);

PHP

Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de PHP de BigQuery.

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. Para obtener más información, consulta la Documentación de referencia de la API de Python de BigQuery.

# from google.cloud import bigquery
# client = bigquery.Client()

# Delete a dataset that does not contain any tables
# dataset1_id = 'my_empty_dataset'
dataset1_ref = client.dataset(dataset1_id)
client.delete_dataset(dataset1_ref)  # API request

print('Dataset {} deleted.'.format(dataset1_id))

# Use the delete_contents parameter to delete a dataset and its contents
# dataset2_id = 'my_dataset_with_tables'
dataset2_ref = client.dataset(dataset2_id)
client.delete_dataset(dataset2_ref, delete_contents=True)  # API request

print('Dataset {} deleted.'.format(dataset2_id))

Ruby

Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la Documentación de referencia de la API de Ruby de BigQuery.

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

Próximos pasos

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

Enviar comentarios sobre...

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