Visualizzazione TABLE_STORAGE
La visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
fornisce un'istantanea attuale dell'utilizzo dello spazio di archiviazione per tabelle e viste materializzate. Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
, i risultati della query contengono una riga per ogni tabella o vista materializzata del progetto corrente.
I dati nella visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
non vengono conservati in tempo reale e gli aggiornamenti vengono in genere ritardati di alcuni secondi o minuti. Le modifiche allo spazio di archiviazione causate dalla scadenza di partizioni o tabelle
o da modifiche alla finestra di spostamento temporale del set di dati potrebbero richiedere
fino a un giorno per essere visualizzate nella visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
.
Nei casi di eliminazione di set di dati che contengono più di 1000 tabelle,
questa visualizzazione non rifletterà la modifica finché non sarà trascorso il
periodo di spostamento nel tempo per il set di dati eliminato.
Le visualizzazioni dello spazio di archiviazione delle tabelle offrono un modo pratico per osservare il consumo attuale dello spazio di archiviazione e forniscono inoltre dettagli sul tipo di spazio di archiviazione utilizzato: byte logici non compressi, byte fisici compressi o byte time travel. Queste informazioni possono aiutarti in attività come la pianificazione della crescita futura e la comprensione dei pattern di aggiornamento delle tabelle.
Dati inclusi nelle colonne *_BYTES
Le colonne *_BYTES
nelle visualizzazioni dello spazio di archiviazione delle tabelle includono informazioni sull'utilizzo dei byte di spazio di archiviazione. Queste informazioni vengono determinate esaminando l'utilizzo dello spazio di archiviazione
per le viste materializzate e i seguenti tipi di tabelle:
- Tabelle permanenti create con uno dei metodi descritti in Creare e utilizzare le tabelle.
- Tabelle temporanee create nelle sessioni. Queste tabelle vengono inserite in set di dati con nomi generati come "_c018003e063d09570001ef33ae401fad6ab92a6a".
- Tabelle temporanee create in query con più istruzioni ("script"). Queste tabelle vengono inserite in set di dati con nomi generati come "_script72280c173c88442c3a7200183a50eeeaa4073719".
I dati archiviati nella
cache dei risultati delle query
non ti vengono addebitati e pertanto non sono inclusi nei valori della colonna *_BYTES
.
I cloni e gli snapshot mostrano i valori delle colonne *_BYTES
come se fossero tabelle complete, anziché mostrare la differenza rispetto allo spazio di archiviazione utilizzato dalla tabella di base, quindi sono una sovrastima. La fattura tiene conto correttamente di questa differenza
nell'utilizzo dello spazio di archiviazione. Per ulteriori informazioni sui byte delta archiviati e fatturati dai cloni e dagli snapshot, consulta la visualizzazione TABLE_STORAGE_USAGE_TIMELINE
.
Previsione della fatturazione dello spazio di archiviazione
Per prevedere la fatturazione mensile dello spazio di archiviazione per un set di dati, puoi utilizzare le colonne logical
o physical *_BYTES
in questa visualizzazione, a seconda del modello di fatturazione dello spazio di archiviazione del set di dati utilizzato dal set di dati. Tieni presente che questa è solo una previsione approssimativa e
gli importi esatti della fatturazione vengono calcolati in base all'utilizzo da parte
dell'infrastruttura di fatturazione dello spazio di archiviazione BigQuery e sono visibili in
fatturazione Cloud.
Per i set di dati che utilizzano un modello di fatturazione logica, puoi prevedere i costi di archiviazione mensili nel seguente modo:
((ACTIVE_LOGICAL_BYTES
value / POW
(1024, 3)) * active logical bytes pricing) +
((LONG_TERM_LOGICAL_BYTES
value / POW
(1024, 3)) * long-term logical bytes pricing)
Il valore ACTIVE_LOGICAL_BYTES
per una tabella riflette i byte attivi
attualmente utilizzati dalla tabella.
Per i set di dati che utilizzano un modello di fatturazione fisica, puoi prevedere i costi di archiviazione nel seguente modo:
((valore ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES
/ POW
(1024, 3)) * prezzo dei byte fisici attivi) +
((valore LONG_TERM_PHYSICAL_BYTES
/ POW
(1024, 3)) * prezzo dei byte fisici a lungo termine)
Il valore ACTIVE_PHYSICAL_BYTES
per una tabella riflette i byte attivi
attualmente utilizzati dalla tabella più i byte utilizzati per il time travel per quella tabella.
Per visualizzare i byte attivi della sola tabella, sottrai il valore
TIME_TRAVEL_PHYSICAL_BYTES
dal valore
ACTIVE_PHYSICAL_BYTES
.
Per maggiori informazioni, consulta Prezzi di archiviazione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire query sulla visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore metadati BigQuery (roles/bigquery.metadataViewer
) nel progetto.
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.TABLE_STORAGE
. Per vedere quali sono esattamente le autorizzazioni
richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
sono necessarie le seguenti autorizzazioni:
-
bigquery.tables.get
-
bigquery.tables.list
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Schema
La visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE
ha lo schema seguente:
Nome colonna | Tipo di dati | Valore |
---|---|---|
PROJECT_ID |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
PROJECT_NUMBER |
INT64 |
Il numero del progetto che contiene il set di dati. |
TABLE_CATALOG |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
TABLE_SCHEMA |
STRING |
Il nome del set di dati che contiene la tabella o la vista materializzata,
chiamato anche datasetId . |
TABLE_NAME |
STRING |
Il nome della tabella o della vista materializzata, chiamato anche
tableId . |
CREATION_TIME |
TIMESTAMP |
L'ora di creazione della tabella. |
TOTAL_ROWS |
INT64 |
Il numero totale di righe nella tabella o nella vista materializzata. |
TOTAL_PARTITIONS |
INT64 |
Il numero di partizioni presenti nella tabella o nella vista materializzata. Le tabelle non partizionate restituiscono 0. |
TOTAL_LOGICAL_BYTES |
INT64 |
Numero totale di byte logici (non compressi) nella tabella o nella vista materializzata. |
ACTIVE_LOGICAL_BYTES |
INT64 |
Numero di byte logici (non compressi) risalenti a meno di 90 giorni fa. |
LONG_TERM_LOGICAL_BYTES |
INT64 |
Numero di byte logici (non compressi) risalenti a più di 90 giorni fa. |
CURRENT_PHYSICAL_BYTES |
INT64 |
Numero totale di byte fisici per l'archiviazione corrente della tabella in tutte le partizioni. |
TOTAL_PHYSICAL_BYTES |
INT64 |
Numero totale di byte fisici (compressi) utilizzati per l'archiviazione, inclusi i byte attivi, a lungo termine e time travel (dati eliminati o modificati). I byte Fail-Safe (dati eliminati o modificati conservati dopo il periodo di Time-Travel) non sono inclusi. |
ACTIVE_PHYSICAL_BYTES |
INT64 |
Numero di byte fisici (compressi) più recenti di 90 giorni, inclusi i byte con spostamento cronologico (dati eliminati o modificati). |
LONG_TERM_PHYSICAL_BYTES |
INT64 |
Numero di byte fisici (compressi) risalenti a più di 90 giorni fa. |
TIME_TRAVEL_PHYSICAL_BYTES |
INT64 |
Numero di byte fisici (compressi) utilizzati dallo spazio di archiviazione Time Travel (dati eliminati o modificati). |
STORAGE_LAST_MODIFIED_TIME |
TIMESTAMP |
L'ultima volta che i dati sono stati scritti nella tabella. |
DELETED |
BOOLEAN |
Indica se la tabella è stata eliminata o meno. |
TABLE_TYPE |
STRING |
Il tipo di tabella. Ad esempio, BASE TABLE .
|
FAIL_SAFE_PHYSICAL_BYTES |
INT64 |
Numero di byte fisici (compressi) utilizzati dallo spazio di archiviazione fail-safe (dati eliminati o modificati). |
LAST_METADATA_INDEX_REFRESH_TIME |
TIMESTAMP |
L'ultima ora di aggiornamento dell'indice dei metadati della tabella. |
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
Nome vista | Ambito risorsa | Ambito regione |
---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE[_BY_PROJECT] |
Livello progetto | REGION |
-
(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`
.
Il seguente esempio mostra come restituire le informazioni sullo spazio di archiviazione per le tabelle in un progetto specificato:
SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
Il seguente esempio mostra come restituire le informazioni sullo spazio di archiviazione per le tabelle in una regione specificata:
SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT;
Esempi
Esempio 1:
Il seguente esempio mostra i byte logici totali fatturati per il progetto corrente.
SELECT SUM(total_logical_bytes) AS total_logical_bytes FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
Il risultato è simile al seguente:
+---------------------+ | total_logical_bytes | +---------------------+ | 971329178274633 | +---------------------+
Esempio 2:
L'esempio seguente mostra diversi byte di spazio di archiviazione in GiB a livello di set di dati per il progetto corrente.
SELECT table_schema AS dataset_name, -- Logical SUM(total_logical_bytes) / power(1024, 3) AS total_logical_gib, SUM(active_logical_bytes) / power(1024, 3) AS active_logical_gib, SUM(long_term_logical_bytes) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(total_physical_bytes) / power(1024, 3) AS total_physical_gib, SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE WHERE table_type ='BASE TABLE' GROUP BY table_schema ORDER BY dataset_name
Esempio 3:
Il seguente esempio mostra come prevedere la differenza di prezzo per dataset tra i modelli di fatturazione logica e fisica per i prossimi 30 giorni. Questo esempio presuppone che l'utilizzo futuro dello spazio di archiviazione sia costante nei 30 giorni successivi al momento dell'esecuzione della query. Tieni presente che la previsione è limitata alle tabelle di base ed esclude tutti gli altri tipi di tabelle all'interno di un set di dati.
I prezzi utilizzati nelle variabili di prezzo per questa query si riferiscono alla regione us-central1
. Se vuoi eseguire questa query per una regione diversa,
aggiorna le variabili di prezzo in modo appropriato. Per informazioni sui prezzi, vedi
Prezzi di archiviazione.
Apri la pagina BigQuery nella console Google Cloud .
Inserisci la seguente query GoogleSQL nella casella Editor di query.
INFORMATION_SCHEMA
richiede la sintassi GoogleSQL. GoogleSQL è la sintassi predefinita nella console Google Cloud .DECLARE active_logical_gib_price FLOAT64 DEFAULT 0.02; DECLARE long_term_logical_gib_price FLOAT64 DEFAULT 0.01; DECLARE active_physical_gib_price FLOAT64 DEFAULT 0.04; DECLARE long_term_physical_gib_price FLOAT64 DEFAULT 0.02; WITH storage_sizes AS ( SELECT table_schema AS dataset_name, -- Logical SUM(IF(deleted=false, active_logical_bytes, 0)) / power(1024, 3) AS active_logical_gib, SUM(IF(deleted=false, long_term_logical_bytes, 0)) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, -- Restorable previously deleted physical SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib, FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT WHERE total_physical_bytes + fail_safe_physical_bytes > 0 -- Base the forecast on base tables only for highest precision results AND table_type = 'BASE TABLE' GROUP BY 1 ) SELECT dataset_name, -- Logical ROUND(active_logical_gib, 2) AS active_logical_gib, ROUND(long_term_logical_gib, 2) AS long_term_logical_gib, -- Physical ROUND(active_physical_gib, 2) AS active_physical_gib, ROUND(long_term_physical_gib, 2) AS long_term_physical_gib, ROUND(time_travel_physical_gib, 2) AS time_travel_physical_gib, ROUND(fail_safe_physical_gib, 2) AS fail_safe_physical_gib, -- Compression ratio ROUND(SAFE_DIVIDE(active_logical_gib, active_no_tt_physical_gib), 2) AS active_compression_ratio, ROUND(SAFE_DIVIDE(long_term_logical_gib, long_term_physical_gib), 2) AS long_term_compression_ratio, -- Forecast costs logical ROUND(active_logical_gib * active_logical_gib_price, 2) AS forecast_active_logical_cost, ROUND(long_term_logical_gib * long_term_logical_gib_price, 2) AS forecast_long_term_logical_cost, -- Forecast costs physical ROUND((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price, 2) AS forecast_active_physical_cost, ROUND(long_term_physical_gib * long_term_physical_gib_price, 2) AS forecast_long_term_physical_cost, -- Forecast costs total ROUND(((active_logical_gib * active_logical_gib_price) + (long_term_logical_gib * long_term_logical_gib_price)) - (((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price) + (long_term_physical_gib * long_term_physical_gib_price)), 2) AS forecast_total_cost_difference FROM storage_sizes ORDER BY (forecast_active_logical_cost + forecast_active_physical_cost) DESC;
Fai clic su Esegui.
Il risultato è simile al seguente:
+--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset_name | active_logical_gib | long_term_logical_gib | active_physical_gib | long_term_physical_gib | active_compression_ratio | long_term_compression_ratio | forecast_active_logical_cost | forecaset_long_term_logical_cost | forecast_active_physical_cost | forecast_long_term_physical_cost | forecast_total_cost_difference | +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset1 | 10.0 | 10.0 | 1.0 | 1.0 | 10.0 | 10.0 | 0.2 | 0.1 | 0.04 | 0.02 | 0.24 |