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 |
- Opcional:
PROJECT_ID
: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado. REGION
: Cualquier nombre de región del conjunto de datos. Por ejemplo,region-us
.DATASET_ID
: Es el ID del conjunto de datos. Para obtener más información, consulta calificador de conjunto de datos.
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.