Visualizzazione COLUMNS
La visualizzazione INFORMATION_SCHEMA.COLUMNS
contiene una riga per ogni colonna (campo) in una tabella.
Autorizzazioni obbligatorie
Per eseguire una query sulla vista INFORMATION_SCHEMA.COLUMNS
, devi disporre delle seguenti
autorizzazioni IAM (Identity and Access Management):
bigquery.tables.get
bigquery.tables.list
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni precedenti:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
Quando esegui una query sulla vista INFORMATION_SCHEMA.COLUMNS
, i risultati della query contengono una riga per ogni colonna (campo) in 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, indicato anche come datasetId |
TABLE_NAME |
STRING |
Il nome della tabella o della vista, noto anche come tableId |
COLUMN_NAME |
STRING |
Il nome della colonna. |
ORDINAL_POSITION |
INT64 |
L'offset con indice 1 della colonna all'interno della tabella; se si tratta di una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE, il valore è
NULL |
IS_NULLABLE |
STRING |
YES o NO a seconda che la modalità della colonna consenta i valori NULL |
DATA_TYPE |
STRING |
Il tipo di dati GoogleSQL 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 pseudocolonna 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 pseudocolonna 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 con indice 1 della colonna all'interno delle colonne di clustering della tabella; il valore è NULL se la tabella non è in cluster |
COLLATION_NAME |
STRING |
Il nome della specifica di confronto, se esistente; in caso contrario, NULL Se viene trasmesso STRING o ARRAY<STRING> , viene restituita la specifica delle regole di confronto, se esistente; in caso contrario,
viene restituito NULL
|
COLUMN_DEFAULT |
STRING |
Il valore predefinito della colonna, se esistente; in caso contrario, il valore è NULL
|
ROUNDING_MODE |
STRING |
La modalità di arrotondamento utilizzata per i valori scritti nel campo se il tipo è un parametro NUMERIC o BIGNUMERIC parametrizzato; in caso contrario, il valore è NULL
|
Ambito e sintassi
Le query in questa visualizzazione devono includere un set di dati o un qualificatore di 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 illustra gli ambiti delle regioni e delle risorse per questa visualizzazione:
Nome visualizzazione | Ambito risorsa | Ambito regione |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS |
A livello di progetto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
Livello set di dati | Posizione del set di dati |
- (Facoltativo)
PROJECT_ID
: l'ID del 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 ulteriori informazioni, consulta Qualificatore set di dati.
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 per i set di dati pubblici di BigQuery.
Poiché la tabella su cui stai eseguendo la query si trova in un altro progetto, il progetto bigquery-public-data
, devi aggiungere 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 riservate per un uso futuro:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
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 è simile al seguente. Per favorire la leggibilità, alcune colonne sono escluse dal risultato.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+