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