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
Sustituye lo siguiente:
  • 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   |
  +---------------+------------------------------------------------+