Vista MATERIALIZED_VIEWS
La vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
contiene información sobre el estado de las vistas materializadas.
Permisos obligatorios
Para obtener los permisos que necesitas para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Lector de metadatos de BigQuery (roles/bigquery.metadataViewer
) en tu proyecto o conjunto de datos.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para consultar la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, se necesitan los siguientes permisos:
-
bigquery.tables.get
-
bigquery.tables.list
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.Esquema
Cuando consultas la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, los resultados de la consulta 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 |
Nombre del proyecto que contiene el conjunto de datos. También se denomina projectId . |
TABLE_SCHEMA |
STRING |
Nombre del conjunto de datos que contiene la vista materializada. También se denomina datasetId . |
TABLE_NAME |
STRING |
Nombre de la vista materializada. También se denomina
tableId . |
LAST_REFRESH_TIME |
TIMESTAMP |
Hora a la que se actualizó esta vista materializada por última vez. |
REFRESH_WATERMARK |
TIMESTAMP |
Marca de agua de actualización de la vista materializada. Los datos contenidos en las tablas base de la vista materializada hasta ese momento se incluyen en la caché de la vista materializada. |
LAST_REFRESH_STATUS |
RECORD |
Resultado de error de la última tarea de actualización automática como objeto ErrorProto. Si está presente, indica que la última actualización automática no se ha completado correctamente. |
Ámbito y sintaxis
Las consultas en esta vista deben incluir un conjunto de datos o un calificador de región. En el caso de las consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. En el caso de las consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta la sección Sintaxis. En la siguiente tabla se explican los ámbitos de región y de recurso de esta vista:
Nombre de la vista | Ámbito de los recursos | Ámbito 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 del conjunto de datos | Ubicación del conjunto de datos |
-
Opcional:
PROJECT_ID
: el ID de tu Google Cloud proyecto. 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
: el ID de tu 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;
Ejemplos
Ejemplo 1:
En el siguiente ejemplo se obtienen todas las vistas materializadas incorrectas de la vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Devuelve las vistas materializadas con valores de NULL
last_refresh_status
distintos de cero en mydataset
de tu proyecto predeterminado, myproject
.
Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente 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 obtienen los campos last_refresh_time
y refresh_watermark
de la vista materializada myview
en mydataset
de tu proyecto predeterminado: myproject
. El resultado muestra cuándo se actualizó por última vez la vista materializada y hasta cuándo se recogen los datos de las tablas base en la caché de la vista materializada.
Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente 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 | +---------------+------------------------------------------------+