Visualizzazione TABLE_STORAGE

La visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE fornisce uno snapshot corrente dell'utilizzo dello spazio di archiviazione per tabelle e visualizzazioni materializzate. Quando esegui una query sulla tabella INFORMATION_SCHEMA.TABLE_STORAGE, i risultati della query contengono una riga per ogni tabella o vista materializzata per il progetto corrente. I dati nella visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE non vengono conservati in tempo reale e gli aggiornamenti in genere hanno un ritardo di alcuni secondi o minuti. Le modifiche allo spazio di archiviazione causate solo dalla scadenza di partizioni o tabelle o da modifiche alla finestra di viaggio nel tempo del set di dati potrebbero richiedere fino a un giorno per essere applicate nella visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE.

Le visualizzazioni dello spazio di archiviazione delle tabelle offrono un modo pratico per osservare il consumo attuale di spazio di archiviazione e forniscono dettagli sul fatto che l'archiviazione utilizza byte logici non compressi, byte compressi fisici o byte viaggi nel tempo. Queste informazioni possono aiutarti a svolgere 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 archiviazione. Queste informazioni vengono determinate esaminando l'utilizzo dello spazio di archiviazione per le visualizzazioni 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.

Le copie e gli snapshot mostrano i valori della colonna *_BYTES come se fossero tabelle complete, anziché mostrare la differenza rispetto allo spazio di archiviazione utilizzato dalla tabella di base, pertanto si tratta di una sovrastima. Nella fattura viene preso in considerazione correttamente questo delta nell'utilizzo dello spazio di archiviazione. Per ulteriori informazioni sui byte delta archiviati e fatturati da cloni e 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 si tratta solo di una previsione approssimativa e che gli importi esatti della fatturazione vengono calcolati in base all'utilizzo 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 logico, puoi prevedere i costi di archiviazione mensili come segue:

((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 fisico, puoi prevedere i costi di archiviazione come segue:

((ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES value / POW(1024, 3)) * active physical bytes pricing) + ((LONG_TERM_PHYSICAL_BYTES value / POW(1024, 3)) * long-term physical bytes pricing)

Il valore ACTIVE_PHYSICAL_BYTES per una tabella riflette i byte attivi attualmente utilizzati dalla tabella più i byte utilizzati per il viaggio nel tempo per la tabella.

Per visualizzare solo i byte attivi della tabella, sottrai il valore TIME_TRAVEL_PHYSICAL_BYTES dal valore ACTIVE_PHYSICAL_BYTES.

Per ulteriori 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 Gestire l'accesso a progetti, cartelle e organizzazioni.

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

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 vista INFORMATION_SCHEMA.TABLE_STORAGE ha lo schema seguente:

Nome colonna Tipo di dati Valore
PROJECT_ID STRING L'ID del progetto contenente il set di dati.
PROJECT_NUMBER INT64 Il numero del progetto contenente il set di dati.
TABLE_CATALOG STRING L'ID del progetto contenente 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) che risalgono 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 di viaggio nel tempo (dati eliminati o modificati). I byte di fail-safe (dati eliminati o modificati conservati dopo la finestra di time-travel) non sono inclusi.
ACTIVE_PHYSICAL_BYTES INT64 Numero di byte fisici (compressi) meno 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 del viaggio nel tempo (dati eliminati o modificati).
STORAGE_LAST_MODIFIED_TIME TIMESTAMP L'ora più recente in cui i dati sono stati scritti nella tabella.
DELETED BOOLEAN Indica se la tabella viene eliminata o meno.
TABLE_TYPE STRING Il tipo di tabella. Ad esempio, EXTERNAL o BASE TABLE.
FAIL_SAFE_PHYSICAL_BYTES INT64 Numero di byte fisici (compressi) utilizzati dallo spazio di archiviazione di riserva (dati eliminati o modificati).
LAST_METADATA_INDEX_REFRESH_TIME TIMESTAMP L'ora dell'ultimo aggiornamento dell'indice dei metadati della tabella.

Ambito e sintassi

Le query su questa visualizzazione devono includere un qualificatore regione. La tabella seguente illustra 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
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`.

  • L'esempio seguente mostra come restituire le informazioni sullo spazio di archiviazione per le tabelle di un progetto specificato:

    SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
    

    L'esempio seguente 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:

    L'esempio seguente 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 come prevedere la differenza di prezzo per set di dati 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 all'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 di conseguenza. Per informazioni sui prezzi, vedi Prezzi di archiviazione.

    1. Apri la pagina BigQuery nella console Google Cloud.

      Vai alla pagina BigQuery

    2. 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;
    3. 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 |