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

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.

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