Cómo administrar vistas

Este documento describe cómo administrar vistas en Google BigQuery. Puedes administrar tus vistas de BigQuery de las siguientes maneras:

Cómo copiar una vista

Actualmente, no hay un método compatible para copiar una vista de un conjunto de datos a otro. Debes volver a crear la vista en el conjunto de datos meta.

Para ayudarte a volver a crear la vista, puedes copiar la consulta de SQL de la vista anterior. Para copiar la consulta de SQL que define una vista, haz lo siguiente:

IU clásica

  1. Selecciona la vista en el panel de navegación de la IU.

  2. En el panel Ver detalles, haz clic en Detalles.

  3. Copia el texto en la casilla Consulta.

Línea de comandos

Ejecuta el comando bq show. La marca --format se puede usar para controlar el resultado. Si quieres obtener información acerca de una vista en un proyecto que no sea tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET]. Para escribir las propiedades de la vista a un archivo, agrega > [PATH_TO_FILE] al comando.

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW] > [PATH_TO_FILE]

Donde:

  • [PROJECT_ID] es el ID de tu proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [VIEW] es el nombre de la vista.
  • [PATH_TO_FILE] es la ruta hacia el archivo de salida en tu máquina local.

Ejemplos:

Ingresa el siguiente comando para mostrar toda la información sobre myview en mydataset. mydataset está en tu proyecto predeterminado.

bq show --format=prettyjson mydataset.myview

Ingresa el siguiente comando para mostrar la información sobre myview en mydataset. mydataset está en myotherproject, no en tu proyecto predeterminado. Las propiedades de la vista se escriben en un archivo local: /tmp/myview.json.

bq show --format=prettyjson myotherproject:mydataset.myview > /tmp/myview.json

Cómo renombrar una vista

Actualmente, no puedes cambiar el nombre de una tabla existente. Si necesitas cambiar el nombre de la vista, vuelve a crear la vista con el mismo nombre.

Cómo borrar vistas

Puedes eliminar una vista mediante:

  • El uso de GCP Console o la IU web de BigQuery.
  • El uso del comando bq rm de la herramienta de línea de comandos
  • La realización de una llamada al método tables.delete de la API

Actualmente, con cualquiera de los métodos disponibles, solo puedes borrar una vista a la vez.

Para borrar vistas de manera automática tras un período de tiempo especificado, configura el tiempo de caducidad predeterminado a nivel del conjunto de datos o configura el tiempo de caducidad cuando crees la vista.

Permisos necesarios

Para borrar una vista se requieren los mismos permisos que para borrar una tabla: debes tener el acceso OWNER a nivel de conjunto de datos o tener asignada una función de IAM a nivel de proyecto que incluya permisos bigquery.tables.delete. Las siguientes funciones de IAM predefinidas a nivel de proyecto incluyen los permisos bigquery.tables.delete:

Los usuarios a quienes se les asigna una función predefinida a nivel de proyecto pueden borrar vistas en cualquier conjunto de datos del proyecto. Los usuarios con permisos OWNER a nivel de conjunto de datos pueden borrar vistas solo en ese conjunto de datos.

Además, debido a que la función bigquery.user tiene permisos bigquery.datasets.create, un usuario asignado a la función bigquery.user puede borrar vistas en cualquier conjunto de datos que cree el usuario. Cuando un usuario asignado a la función bigquery.user crea un conjunto de datos, ese usuario recibe acceso de OWNER al conjunto de datos. El acceso de OWNER a un conjunto de datos le da al usuario control total sobre este y todas sus tablas y vistas.

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

Cómo borrar una vista

Para borrar una vista, haz lo siguiente:

IU clásica

  1. Haz clic en el ícono de flecha hacia abajo ícono de flecha hacia abajo junto al nombre de tu vista en la barra de navegación y haz clic en Borrar vista.

  2. Cuando se te solicite, haz clic en Aceptar para confirmar.

Línea de comandos

Usa el comando bq rm con la marca --table (o el acceso directo -t) para borrar una vista. Cuando uses la CLI para borrar una vista, debes confirmar la acción. Puedes usar la marca --force (o el acceso directo -f) para omitir la confirmación.

Si la vista se encuentra en un conjunto de datos de un proyecto distinto a tu proyecto predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente formato [PROJECT_ID]:[DATASET].

bq rm -f -t [PROJECT_ID]:[DATASET].[VIEW]

Donde:

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

Ejemplos:

Ingresa el siguiente comando para borrar myview de mydataset. mydataset está en tu proyecto predeterminado.

bq rm -t mydataset.myview

Ingresa el siguiente comando para borrar myview de mydataset. mydataset está en myotherproject, no en tu proyecto predeterminado.

bq rm -t myotherproject:mydataset.myview

Ingresa el siguiente comando para borrar myview de mydataset. mydataset está en tu proyecto predeterminado. El comando utiliza el acceso directo -f para omitir la confirmación.

bq rm -f -t mydataset.myview

API

Llama al método tables.delete y especifica la vista que se debe borrar mediante el parámetro tableId.

C#

Antes de probar esta muestra, sigue las instrucciones de configuración para C# 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 BigQuery para C#.

using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryDeleteTable
{
    public void DeleteTable(
        string projectId = "your-project-id",
        string datasetId = "your_dataset_id",
        string tableId = "your_table_id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        client.DeleteTable(datasetId, tableId);
        Console.WriteLine($"Table {tableId} deleted.");
    }
}

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 BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
table := client.Dataset(datasetID).Table(tableID)
if err := table.Delete(ctx); err != nil {
	return err
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java 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 BigQuery para Java.

TableId tableId = TableId.of(projectId, datasetName, tableName);
boolean deleted = bigquery.delete(tableId);
if (deleted) {
  // the table was deleted
} else {
  // the table 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. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.

// 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";
// const tableId = "my_table";

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

// Deletes the table
await bigquery
  .dataset(datasetId)
  .table(tableId)
  .delete();

console.log(`Table ${tableId} deleted.`);

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. Para 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';
// $tableId = 'The BigQuery table ID';

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

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 BigQuery para Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'
# table_id = 'my_table'

table_ref = client.dataset(dataset_id).table(table_id)
client.delete_table(table_ref)  # API request

print('Table {}:{} deleted.'.format(dataset_id, table_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. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.

require "google/cloud/bigquery"

def delete_table dataset_id = "my_dataset_id", table_id = "my_table_id"
  bigquery = Google::Cloud::Bigquery.new
  dataset  = bigquery.dataset dataset_id
  table    = dataset.table table_id

  table.delete

  puts "Table #{table_id} deleted."
end

Próximos pasos

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.