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