Visualizzazione MATERIALIZED_VIEWS
La visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
contiene lo stato delle viste materializzate.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni
necessarie per eseguire query sulla visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
,
chiedi all'amministratore di concederti il
ruolo IAM Visualizzatore metadati BigQuery (roles/bigquery.metadataViewer
)
nel progetto o nel set di dati.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene
le autorizzazioni necessarie per eseguire query sulla visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Per vedere quali sono esattamente le autorizzazioni
richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
sono necessarie le seguenti autorizzazioni:
-
bigquery.tables.get
-
bigquery.tables.list
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.Schema
Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
, i risultati della query contengono
una riga per ogni vista materializzata in un set di dati.
La visualizzazione INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ha lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
TABLE_CATALOG |
STRING |
Il nome del progetto che contiene il set di dati. Chiamato anche
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 |
L'ora dell'ultimo aggiornamento di questa vista materializzata. |
REFRESH_WATERMARK |
TIMESTAMP |
Il watermark 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 dell'errore dell'ultimo job di aggiornamento automatico come oggetto ErrorProto. Se presente, indica che l'ultimo aggiornamento automatico non è andato a buon fine. |
Ambito e sintassi
Le query su questa vista devono includere un qualificatore di set di dati o 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 saperne di più, consulta la sezione Sintassi. La tabella seguente spiega gli ambiti di regione e risorsa per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
Livello progetto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
Livello del set di dati | Posizione del set di dati |
-
(Facoltativo)
PROJECT_ID
: l'ID del tuo Google Cloud progetto. 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 tuo set di dati. Per maggiori informazioni, consulta 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 integre dalla vista
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
. Restituisce le viste materializzate
con valori non NULL
last_refresh_status
in mydataset
nel 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, ovvero
myproject
. Il risultato mostra l'ultimo aggiornamento della materializzazione 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 | +---------------+------------------------------------------------+