Visualização MATERIALIZED_VIEWS

A visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS contém status sobre visualizações materializadas.

Permissões necessárias

Para receber as permissões necessárias para consultar a visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS, peça ao administrador para conceder a você o papel Visualizador de metadados do BigQuery (roles/bigquery.metadataViewer) do IAM no projeto ou conjunto de dados. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para consultar a visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para consultar a visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS:

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

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Esquema

Quando você consulta a visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS, os resultados da consulta contêm uma linha para cada visualização materializadas em um conjunto de dados.

A visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
TABLE_CATALOG STRING Nome do projeto que contém o conjunto de dados. Também chamado de projectId.
TABLE_SCHEMA STRING O nome do conjunto de dados que contém a visualização materializada. Também chamado de datasetId.
TABLE_NAME STRING O nome da visualização materializada. Também conhecido como tableId.
LAST_REFRESH_TIME TIMESTAMP A hora em que essa visualização materializada foi atualizada pela última vez.
REFRESH_WATERMARK TIMESTAMP A marca-d'água de atualização da visualização materializada. Os dados contidos em tabelas base de visualização materializadas até o momento são incluídos no cache de visualizações materializadas.
LAST_REFRESH_STATUS RECORD Resultado do erro do último job de atualização automática como um objeto ErrorProto. Se presente, indica que a última atualização automática falhou.

Escopo e sintaxe

As consultas nessa visualização precisam incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, é preciso ter permissões para o conjunto de dados. Para consultas com um qualificador de região, é preciso ter permissões para o projeto. Para mais informações, consulte Sintaxe. A tabela a seguir explica os escopos de região e recurso dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS Nível do projeto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS Nível do conjunto de dados Local do conjunto de dados
Substitua:

Exemplo:

-- 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

Exemplo 1:

O exemplo a seguir recupera todas as visualizações materializadas não íntegras da visualização INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Ele retorna as visualizações materializadas com valores last_refresh_status não NULL em mydataset no seu projeto padrão: myproject.

Para executar a consulta em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; por exemplo, `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;

O resultado será semelhante ao seguinte:

  +---------------+---------------------------------------------------------------------+
  |  table_name   |                        last_refresh_status                          |
  +---------------------------------------------------------------------+---------------+
  |  myview       |   {"reason":"invalidQuery","location":"query","message":"..."}      |
  +---------------------------------------------------------------------+---------------+
  

Exemplo 2:

O exemplo a seguir recupera last_refresh_time e refresh_watermark da visualização materializada myview em mydataset no seu projeto padrão (myproject). O resultado mostra quando a materializada foi atualizada pela última vez e até quando os dados de tabelas base são coletados no cache da visualização materializada.

Para executar a consulta em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; por exemplo, `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_time, refresh_watermark
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  table_name = 'myview';

O resultado será semelhante ao seguinte:

  +---------------+------------------------------------------------+
  |  table_name   |  last_refresh_time     | refresh_watermark     |
  +---------------+------------------------------------------------+
  |  myview       | 2023-02-22 19:37:17    | 2023-03-08 16:52:57   |
  +---------------+------------------------------------------------+