Muestra una lista de vistas

En este documento, se describe cómo mostrar una lista de vistas en BigQuery.

Tienes las siguientes opciones para mostrar una lista de las vistas de los conjuntos de datos:

  • Usar Cloud Console o la IU web clásica de BigQuery
  • Mediante el comando bq ls de la CLI
  • Con una llamada al método tables.list de la API
  • Usar bibliotecas cliente

Permisos necesarios

Como mínimo, para enumerar las vistas en un conjunto de datos, debes tener permisos bigquery.tables.list. Las siguientes funciones predefinidas de Cloud IAM incluyen los permisos bigquery.tables.list:

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

Para obtener más información sobre las funciones de Cloud IAM y los permisos en BigQuery, consulta la sección sobre el control de acceso.

Muestra una lista de vistas

El proceso para hacer una lista de las vistas es igual al proceso para hacer una lista de las tablas.

Para mostrar una lista de las vistas de un conjunto de datos, sigue estos pasos:

Console

  1. En el panel de navegación, en la sección Recursos, expande el proyecto y haz clic en un conjunto de datos. De esta manera, se muestran las tablas y vistas en el conjunto de datos.

  2. Desplázate por la lista para ver las tablas en el conjunto de datos. Las tablas y las vistas están identificadas con íconos diferentes.

    Íconos de tabla y vista

IU clásica

  1. En la IU web de BigQuery, en el panel de navegación, haz clic en la flecha azul a la izquierda de tu conjunto de datos para expandirlo o haz doble clic en el nombre del conjunto de datos. De esta manera, se muestran las tablas y vistas en el conjunto de datos.

  2. Desplázate por la lista para ver las tablas en el conjunto de datos. Las tablas y las vistas están identificadas con íconos diferentes.

    Ver tablas

CLI

Ejecuta el comando bq ls. Se puede usar la marca --format para controlar el resultado. Si enumeras vistas 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 ls --format=pretty project_id:dataset

Donde:

  • project_id es el ID del proyecto.
  • dataset es el nombre del conjunto de datos.

Cuando ejecutas el comando, el campo Type muestra TABLE o VIEW. Por ejemplo:

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+

Ejemplos:

Ingresa el siguiente comando para enumerar las vistas en el conjunto de datos mydataset en tu proyecto predeterminado.

bq ls --format=pretty mydataset

Ingresa el siguiente comando para enumerar las vistas en el conjunto de datos mydataset en myotherproject.

bq ls --format=pretty myotherproject:mydataset

API

Para mostrar una lista de las vistas con la API, llama al método tables.list.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas 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 Go.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listTables demonstrates iterating through the collection of tables in a given dataset.
func listTables(w io.Writer, projectID, datasetID 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)
	}

	ts := client.Dataset(datasetID).Tables(ctx)
	for {
		t, err := ts.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Table: %q\n", t.TableID)
	}
	return nil
}

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 con bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

# TODO(developer): Import the client library.
# from google.cloud import bigquery

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

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the tables you are listing.
# dataset_id = 'your-project.your_dataset'

tables = client.list_tables(dataset_id)  # Make an API request.

print("Tables contained in '{}':".format(dataset_id))
for table in tables:
    print("{}.{}.{}".format(table.project, table.dataset_id, table.table_id))

Próximos pasos