Vista MATERIALIZED_VIEWS
La vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
contiene el estado de las vistas materializadas.
Permisos necesarios
Para obtener los permisos que necesitas para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
,
pídele a tu administrador que te otorgue el
rol de IAM de visualizador de metadatos de BigQuery (roles/bigquery.metadataViewer
) en tu proyecto o conjunto de datos.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Este rol predefinido contiene
los permisos necesarios para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
:
-
bigquery.tables.get
-
bigquery.tables.list
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.Esquema
Cuando consultas la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, los resultados contienen una fila por cada vista materializada de un conjunto de datos.
La vista INFORMATION_SCHEMA.MATERIALIZED_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. También se conoce como projectId . |
TABLE_SCHEMA |
STRING |
El nombre del conjunto de datos que contiene la vista materializada. También se conoce como datasetId . |
TABLE_NAME |
STRING |
El nombre de la vista materializada. También se conoce como tableId . |
LAST_REFRESH_TIME |
TIMESTAMP |
La hora en que se actualizó por última vez esta vista materializada. |
REFRESH_WATERMARK |
TIMESTAMP |
La marca de agua de actualización de la vista materializada. Los datos contenidos en las tablas base de la vista materializada hasta este momento se incluyen en la caché de la vista materializada. |
LAST_REFRESH_STATUS |
RECORD |
Resultado del error del último trabajo de actualización automática como un objeto ErrorProto. Si está presente, indica que la última actualización automática no se realizó correctamente. |
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.MATERIALIZED_VIEWS |
Nivel de proyecto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_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.MATERIALIZED_VIEWS;
-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;
Examples
Ejemplo 1:
En el ejemplo siguiente, se recuperan todas las vistas materializadas en mal estado de la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Muestra las vistas materializadas con valores no NULL
last_refresh_status
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.MATERIALIZED_VIEWS
(por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
).
SELECT table_name, last_refresh_status FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE last_refresh_status IS NOT NULL;
El resultado es similar al siguiente:
+---------------+---------------------------------------------------------------------+ | table_name | last_refresh_status | +---------------------------------------------------------------------+---------------+ | myview | {"reason":"invalidQuery","location":"query","message":"..."} | +---------------------------------------------------------------------+---------------+
Ejemplo 2:
En el siguiente ejemplo, se recuperan last_refresh_time
y refresh_watermark
de la vista materializada myview
en mydataset
en tu proyecto predeterminado: myproject
. El resultado muestra cuándo se actualizó por última vez la vista materializada y hasta cuando los datos de las tablas base se recopilan en la caché de la vista materializada.
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.MATERIALIZED_VIEWS
(por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
).
SELECT table_name, last_refresh_time, refresh_watermark FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE table_name = 'myview';
El resultado es similar al siguiente:
+---------------+------------------------------------------------+ | table_name | last_refresh_time | refresh_watermark | +---------------+------------------------------------------------+ | myview | 2023-02-22 19:37:17 | 2023-03-08 16:52:57 | +---------------+------------------------------------------------+