Vista VIEWS

La vista INFORMATION_SCHEMA.VIEWS contiene metadatos sobre las vistas.

Permisos necesarios

Para obtener metadatos de vistas, necesitas los siguientes permisos de Identity and Access Management (IAM):

  • bigquery.tables.get
  • bigquery.tables.list

Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para obtener los metadatos de las vistas:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.

Schema

Cuando consultas la vista INFORMATION_SCHEMA.VIEWS, los resultados contienen una fila por cada vista de un conjunto de datos.

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 es siempre NULL
USE_STANDARD_SQL STRING YES si la vista se creó mediante una consulta de GoogleSQL; NO si useLegacySql se configura como true

Permiso y sintaxis

Las consultas realizadas a esta vista deben incluir un conjunto de datos o un calificador de región. Para consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. Para consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta Sintaxis. En la siguiente tabla, se explican los permisos de la región y los recursos para esta vista:

Nombre de la vista Permiso del recurso Permiso de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.VIEWS Nivel de proyecto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VIEWS Nivel de conjunto de datos Ubicación del conjunto de datos
Reemplaza lo siguiente:

Por ejemplo:

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEWS;

Examples

Ejemplo 1:

En el ejemplo siguiente, 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 de mydataset en tu proyecto predeterminado (myproject).

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en este formato: `project_id`.dataset.INFORMATION_SCHEMA.view (por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS).

SELECT
  * EXCEPT (check_option)
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS;

El resultado es similar al siguiente:

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | 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 heredado.

Ejemplo 2:

El ejemplo siguiente recupera la consulta de SQL y la sintaxis de la consulta que se usa para definir myview en mydataset en tu proyecto predeterminado (myproject).

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en este formato: `project_id`.dataset.INFORMATION_SCHEMA.view (por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS).

SELECT
  table_name, view_definition, use_standard_sql
FROM
  mydataset.INFORMATION_SCHEMA.VIEWS
WHERE
  table_name = 'myview';

El resultado es similar al siguiente:

  +---------------+---------------------------------------------------------------+------------------+
  |  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 GoogleSQL.