Recupero dei metadati della tabella tramite INFORMATION_SCHEMA

Le seguenti viste INFORMATION_SCHEMA contengono i metadati della tabella:

  • TABLES e TABLE_OPTIONS per i metadati relativi alle tabelle
  • COLUMNS e COLUMN_FIELD_PATHS per i metadati relativi a colonne e campi
  • PARTITIONS per i metadati sulle partizioni della tabella (anteprima)
  • TABLE_STORAGE per i metadati sull'utilizzo corrente dello spazio di archiviazione della tabella (anteprima)
  • TABLE_STORAGE_TIMELINE_BY_PROJECT e TABLE_STORAGE_TIMELINE_BY_ORGANIZATION per i metadati sull'utilizzo storico di spazio di archiviazione nelle tabelle (anteprima)

Le viste spazio di archiviazione della tabella consentono di osservare facilmente il consumo corrente e storico di archiviazione, inclusi i byte logici, compressi e di manutenzione. Queste informazioni possono aiutarti, ad esempio, a pianificare la crescita futura e a comprendere i pattern di aggiornamento per le tabelle, anche per quelle che non dispongono di una colonna timestamp last_update come parte dello schema.

TABLES e TABLE_OPTIONS contengono anche informazioni generali sulle viste. Per informazioni dettagliate, esegui una query sulla visualizzazione INFORMATION_SCHEMA.VIEWS.

Prima di iniziare

Concedi ruoli IAM (Identity and Access Management) che consentono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento.

Autorizzazioni obbligatorie

Utilizza la seguente tabella per comprendere quali autorizzazioni IAM sono necessarie per eseguire query su INFORMATION_SCHEMA viste.

Tieni presente che, per la visualizzazione INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION, devi disporre delle autorizzazioni concesse a livello di organizzazione. Le altre viste richiedono solo le autorizzazioni concesse a livello di progetto. Per ulteriori informazioni, consulta Gestire l'accesso ai progetti, alle cartelle e all'organizzazione.

Visualizza Autorizzazioni Ruoli che concedono queste autorizzazioni
TABLES bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
TABLE_OPTIONS bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
COLUMNS bigquery.tables.get
bigquery.tables.list
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
COLUMN_FIELD_PATHS bigquery.tables.get
bigquery.tables.list
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
PARTITIONS bigquery.tables.get
bigquery.tables.getData
bigquery.tables.list
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataViewer
TABLE_STORAGE bigquery.tables.get
bigquery.tables.list
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
TABLE_STORAGE_TIMELINE_BY_ORGANIZATION

TABLE_STORAGE_TIMELINE_BY_PROJECT
bigquery.tables.get
bigquery.tables.list

roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.dataViewer
roles/bigquery.metadataViewer

Per ulteriori informazioni sulle autorizzazioni granulari per BigQuery, consulta i ruoli e autorizzazioni.

Syntax

Le query relative a una di queste viste devono avere un set di dati o un qualificatore di area geografica.

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

-- Returns metadata for tables in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.TABLES;

Per le query con un qualificatore di set di dati, devi disporre delle autorizzazioni per il set di dati. Per le query con un qualificatore di area geografica, devi disporre delle autorizzazioni per il progetto.

TABLES visualizzazione

Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLES, i risultati della query contengono una riga per ogni tabella o vista in un set di dati. Per informazioni dettagliate sulle viste, esegui una query sulla vista INFORMATION_SCHEMA.VIEWS.

La vista INFORMATION_SCHEMA.TABLES ha il seguente schema:

Nome colonna Tipo di dati Valore
table_catalog STRING L'ID del progetto che contiene il set di dati.
table_schema STRING Il nome del set di dati che contiene la tabella o la vista. Chiamato anche datasetId.
table_name STRING Il nome della tabella o della visualizzazione. Chiamato anche tableId.
table_type STRING Il tipo di tabella; uno dei seguenti:
is_insertable_into STRING YES o NO, a seconda che la tabella supporti le istruzioni DML INSERT
is_typed STRING Il valore è sempre NO
creation_time TIMESTAMP Ora di creazione della tabella
ddl STRING L'istruzione DDL che può essere utilizzata per ricreare la tabella, come CREATE TABLE o CREATE VIEW
clone_time TIMESTAMP Per i cloni di una tabella (anteprima), il momento in cui la tabella di base è stata clonata per creare questa tabella. Se è stato utilizzato il tempo di viaggio, questo campo contiene il timestamp relativo al viaggio nel tempo. In caso contrario, il campo clone_time è uguale al campo creation_time. Applicabile solo alle tabelle con table_type impostato su CLONE.
base_table_catalog STRING Per i cloni di una tabella (Anteprima), il progetto della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE.
base_table_schema STRING Per i cloni di una tabella (Anteprima), il set di dati della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE.
base_table_name STRING Per i cloni di tabella (Anteprima), il nome della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE.
default_collation_name STRING Il nome della specifica di confronto predefinita se esistente; in caso contrario, NULL.

Query di esempio

Esempio 1:

L'esempio seguente recupera i metadati della tabella per tutte le tabelle nel set di dati denominato mydataset. La query seleziona tutte le colonne dalla visualizzazione INFORMATION_SCHEMA.TABLES ad eccezione di is_typed, che è riservata per l'utilizzo futuro, e ddl, che è nascosta dalle query SELECT *. I metadati restituiti sono relativi a tutte le tabelle in mydataset nel progetto predefinito.

mydataset contiene le seguenti tabelle:

  • mytable1: una tabella BigQuery standard
  • myview1: una vista BigQuery

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.view, ad esempio `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     * EXCEPT(is_typed)
    FROM
     mydataset.INFORMATION_SCHEMA.TABLES
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_typed)
 FROM
   mydataset.INFORMATION_SCHEMA.TABLES'

Il risultato dovrebbe essere simile all'esempio seguente. Per una migliore leggibilità, alcune colonne sono escluse dai risultati.

+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |                     ddl                     |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| myproject      | mydataset     | mytable1       | BASE TABLE | YES                | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` |
|                |               |                |            |                    |                     | (                                           |
|                |               |                |            |                    |                     |   id INT64                                  |
|                |               |                |            |                    |                     | );                                          |
| myproject      | mydataset     | myview1        | VIEW       | NO                 | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1`   |
|                |               |                |            |                    |                     | AS SELECT 100 as id;                        |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Esempio 2:

L'esempio seguente recupera tutte le tabelle di tipo BASE TABLE dalla visualizzazione INFORMATION_SCHEMA.TABLES. La colonna is_typed è esclusa e la colonna ddl è nascosta. I metadati restituiti servono per le tabelle in mydataset nel progetto predefinito.

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.view, ad esempio `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     * EXCEPT(is_typed)
    FROM
     mydataset.INFORMATION_SCHEMA.TABLES
    WHERE
     table_type="BASE TABLE"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_typed)
 FROM
   mydataset.INFORMATION_SCHEMA.TABLES
 WHERE
   table_type="BASE TABLE"'

Il risultato dovrebbe essere simile all'esempio seguente. Per una migliore leggibilità, alcune colonne sono escluse dai risultati.

  +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
  | table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |                     ddl                     |
  +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
  | myproject      | mydataset     | mytable1       | BASE TABLE | YES                | 2018-10-31 22:40:05 | CREATE TABLE myproject.mydataset.mytable1 |
  |                |               |                |            |                    |                     | (                                           |
  |                |               |                |            |                    |                     |   id INT64                                  |
  |                |               |                |            |                    |                     | );                                          |
  +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
  

Esempio 3:

L'esempio seguente recupera le colonne table_name e ddl dalla visualizzazione INFORMATION_SCHEMA.TABLES per la tabella population_by_zip_2010 nel set di dati census_bureau_usa. Questo set di dati fa parte del programma del set di dati pubblico BigQuery.

Poiché la tabella su cui stai eseguendo le query si trova in un altro progetto, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view. In questo esempio, il valore è `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     table_name, ddl
    FROM
     `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
    WHERE
     table_name="population_by_zip_2010"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   table_name, ddl
 FROM
   `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
 WHERE
   table_name="population_by_zip_2010"'

Il risultato dovrebbe essere simile all'esempio seguente:

+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|       table_name       |                                                                                                            ddl                                                                                                             |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010`                                                                                                                                               |
|                        | (                                                                                                                                                                                                                          |
|                        |   geo_id STRING OPTIONS(description="Geo code"),                                                                                                                                                                           |
|                        |   zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"),                                                                                                                          |
|                        |   population INT64 OPTIONS(description="The total count of the population for this segment."),                                                                                                                             |
|                        |   minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."),                                                          |
|                        |   maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), |
|                        |   gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.")                                                                                                                    |
|                        | )                                                                                                                                                                                                                          |
|                        | OPTIONS(                                                                                                                                                                                                                   |
|                        |   labels=[("freebqcovid", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  

TABLE_OPTIONS visualizzazione

Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLE_OPTIONS, i risultati della query contengono una riga per ogni opzione, per ogni tabella o vista in un set di dati. Per informazioni dettagliate sulle viste, esegui una query sulla vista INFORMATION_SCHEMA.VIEWS.

La vista INFORMATION_SCHEMA.TABLE_OPTIONS ha il seguente schema:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING L'ID del progetto che contiene il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella o la vista denominata datasetId
TABLE_NAME STRING Nome della tabella o della visualizzazione, detto anche tableId
OPTION_NAME STRING Uno dei valori del nome nella tabella delle opzioni
OPTION_TYPE STRING Uno dei valori del tipo di dati nella tabella delle opzioni
OPTION_VALUE STRING Una delle opzioni di valore nella tabella delle opzioni
Tabella opzioni
OPTION_NAME OPTION_TYPE OPTION_VALUE
partition_expiration_days FLOAT64 La durata predefinita, in giorni, di tutte le partizioni in una tabella partizionata
expiration_timestamp FLOAT64 L'ora di scadenza di questa tabella
kms_key_name STRING Il nome della chiave Cloud KMS utilizzata per criptare la tabella
friendly_name STRING Il nome descrittivo della tabella
description STRING Una descrizione della tabella
labels ARRAY<STRUCT<STRING, STRING>> Un array di STRUCT che rappresenta le etichette nella tabella
require_partition_filter BOOL Se le query sulla tabella richiedono un filtro di partizionamento
enable_refresh BOOL Indica se l'aggiornamento automatico è abilitato per una vista materializzata
refresh_interval_minutes FLOAT64 Frequenza di aggiornamento di una vista materializzata

Per le tabelle esterne sono possibili anche le seguenti opzioni:

Opzioni
allow_jagged_rows

BOOL

Se true, consenti le righe che non hanno le colonne finali facoltative.

Si applica ai dati CSV.

allow_quoted_newlines

BOOL

Se true, consenti le sezioni di dati tra virgolette che contengono caratteri di nuova riga nel file.

Si applica ai dati CSV.

compression

STRING

Il tipo di compressione dell'origine dati. I valori supportati includono: GZIP. Se non specificato, l'origine dati non è compressa.

Si applica ai dati CSV e JSON.

enable_logical_types

BOOL

Se true, converti i tipi logici Avro nei tipi SQL corrispondenti. Per maggiori informazioni, consulta Tipi di log.

Si applica ai dati Avro.

encoding

STRING

La codifica dei caratteri dei dati. I valori supportati includono: UTF8 (o UTF-8), ISO_8859_1 (o ISO-8859-1).

Si applica ai dati CSV.

field_delimiter

STRING

Separatore per i campi in un file CSV.

Si applica ai dati CSV.

format

STRING

Il formato dei dati esterni. I valori supportati includono: AVRO, CSV, DATASTORE_BACKUP, GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (o JSON), ORC, PARQUET.

Il valore JSON equivale a NEWLINE_DELIMITED_JSON.

decimal_target_types

ARRAY<STRING>

Determina come convertire un tipo di Decimal. Equivalente a ExternalDataConfiguration.decimal_target_types

Esempio: ["NUMERIC", "BIGNUMERIC"].

json_extension

STRING

Per i dati JSON, indica un particolare formato di interscambio JSON. Se non specificato, BigQuery legge i dati come record JSON generici.

I valori supportati includono:
GEOJSON. Dati GeoJSON delimitati da nuova riga. Per ulteriori informazioni, consulta la sezione Creazione di una tabella esterna da un file GeoJSON delimitato da nuova riga.

hive_partition_uri_prefix

STRING

Un prefisso comune per tutti gli URI di origine prima dell'inizio della codifica della chiave di partizione. Si applica solo alle tabelle esterne partizionate in hive.

Si applica ai dati Avro, CSV, JSON, Parquet e ORC.

Esempio: "gs://bucket/path".

ignore_unknown_values

BOOL

Se true, ignora i valori aggiuntivi che non sono rappresentati nello schema della tabella, senza restituire un errore.

Si applica ai dati CSV e JSON.

max_bad_records

INT64

Il numero massimo di record non validi da ignorare durante la lettura dei dati.

Applicabile a dati CSV, JSON e Fogli.

null_marker

STRING

La stringa che rappresenta i valori NULL in un file CSV.

Si applica ai dati CSV.

projection_fields

STRING

Un elenco di proprietà dell'entità da caricare.

Si applica ai dati di Datastore.

quote

STRING

La stringa utilizzata per citare le sezioni di dati in un file CSV. Se i dati contengono caratteri di nuova riga tra virgolette, imposta anche la proprietà allow_quoted_newlines su true.

Si applica ai dati CSV.

require_hive_partition_filter

BOOL

Se true, tutte le query in questa tabella richiedono un filtro di partizionamento che può essere utilizzato per eliminare le partizioni durante la lettura dei dati. Si applica solo alle tabelle esterne partizionate in hive.

Si applica ai dati Avro, CSV, JSON, Parquet e ORC.

sheet_range

STRING

Intervallo di un foglio di lavoro di Fogli da cui eseguire la query.

Si applica ai dati di Fogli.

Esempio: “sheet1!A1:B20”,

skip_leading_rows

INT64

Il numero di righe nella parte superiore di un file da saltare durante la lettura dei dati.

Si applica ai dati in formato CSV e Fogli.

uris

ARRAY<STRING>

Un array di URI completi per le località dei dati esterni.

Esempio: ["gs://bucket/path/*"].

Query di esempio

Esempio 1:

L'esempio seguente recupera le scadenze predefinite delle tabelle per tutte le tabelle in mydataset nel tuo progetto predefinito (myproject) eseguendo una query sulla visualizzazione INFORMATION_SCHEMA.TABLE_OPTIONS.

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.view, ad esempio `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     *
    FROM
     mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
    WHERE
     option_name="expiration_timestamp"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
 WHERE
   option_name="expiration_timestamp"'

Il risultato dovrebbe essere simile all'esempio seguente:

  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | table_catalog  | table_schema  | table_name |     option_name      | option_type |             option_value             |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | myproject      | mydataset     | mytable1   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2020-01-16T21:12:28.000Z" |
  | myproject      | mydataset     | mytable2   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2021-01-01T21:12:28.000Z" |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  

Esempio 2:

L'esempio seguente recupera i metadati relativi a tutte le tabelle in mydataset che contengono dati di test. La query utilizza i valori dell'opzione description per trovare tabelle che contengono "test" in qualsiasi punto della descrizione. 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.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     *
    FROM
     mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
    WHERE
     option_name="description" AND option_value LIKE "%test%"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
 WHERE
   option_name="description" AND option_value LIKE "%test%"'

Il risultato dovrebbe essere simile all'esempio seguente:

  +----------------+---------------+------------+-------------+-------------+--------------+
  | table_catalog  | table_schema  | table_name | option_name | option_type | option_value |
  +----------------+---------------+------------+-------------+-------------+--------------+
  | myproject      | mydataset     | mytable1   | description | STRING      | "test data"  |
  | myproject      | mydataset     | mytable2   | description | STRING      | "test data"  |
  +----------------+---------------+------------+-------------+-------------+--------------+
  

COLUMNS visualizzazione

Quando esegui una query sulla vista INFORMATION_SCHEMA.COLUMNS, i risultati della query contengono una riga per ogni colonna (campo) di una tabella.

La vista INFORMATION_SCHEMA.COLUMNS ha il seguente schema:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING L'ID del progetto che contiene il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella, detto anche datasetId
TABLE_NAME STRING Nome della tabella o della visualizzazione, detto anche tableId
COLUMN_NAME STRING Il nome della colonna.
ORDINAL_POSITION INT64 L'offset con 1 indice della colonna all'interno della tabella; se è una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE, il valore è NULL
IS_NULLABLE STRING YES o NO a seconda che la modalità della colonna consenta o meno i valori NULL
DATA_TYPE STRING Il tipo di dati SQL standard della colonna.
IS_GENERATED STRING Il valore è sempre NEVER
GENERATION_EXPRESSION STRING Il valore è sempre NULL
IS_STORED STRING Il valore è sempre NULL
IS_HIDDEN STRING YES o NO a seconda che la colonna sia una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE
IS_UPDATABLE STRING Il valore è sempre NULL
IS_SYSTEM_DEFINED STRING YES o NO a seconda che la colonna sia una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE
IS_PARTITIONING_COLUMN STRING YES o NO a seconda che la colonna sia o meno una colonna di partizionamento
CLUSTERING_ORDINAL_POSITION INT64 L'offset indicizzato a 1 della colonna all'interno delle colonne di clustering della tabella; il valore è NULL se la tabella non è una tabella in cluster.
COLLATION_NAME STRING Il nome della specifica di confronto se esistente; in caso contrario, il valore NULL

Se viene inviato il messaggio STRING o ARRAY<STRING>, viene restituita la specifica di confronto, se esistente. In caso contrario, viene restituito NULL

Query di esempio

L'esempio seguente recupera i metadati dalla vista INFORMATION_SCHEMA.COLUMNS per la tabella population_by_zip_2010 nel set di dati census_bureau_usa. Questo set di dati fa parte del programma del set di dati pubblico BigQuery.

Poiché la tabella su cui stai eseguendo le query si trova in un altro progetto, nel progetto bigquery-public-data, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

Le seguenti colonne sono escluse dai risultati della query perché al momento sono prenotate per un uso futuro:

  • IS_GENERATED
  • GENERATION_EXPRESSION
  • IS_STORED
  • IS_UPDATABLE

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
    FROM
     `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
    WHERE
     table_name="population_by_zip_2010"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
 FROM
   `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
 WHERE
   table_name="population_by_zip_2010"'

Il risultato dovrebbe essere simile all'esempio seguente. Per una migliore leggibilità, alcune colonne sono escluse dai risultati.

+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
|       table_name       | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
| population_by_zip_2010 | zipcode     |                1 | NO          | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | geo_id      |                2 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | minimum_age |                3 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | maximum_age |                4 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | gender      |                5 | YES         | STRING    | NO        | NO                | NO                     |                        NULL |
| population_by_zip_2010 | population  |                6 | YES         | INT64     | NO        | NO                | NO                     |                        NULL |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
  

COLUMN_FIELD_PATHS visualizzazione

I risultati delle query contengono una riga per ogni colonna nidetta all'interno di una colonna RECORD (o STRUCT).

Quando esegui una query sulla vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, i risultati delle query contengono una riga per ogni colonna nidizzata all'interno di una colonna RECORD (o STRUCT).

La vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS ha il seguente schema:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING L'ID del progetto che contiene il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella, detto anche datasetId
TABLE_NAME STRING Nome della tabella o della visualizzazione, detto anche tableId
COLUMN_NAME STRING Il nome della colonna.
FIELD_PATH STRING Percorso di una colonna nidizzata in una colonna"RECORD"o"STRUCT"
DATA_TYPE STRING Il tipo di dati SQL standard della colonna.
DESCRIPTION STRING La descrizione della colonna
COLLATION_NAME STRING Il nome della specifica di confronto se esistente; altrimenti, NULL

Se viene passato un campo STRING, ARRAY<STRING> o STRING in un STRUCT, la specifica di restituzione viene restituita se esiste; altrimenti viene restituito NULL

Query di esempio

L'esempio seguente recupera i metadati dalla vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS per la tabella commits nel set di dati github_repos. Questo set di dati fa parte del programma del set di dati pubblico BigQuery.

Poiché la tabella su cui stai eseguendo le query si trova in un altro progetto, nel progetto bigquery-public-data, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.

La tabella commits contiene le seguenti colonne nidificate, nidificate e ripetute:

  • author: colonna RECORD nidificata
  • committer: colonna RECORD nidificata
  • trailer: colonna RECORD nidificata e ripetuta
  • difference: colonna RECORD nidificata e ripetuta

La query recupererà i metadati sulle colonne author e difference.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     *
    FROM
     `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
    WHERE
     table_name="commits"
     AND column_name="author"
     OR column_name="difference"
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
 WHERE
   table_name="commits"
   AND column_name="author"
   OR column_name="difference"'

Il risultato dovrebbe essere simile all'esempio seguente. Per una migliore leggibilità, alcune colonne sono escluse dai risultati.

  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | table_name | column_name |     field_path      |                                                                      data_type                                                                      | description |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        |
  | commits    | difference  | difference          | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL        |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  

PARTITIONS visualizzazione

Quando esegui una query sulla vista INFORMATION_SCHEMA.PARTITIONS, i risultati della query contengono una riga per ogni partizione.

La vista INFORMATION_SCHEMA.PARTITIONS ha il seguente schema:

Nome colonna Tipo di dati Valore
TABLE_CATALOG STRING L'ID del progetto che contiene la tabella
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella, noto anche come datasetId
TABLE_NAME STRING Il nome della tabella, noto anche come tableId
PARTITION_ID STRING Un'unica partizione: ID. Per le tabelle non partizionate, il valore è NULL. Per le tabelle partizionate che contengono righe con valori NULL nella colonna di partizionamento, il valore è __NULL__.
TOTAL_ROWS INTEGER Il numero totale di righe nella partizione
TOTAL_LOGICAL_BYTES INTEGER Il numero totale di byte logici nella partizione
TOTAL_BILLABLE_BYTES INTEGER Il numero totale di byte fatturabili nella partizione
LAST_MODIFIED_TIME TIMESTAMP L'ora in cui i dati sono stati scritti più di recente nella partizione
STORAGE_TIER STRING Livello di archiviazione della partizione:

Query di esempio

L'esempio seguente calcola la quantità di byte utilizzati da ogni livello di archiviazione in tutte le tabelle di un set di dati denominato mydataset.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT storage_tier, SUM(total_billable_bytes) billable_bytes
    FROM `mydataset.INFORMATION_SCHEMA.PARTITIONS`
    GROUP BY storage_tier
    
  3. Fai clic su Esegui.

bq

Utilizza il comando query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
'SELECT storage_tier, SUM(total_billable_bytes) billable_bytes
 FROM `mydataset.INFORMATION_SCHEMA.PARTITIONS`
 GROUP BY storage_tier'

I risultati sono simili alla seguente tabella.

  +--------------+----------------+
  | storage_tier | billable_bytes |
  +--------------+----------------+
  | LONG_TERM    |  1311495144879 |
  | ACTIVE       |    66757629240 |
  +--------------+----------------+
  

TABLE_STORAGE visualizzazione

SELECT
  CONCAT(v1.table_catalog, ":", v1.table_schema, ".", v1.table_name) AS unmodified_table_name,
FROM
  `region-REGION`.INFORMATION_SCHEMA.TABLES v1
LEFT JOIN `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE v2 ON v1.table_name = v2.table_name
WHERE v2.table_name IS NULL;

La vista INFORMATION_SCHEMA.TABLE_STORAGE fornisce uno snapshot corrente dell'utilizzo dello spazio di archiviazione per tabelle e viste materializzate. Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLE_STORAGE, i risultati delle query contengono una riga per ogni tabella o vista materializzata. I dati in questa tabella non vengono conservati in tempo reale e potrebbero subire un ritardo di alcuni secondi o qualche minuto.

I dati delle viste sono suddivisi per area geografica, pertanto è necessario utilizzare un qualificatore di area geografica nelle query. Se non specifichi un progetto, viene utilizzato il progetto predefinito.

I seguenti esempi mostrano come restituire i dati da un progetto o un'area geografica.

Restituisce le informazioni di archiviazione per le tabelle in un progetto specificato:

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

Restituisce informazioni di archiviazione per le tabelle in un'area geografica specificata:

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

La vista INFORMATION_SCHEMA.TABLE_STORAGE ha il seguente schema:

Nome colonna Tipo di dati Valore
PROJECT_ID STRING L'ID del progetto che contiene il set di dati
PROJECT_NAME INT64 Il numero del progetto contenente il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella o la vista materializzata, noto anche come datasetId
TABLE_NAME STRING Il nome della tabella o della vista materializzata, noto anche come tableId
CREATION_TIME TIMESTAMP 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 nella tabella o nella vista materializzata
ACTIVE_LOGICAL_BYTES INT64 Numero di byte logici da meno di 90 giorni
LONG_TERM_LOGICAL_BYTES INT64 Numero di byte logici risalenti a più di 90 giorni prima
TOTAL_PHYSICAL_BYTES INT64 Numero totale di byte fisici utilizzati per l'archiviazione, inclusi byte attivi, a lungo termine e nel tempo (per le tabelle eliminate)
ACTIVE_PHYSICAL_BYTES INT64 Numero di byte fisici precedenti a 90 giorni
LONG_TERM_PHYSICAL_BYTES INT64 Numero di byte fisici precedenti a 90 giorni
TIME_TRAVEL_PHYSICAL_BYTES INT64 Numero di byte fisici utilizzati dallo spazio di archiviazione per un viaggio nel tempo (dati eliminati o modificati)

Esempi

L'esempio seguente mostra i progetti della tua organizzazione che attualmente utilizzano la maggiore quantità di spazio di archiviazione.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     project_id,
     SUM(total_logical_bytes) AS total_logical_bytes
    FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE
    GROUP BY
     project_id
    ORDER BY
     total_logical_bytes DESC;
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
   'SELECT
     project_id,
     SUM(total_logical_bytes) AS total_logical_bytes
   FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE
   GROUP BY
     project_id
   ORDER BY
     total_logical_bytes DESC;'

Il risultato dovrebbe essere simile all'esempio seguente:

+---------------------+---------------------+
|     project_id      | total_logical_bytes |
+---------------------+---------------------+
| projecta            |     971329178274633 |
+---------------------+---------------------+
| projectb            |     834638211024843 |
+---------------------+---------------------+
| projectc            |     562910385625126 |
+---------------------+---------------------+

TABLE_STORAGE_TIMELINE_BY_* visualizzazioni

Le visualizzazioni della sequenza temporale di archiviazione della tabella restituiscono una riga per ogni evento che attiva una modifica dello spazio di archiviazione per la tabella, ad esempio la scrittura, l'aggiornamento o l'eliminazione di una riga. Ciò significa che possono esserci più righe per una tabella in un solo giorno. Quando esegui una query su una vista per un intervallo di tempo, utilizza il timestamp più recente il giorno di interesse.

Sono disponibili le seguenti visualizzazioni della sequenza temporale di archiviazione della tabella:

  • INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_PROJECT restituisce le informazioni per tutte le tabelle nel progetto corrente o specificato.
  • INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION restituisce le informazioni per tutte le tabelle nella cartella principale del progetto corrente o specificato, inclusi i progetti nelle sottocartelle.

I dati delle viste sono suddivisi per area geografica, pertanto è necessario utilizzare un qualificatore di area geografica nelle query.

Le visualizzazioni della sequenza temporale di archiviazione tabella hanno il seguente schema:

Nome colonna Tipo di dati Valore
TIMESTAMP TIMESTAMP Timestamp relativo all'ultimo calcolo dello spazio di archiviazione. Il ricalcolo viene attivato dalle modifiche ai dati nella tabella.
DELETED BOOLEAN Indica se la tabella è stata eliminata o meno
PROJECT_ID STRING L'ID del progetto che contiene il set di dati
PROJECT_NAME INT64 Il numero del progetto contenente il set di dati
TABLE_SCHEMA STRING Il nome del set di dati che contiene la tabella o la vista materializzata, noto anche come datasetId
TABLE_NAME STRING Il nome della tabella o della vista materializzata, noto anche come tableId
CREATION_TIME TIMESTAMP 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 della tabella o della vista materializzata. Le tabelle non partizionate restituiranno 0.
TOTAL_LOGICAL_BYTES INT64 Numero totale di byte logici nella tabella o nella vista materializzata
ACTIVE_LOGICAL_BYTES INT64 Numero di byte logici da meno di 90 giorni
LONG_TERM_LOGICAL_BYTES INT64 Numero di byte logici risalenti a più di 90 giorni prima
TOTAL_PHYSICAL_BYTES INT64 Numero totale di byte fisici utilizzati per l'archiviazione, inclusi byte attivi, a lungo termine e nel tempo (per le tabelle eliminate)
ACTIVE_PHYSICAL_BYTES INT64 Numero di byte fisici precedenti a 90 giorni
LONG_TERM_PHYSICAL_BYTES INT64 Numero di byte fisici precedenti a 90 giorni
TIME_TRAVEL_PHYSICAL_BYTES INT64 Numero di byte fisici utilizzati dallo spazio di archiviazione per un viaggio nel tempo (dati eliminati o modificati)

Esempi

Esempio 1:

L'esempio seguente mostra le tabelle che utilizzano la maggiore quantità di spazio di archiviazione in un set di dati specifico.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    SELECT
     timestamp AS start_time,
     table_name,
     total_logical_bytes
    FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_PROJECT
    WHERE
     table_schema = "TABLE_SCHEMA"
    AND
     table_name = "TABLE_NAME"
    ORDER BY
     start_time DESC;
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
   'SELECT
     timestamp AS start_time,
     table_name,
     total_logical_bytes
   FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_PROJECT
   WHERE
     table_schema = "TABLE_SCHEMA"
   AND
     table_name = "TABLE_NAME"
   ORDER BY
     start_time DESC;'

Il risultato dovrebbe essere simile all'esempio seguente:

------------------------+---------------------+----------------------+
|         start_time    |      table_name     | total_logical_bytes  |
+-----------------------+---------------------+----------------------+
| 2022-03-30 17:39:54   | table1              |              322     |
| 2022-03-30 17:39:54   | table2              |              1657    |
| 2022-03-30 17:39:53   | table1              |              320     |
| 2022-03-30 17:39:53   | table2              |              1655    |
+-----------------------+---------------------+----------------------+

Esempio 2:

L'esempio seguente mostra la somma dello spazio di archiviazione fisico utilizzato da ciascun progetto nella tua organizzazione per un determinato momento.

Per eseguire la query:

Console

  1. Apri la pagina BigQuery in Cloud Console.

    Vai alla pagina BigQuery

  2. Inserisci la seguente query SQL standard nella casella Editor query. INFORMATION_SCHEMA richiede la sintassi SQL standard. SQL standard è la sintassi predefinita in Cloud Console.

    WITH most_recent_records as (
     SELECT
       project_id,
       table_schema,
       table_name,
       MAX(timestamp) as max_timestamp
     FROM
       `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION
     WHERE
       timestamp <= "TIMESTAMP"
     GROUP BY
       project_id, table_schema, table_name
    )
    SELECT
     i_s.project_id,
     SUM(i_s.total_physical_bytes) AS TotalPhysicalBytes
    FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION as i_s
    JOIN
     most_recent_records
    ON
     i_s.project_id=most_recent_records.project_id AND
     i_s.table_schema=most_recent_records.table_schema AND
     i_s.table_name=most_recent_records.table_name AND
     i_s.timestamp = most_recent_records.max_timestamp
    GROUP BY
     project_id;
    
  3. Fai clic su Esegui.

bq

Utilizza il comando bq query e specifica la sintassi SQL standard usando il flag --nouse_legacy_sql o --use_legacy_sql=false. La sintassi SQL standard è obbligatoria per le query INFORMATION_SCHEMA.

Per eseguire la query, inserisci:

bq query --nouse_legacy_sql \
  'WITH most_recent_records as (
     SELECT
       project_id,
       table_schema,
       table_name,
       MAX(timestamp) as max_timestamp
     FROM
       `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION
     WHERE
       timestamp <= "TIMESTAMP"
     GROUP BY
       project_id, table_schema, table_name
   )
   SELECT
     i_s.project_id,
     SUM(i_s.total_physical_bytes) AS TotalPhysicalBytes
   FROM
     `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE_BY_ORGANIZATION as i_s
   JOIN
     most_recent_records
   ON
     i_s.project_id=most_recent_records.project_id AND
     i_s.table_schema=most_recent_records.table_schema AND
     i_s.table_name=most_recent_records.table_name AND
     i_s.timestamp = most_recent_records.max_timestamp
   GROUP BY
     project_id;'

Il risultato dovrebbe essere simile all'esempio seguente:

-----------------+------------------------+
|  project_id    |  TotalPhysicalBytes    |
+----------------+------------------------+
| projecta       | 3844                   |
| projectb       | 16022778               |
| projectc       | 8934009                |
+----------------+------------------------+