Visualizzazione TABLES
La vista INFORMATION_SCHEMA.TABLES
contiene una riga per ogni tabella o visualizzazione in
un set di dati. Le TABLES
e
Le visualizzazioni TABLE_OPTIONS
contengono anche informazioni generali sulle visualizzazioni.
Per informazioni dettagliate, esegui una query
INFORMATION_SCHEMA.VIEWS
.
Autorizzazioni obbligatorie
Per eseguire una query sulla vista INFORMATION_SCHEMA.TABLES
, è necessario quanto segue
Autorizzazioni IAM (Identity and Access Management):
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazioni:
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 su
viste, esegui una query sul INFORMATION_SCHEMA.VIEWS
visualizza invece.
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
come 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
supporta DML INSERT
Estratti conto |
is_typed |
STRING |
Il valore è sempre NO |
creation_time |
TIMESTAMP |
L'ora di creazione della tabella |
base_table_catalog |
STRING |
Per cloni di tabelle
e gli snapshot delle tabelle,
progetto della tabella di base. Applicabile solo a
tabelle con table_type impostato su CLONE o
SNAPSHOT .
|
base_table_schema |
STRING |
Per cloni di tabelle
e gli snapshot delle tabelle,
il set di dati della tabella di base. Applicabile solo alle tabelle con
table_type impostata su CLONE o
SNAPSHOT . |
base_table_name |
STRING |
Per cloni di tabelle
e gli snapshot delle tabelle,
il nome della tabella di base. Applicabile solo alle tabelle con
table_type impostata su CLONE o
SNAPSHOT . |
snapshot_time_ms |
TIMESTAMP |
Per cloni di tabelle
e gli snapshot delle tabelle,
il momento in cui il clone
o istantanea
è stata eseguita sulla tabella di base per creare questa tabella. Se
tempo di viaggio, questo
contiene il timestamp dello spostamento cronologico. In caso contrario,
Il campo snapshot_time_ms è uguale al
creation_time . Applicabile solo a
tabelle con table_type impostato su CLONE o
SNAPSHOT .
|
replica_source_catalog |
STRING |
Per repliche di viste materializzate, progetto della vista materializzata di base. |
replica_source_schema |
STRING |
Per repliche di viste materializzate, il set di dati della vista materializzata di base. |
replica_source_name |
STRING |
Per repliche di viste materializzate, il nome della vista materializzata di base. |
replication_status |
STRING |
Per
repliche di viste materializzate,
lo stato della replica dalla vista materializzata di base
replica della vista materializzata; uno dei seguenti:
|
replication_error |
STRING |
Se replication_status indica un problema di replica per un
replica della vista materializzata,
replication_error fornisce ulteriori dettagli sul problema. |
ddl |
STRING |
L'istruzione DDL
che può essere utilizzato per ricreare la tabella,
CREATE TABLE
o CREATE VIEW |
default_collation_name |
STRING |
Il nome della specifica 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 la riga l'ultima modifica apportata. Per ulteriori informazioni, vedi Monitora l'avanzamento dell'operazione di upsert della tabella. |
Ambito e sintassi
Le query su questa vista devono includere un set di dati o un qualificatore di regione. Per con un qualificatore del set di dati, devi disporre delle autorizzazioni per il set di dati. Per le query con un qualificatore della regione, devi disporre delle autorizzazioni per il progetto. Per maggiori informazioni per le informazioni, consulta Sintassi. La tabella seguente illustra gli ambiti delle risorse e delle regioni per questa vista:
Nome vista | Ambito risorsa | Ambito della 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 |
- (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
.
+ DATASET_ID
: l'ID del set di dati. Per maggiori informazioni
consulta la sezione 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 di una tabella per tutte le tabelle nel
set di dati denominato mydataset
. I metadati
restituito per tutti i tipi di tabelle in mydataset
del progetto predefinito.
mydataset
contiene le seguenti tabelle:
mytable1
: una tabella BigQuery standardmyview1
: una vista BigQuery
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi
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 migliorare la leggibilità, alcune colonne 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 di una tabella per tutte le tabelle di tipo CLONE
o SNAPSHOT
dalla visualizzazione INFORMATION_SCHEMA.TABLES
. I metadati restituiti
è per le tabelle in mydataset
nel progetto predefinito.
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi
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 migliorare la leggibilità, alcune colonne 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
da INFORMATION_SCHEMA.TABLES
per la tabella population_by_zip_2010
nel
census_bureau_usa
del set di dati. Questo set di dati fa parte di BigQuery
programma set di dati pubblici.
Poiché la tabella su cui stai eseguendo query si trova in un altro progetto, aggiungi l'ID progetto al set di dati in
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", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+