Visualizzazione TABELLE

La visualizzazione INFORMATION_SCHEMA.TABLES contiene una riga per ogni tabella o vista in un set di dati. Le visualizzazioni TABLES e TABLE_OPTIONS contengono anche informazioni di alto livello sulle visualizzazioni. Per informazioni dettagliate, esegui una query sulla visualizzazione INFORMATION_SCHEMA.VIEWS.

Autorizzazioni obbligatorie

Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.TABLES, devi disporre delle seguenti autorizzazioni Identity and Access Management (IAM):

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

Ognuno dei seguenti ruoli IAM predefiniti include le autorizzazioni precedenti:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer

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

Schema

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 visualizzazioni, esegui una query sulla visualizzazione INFORMATION_SCHEMA.VIEWS.

La vista INFORMATION_SCHEMA.TABLES ha lo schema seguente:

Nome colonna Tipo di dati Valore
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 visualizzazione. 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_fine_grained_mutations_enabled STRING YES o NO a seconda che le mutazioni DML granulari siano attive nella tabella
is_typed STRING Il valore è sempre NO
is_change_history_enabled STRING YES o NO a seconda che la cronologia delle modifiche sia attivata
creation_time TIMESTAMP L'ora di creazione della tabella
base_table_catalog STRING Per i cloni di tabelle e gli snapshot delle tabelle, il progetto della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
base_table_schema STRING Per i cloni di tabelle e le istantanee delle tabelle, il set di dati della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
base_table_name STRING Per i cloni di tabelle e gli snapshot delle tabelle, il nome della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
snapshot_time_ms TIMESTAMP Per i cloni di tabelle e gli snapshot di tabelle, l'ora in cui è stata eseguita l'operazione di clonazione o di snapshot sulla tabella di base per creare questa tabella. Se è stato utilizzato lo spostamento nel tempo, questo campo contiene il timestamp dello spostamento nel tempo. In caso contrario, il campo snapshot_time_ms è uguale al campo creation_time. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
replica_source_catalog STRING Per le repliche delle viste materializzate, il progetto della vista materializzata di base.
replica_source_schema STRING Per le repliche della vista materializzata, il set di dati della vista materializzata di base.
replica_source_name STRING Per le repliche della vista materializzata, il nome della vista materializzata di base.
replication_status STRING Per le repliche della vista materializzata, lo stato della replica dalla vista materializzata di base alla replica della vista materializzata; uno dei seguenti:
  • REPLICATION_STATUS_UNSPECIFIED
  • ACTIVE: la replica è attiva senza errori
  • SOURCE_DELETED: La vista materializzata di origine è stata eliminata
  • PERMISSION_DENIED: La vista materializzata di origine non è stata autorizzata nel set di dati che contiene le tabelle BigLake di Amazon S3 di origine utilizzate nella query che ha creato la vista materializzata.
  • UNSUPPORTED_CONFIGURATION: si è verificato un problema con i prerequisiti della replica diversi dall'autorizzazione della vista materializzata di origine.
replication_error STRING Se replication_status indica un problema di replica per una replica della vista materializzata, replication_error fornisce ulteriori dettagli sul problema.
ddl STRING L'istruzione DDL che può essere utilizzata per ricreare la tabella, ad esempio CREATE TABLE o CREATE VIEW
default_collation_name STRING Il nome della specifica di regole di confronto predefinita se esiste; altrimenti, NULL.
upsert_stream_apply_watermark TIMESTAMP Per le tabelle che utilizzano Change Data Capture (CDC), l'ora in cui sono state applicate le ultime modifiche alle righe. Per ulteriori informazioni, vedi Monitorare l'avanzamento dell'operazione di upsert della tabella.

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 ulteriori informazioni, 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.TABLES Livello progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES Livello del set di dati Posizione del set di dati
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Trusted 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, vedi Qualificatore del set di dati.

Esempio

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

Esempi

Esempio 1:

L'esempio seguente recupera i metadati della tabella per tutte le tabelle nel set di dati denominato mydataset. I metadati restituiti riguardano tutti i tipi di tabelle in mydataset nel tuo 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.

SELECT
  table_catalog, table_schema, table_name, table_type,
  is_insertable_into, creation_time, ddl
FROM
  mydataset.INFORMATION_SCHEMA.TABLES;

Il risultato è simile al seguente. Per facilitare la lettura, alcune colonne sono escluse dal risultato.

+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| 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 i metadati della tabella per tutte le tabelle di tipo CLONE o SNAPSHOT dalla visualizzazione INFORMATION_SCHEMA.TABLES. I metadati restituiti riguardano le tabelle in mydataset nel tuo 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.

  SELECT
    table_name, table_type, base_table_catalog,
    base_table_schema, base_table_name, snapshot_time_ms
  FROM
    mydataset.INFORMATION_SCHEMA.TABLES
  WHERE
    table_type = 'CLONE'
  OR
    table_type = 'SNAPSHOT';

Il risultato è simile al seguente. Per facilitare la lettura, alcune colonne sono escluse dal risultato.

  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | table_name   | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms    |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | items_clone  | CLONE      | myproject          | mydataset         | items           | 2018-10-31 22:40:05 |
  | orders_bk    | SNAPSHOT   | myproject          | mydataset         | orders          | 2018-11-01 08:22:39 |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+

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 per i set di dati pubblici di BigQuery.

Poiché la tabella su cui stai eseguendo la 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.

SELECT
  table_name, ddl
FROM
  `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
WHERE
  table_name = 'population_by_zip_2010';

Il risultato è simile al 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", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+