Cómo obtener información sobre las vistas

En este documento, se describe cómo obtener información o metadatos acerca de las vistas en BigQuery.

Puedes obtener metadatos de vista de la siguiente manera:

  • Usar GCP Console o la IU web de BigQuery clásica.
  • Usar el comando de CLI bq show.
  • Llamando al método de la API tables.get
  • Consultando las vistas INFORMATION_SCHEMA (Beta)

Permisos necesarios

Si deseas obtener información sobre las vistas, debes tener asignada la función de READER en el conjunto de datos o una función de IAM a nivel del proyecto que incluya permisos bigquery.tables.get. Si tienes permisos bigquery.tables.get otorgados a nivel del proyecto, puedes obtener información sobre todas las vistas del proyecto. Todas las funciones de IAM predefinidas a nivel del proyecto incluyen los permisos bigquery.tables.get, excepto bigquery.jobUser y bigquery.user.

Además, un usuario a quien se le asigna la función bigquery.user tiene permisos bigquery.datasets.create. Esto permite a un usuario con la función bigquery.user obtener información sobre las vistas en cualquier conjunto de datos que el usuario cree. 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 y todas las vistas que contenga.

Si deseas 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 del conjunto de datos, consulta Funciones básicas para conjuntos de datos.

Cómo obtener información de la vista

La obtención de información sobre las vistas es igual al proceso para obtener información sobre tablas.

Si deseas obtener información sobre las vistas, haz lo siguiente:

Console

  1. Expande tu conjunto de datos.

  2. Haz clic en el nombre de la vista.

  3. Haz clic en Detalles (Details). En la pestaña Detalles (Details), se muestran la descripción y la información de la vista, y la consulta de SQL que define la vista.

    Ver detalles

IU clásica

  1. Expande tu conjunto de datos.

  2. Haz clic en el nombre de la vista.

  3. Haz clic en Details (Detalles). En la página View Details (Ver detalles), se muestran la descripción y la información de la vista, y la consulta de SQL que define la vista.

    Ver detalles

Línea de comandos

Ejecuta el comando bq show. La marca --format se puede utilizar 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].

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

En el que:

  • [PROJECT_ID] es el ID del proyecto.
  • [DATASET] es el nombre del conjunto de datos.
  • [VIEW] es el nombre de la vista.

Ejemplos:

Ingresa el siguiente comando para mostrar toda la información sobre myview en el conjunto de datos mydataset de tu proyecto predeterminado.

bq show --format=prettyjson mydataset.myview

Ingresa el siguiente comando para mostrar toda la información sobre myview en el conjunto de datos mydataset en myotherproject.

bq show --format=prettyjson myotherproject:mydataset.myview

API

Llama al método tables.get y proporciona los parámetros relevantes.

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. Si deseas 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")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}
fmt.Printf("View %s, query: %s\n", view.FullyQualifiedName(), meta.ViewQuery)

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. Si deseas 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()
# shared_dataset_id = 'my_shared_dataset'

view_ref = client.dataset(shared_dataset_id).table("my_shared_view")
view = client.get_table(view_ref)  # API Request

# Display view properties
print("View at {}".format(view.full_table_id))
print("View Query:\n{}".format(view.view_query))

INFORMATION_SCHEMA (Beta)

INFORMATION_SCHEMA es una serie de vistas que proporcionan acceso a metadatos sobre conjuntos de datos, tablas y vistas.

Vista VIEWS

Cuando consultas la vista INFORMATION_SCHEMA.VIEWS, los resultados de la consulta contienen una fila para cada vista en el conjunto de datos.

Las consultas hechas sobre la vista INFORMATION_SCHEMA.VIEWS deben tener un calificador de conjunto de datos. El usuario que envía la consulta debe tener acceso al conjunto de datos que contiene las vistas.

La vista INFORMATION_SCHEMA.VIEWS tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
TABLE_CATALOG STRING El nombre del proyecto que contiene el conjunto de datos
TABLE_SCHEMA STRING El nombre del conjunto de datos que contiene la vista (también denominado id del conjunto de datos)
TABLE_NAME STRING El nombre de la vista (también denominado id de la tabla)
VIEW_DEFINITION STRING La consulta de SQL que define la vista
CHECK_OPTION STRING El valor que se muestra siempre es NULL
USE_STANDARD_SQL STRING YES en el caso de vistas creadas con una consulta de SQL estándar; NO en el caso de que useLegacySql esté configurado como true

Si deseas obtener más información sobre las propiedades de las tablas y las vistas, consulta la página recurso de la tabla en la documentación de la API de REST.

Ejemplos

Ejemplo 1:

En el siguiente ejemplo, se recuperan todas las columnas de la vista INFORMATION_SCHEMA.VIEWS, excepto check_option, que se reserva para uso futuro. Los metadatos que se muestran corresponden a todas las vistas en mydataset, en tu proyecto predeterminado: myproject.

Las consultas hechas sobre la vista INFORMATION_SCHEMA.VIEWS deben tener un calificador de conjunto de datos. El usuario que envía la consulta debe tener acceso al conjunto de datos que contiene las vistas.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: `[PROJECT_ID]`.[DATASET].INFORMATION_SCHEMA.[VIEW] , por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

Para ejecutar la consulta, haz lo siguiente:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  2. Ingresa la siguiente consulta de SQL estándar en la casilla Editor de consulta. INFORMATION_SCHEMA requiere sintaxis de SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

    SELECT
     * EXCEPT(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  3. Haz clic en Ejecutar (Run).

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar con la marca --nouse_legacy_sql o --use_legacy_sql=false. Se requiere la sintaxis de SQL estándar para las consultas INFORMATION_SCHEMA.

Para ejecutar la consulta, ingresa lo siguiente:

bq query --nouse_legacy_sql \
'SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS'

Los resultados deberían verse de la siguiente manera:

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | table_catalog  | table_schema  |  table_name   |                        view_definition                              | use_standard_sql |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | myproject      | mydataset     | myview        | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

Ten en cuenta que los resultados muestran que esta vista se creó mediante una consulta de SQL heredada.

Ejemplo 2:

El siguiente ejemplo recupera la consulta de SQL y la sintaxis de la consulta utilizada para definir myview en mydataset, en tu proyecto predeterminado: myproject.

Las consultas hechas sobre la vista INFORMATION_SCHEMA.VIEWS deben tener un calificador de conjunto de datos. El usuario que envía la consulta debe tener acceso al conjunto de datos que contiene las vistas.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: `[PROJECT_ID]`.[DATASET].INFORMATION_SCHEMA.[VIEW] , por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

Para ejecutar la consulta, haz lo siguiente:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  2. Ingresa la siguiente consulta de SQL estándar en la casilla Query editor (Editor de consulta). INFORMATION_SCHEMA requiere sintaxis de SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

    SELECT
     table_name, view_definition, use_standard_sql
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    WHERE
     table_name="myview"
    
  3. Haz clic en Ejecutar (Run).

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar con la marca --nouse_legacy_sql o --use_legacy_sql=false. Se requiere la sintaxis de SQL estándar para las consultas INFORMATION_SCHEMA.

Para ejecutar la consulta, ingresa lo siguiente:

bq query --nouse_legacy_sql \
'SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name="myview"'

Los resultados deberían verse de la siguiente manera:

  +---------------+---------------------------------------------------------------+------------------+
  |  table_name   |                        view_definition                        | use_standard_sql |
  +---------------+---------------------------------------------------------------+------------------+
  | myview        | SELECT column1, column2, column3 FROM mydataset.mytable       | YES              |
  +---------------+---------------------------------------------------------------+------------------+
  

Ten en cuenta que los resultados muestran que esta vista se creó mediante una consulta de SQL estándar.

Pasos siguientes

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

Enviar comentarios sobre…

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