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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
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 funções personalizadas 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 |
-
Opcional:
PROJECT_ID: o ID do seu projeto do Google Cloud . Se não for especificado, o projeto padrão será usado. -
REGION: qualquer nome da região do conjunto de dados. Por exemplo,`region-us`. -
DATASET_ID: ID do conjunto de dados. Para mais informações, consulte Qualificador de conjunto de dados.
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 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 | +---------------+------------------------------------------------+