visualizzazione COLUMNS
La vista INFORMATION_SCHEMA.COLUMNS
contiene una riga per ogni colonna
(campo) in una tabella.
Autorizzazioni obbligatorie
Per eseguire una query sulla vista INFORMATION_SCHEMA.COLUMNS
, è necessario quanto segue
Autorizzazioni IAM (Identity and Access Management):
bigquery.tables.get
bigquery.tables.list
Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazioni:
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, chiamata anche
datasetId |
TABLE_NAME |
STRING |
Il nome della tabella o della vista indicato anche come tableId |
COLUMN_NAME |
STRING |
Il nome della colonna |
ORDINAL_POSITION |
INT64 |
L'offset indicizzato con 1 della colonna all'interno della tabella; se si tratta di uno pseudo
colonna come _PARTITIONTIME o _PARTITIONDATE, il valore è
NULL |
IS_NULLABLE |
STRING |
YES o NO a seconda che la colonna
consente NULL valori |
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
una colonna di partizionamento |
CLUSTERING_ORDINAL_POSITION |
INT64 |
L'offset indicizzato con 1 della colonna all'interno dello schema della tabella
le colonne di clustering; il valore è NULL se la tabella non è un
tabella in cluster |
COLLATION_NAME |
STRING |
Il nome della specifica di confronto
se esiste; altrimenti NULL Se viene superato un valore STRING o ARRAY<STRING>
la specifica delle regole di confronto viene restituita, se esistente; altrimenti
Viene restituito NULL
|
COLUMN_DEFAULT |
STRING |
Il valore predefinito del parametro
colonna, se esistente; altrimenti il valore è NULL
|
ROUNDING_MODE |
STRING |
La modalità di arrotondamento utilizzata per i valori scritti nel campo, se è
il tipo è con parametri NUMERIC o BIGNUMERIC ;
altrimenti il valore è NULL
|
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.COLUMNS |
Livello di progetto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
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
L'esempio seguente recupera i metadati dall'INFORMATION_SCHEMA.COLUMNS
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,
bigquery-public-data
, aggiungi l'ID progetto al set di dati nella
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é sono attualmente riservati per 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 migliorare la leggibilità, alcune colonne 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+