Visualizzazione MATERIALIZED_VIEWS

La vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS contiene lo stato relativo alle viste materializzate.

Autorizzazioni obbligatorie

Per ottenere le autorizzazioni necessarie per eseguire query sulla vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore metadati BigQuery (roles/bigquery.metadataViewer) per il tuo progetto o set di dati. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per eseguire query sulla vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per eseguire query sulla vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS sono necessarie le seguenti autorizzazioni:

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

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Per maggiori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS, i risultati della query contengono una riga per ogni vista materializzata in un set di dati.

La vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS ha il seguente schema:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING Il nome del progetto che contiene il set di dati. È noto anche come projectId.
TABLE_SCHEMA STRING Il nome del set di dati che contiene la vista materializzata. Chiamato anche datasetId.
TABLE_NAME STRING Il nome della vista materializzata. Chiamato anche tableId.
LAST_REFRESH_TIME TIMESTAMP La data e l'ora dell'ultimo aggiornamento della vista materializzata.
REFRESH_WATERMARK TIMESTAMP La filigrana di aggiornamento della vista materializzata. I dati contenuti nelle tabelle di base delle vista materializzata fino a questo momento sono inclusi nella cache delle vista materializzata.
LAST_REFRESH_STATUS RECORD Risultato di errore dell'ultimo job di aggiornamento automatico come oggetto ErrorProto. Se presente, indica che l'ultimo aggiornamento automatico non è riuscito.

Ambito e sintassi

Le query in questa visualizzazione devono includere un set di dati o un qualificatore di regione. Per le query con un qualificatore del set di dati, devi disporre delle autorizzazioni per il set di dati. Per le query con un qualificatore di regione, devi disporre delle autorizzazioni per il progetto. Per ulteriori informazioni, consulta la sezione Sintassi. La tabella seguente illustra gli ambiti a livello di regione e risorsa per questa visualizzazione:

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS A livello di progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS Livello set di dati Posizione del set di dati
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
  • REGION: qualsiasi nome della regione del set di dati. Ad esempio: region-us.
  • DATASET_ID: l'ID del set di dati. Per ulteriori informazioni, consulta la sezione Qualificatore del set di dati.

Ad esempio:

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

Esempi

Esempio 1:

L'esempio seguente recupera tutte le viste materializzate non integri dalla vista INFORMATION_SCHEMA.MATERIALIZED_VIEWS. Restituisce le viste materializzate con valori last_refresh_status diversi da NULL in mydataset nel tuo progetto predefinito: myproject.

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; ad esempio, `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;

Il risultato è simile al seguente:

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

Esempio 2:

L'esempio seguente recupera last_refresh_time e refresh_watermark della vista materializzata myview in mydataset nel tuo progetto predefinito: myproject. Il risultato mostra la data dell'ultimo aggiornamento materializzato e fino a quando i dati delle tabelle di base vengono raccolti nella cache della vista materializzata.

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_time, refresh_watermark
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  table_name = 'myview';

Il risultato è simile al seguente:

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