Vista MATERIALIZED_VIEWS

A vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS contém o estado das vistas materializadas.

Autorizações necessárias

Para obter as autorizações de que precisa para consultar a vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS, peça ao seu administrador para lhe conceder a função de IAM de leitor de metadados do BigQuery (roles/bigquery.metadataViewer) no seu projeto ou conjunto de dados. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para consultar a vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para consultar a vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS:

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

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta a vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS, os resultados da consulta contêm uma linha para cada vista materializada num conjunto de dados.

A vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
table_catalog STRING O nome do projeto que contém o conjunto de dados. Também conhecido como projectId.
table_schema STRING O nome do conjunto de dados que contém a vista materializada. Também conhecido como datasetId.
table_name STRING O nome da vista materializada. Também conhecido como tableId.
last_refresh_time TIMESTAMP A hora em que esta vista materializada foi atualizada pela última vez.
refresh_watermark TIMESTAMP A marca de água de atualização da vista materializada. Os dados contidos nas tabelas base da vista materializada até este momento estão incluídos na cache da vista materializada.
last_refresh_status RECORD Resultado do erro da última tarefa de atualização automática como um objeto ErrorProto. Se estiver presente, indica que a última atualização automática não foi bem-sucedida.

Âmbito e sintaxe

As consultas desta vista têm de incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, tem de ter autorizações para o conjunto de dados. Para consultas com um qualificador de região, tem de ter autorizações para o projeto. Para mais informações, consulte Sintaxe. A tabela seguinte explica os âmbitos da região e dos recursos para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito 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 Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.
  • DATASET_ID: o ID do seu conjunto de dados. Para mais informações, consulte o artigo Qualificador de conjunto de dados.

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

Exemplos

Exemplo 1:

O exemplo seguinte obtém todas as vistas materializadas não íntegras da vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Devolve as vistas materializadas com valores não NULL last_refresh_status em mydataset no seu projeto predefinido: myproject.

Para executar a consulta num projeto que não seja o seu projeto predefinido, 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 é semelhante ao seguinte:

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

Exemplo 2:

O exemplo seguinte obtém o last_refresh_time e o refresh_watermark da vista materializada myview em mydataset no seu projeto predefinido — myproject. O resultado mostra quando a vista materializada foi atualizada pela última vez e até quando os dados das tabelas base são recolhidos na cache da vista materializada.

Para executar a consulta num projeto que não seja o seu projeto predefinido, 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 é semelhante ao seguinte:

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