Visualizzazione COLONNE
La visualizzazione INFORMATION_SCHEMA.COLUMNS contiene una riga per ogni colonna
(campo) di una tabella.
Autorizzazioni obbligatorie
Per eseguire una query sulla visualizzazione INFORMATION_SCHEMA.COLUMNS, devi disporre delle seguenti
autorizzazioni Identity and Access Management (IAM):
- bigquery.tables.get
- bigquery.tables.list
Ognuno 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) di una tabella.
La visualizzazione INFORMATION_SCHEMA.COLUMNS ha lo schema seguente:
| Nome colonna | Tipo di dati | Valore | 
|---|---|---|
| TABLE_CATALOG | STRING | L'ID progetto del progetto contenente il set di dati | 
| TABLE_SCHEMA | STRING | Il nome del set di dati che contiene la tabella, noto anche come datasetId | 
| TABLE_NAME | STRING | Il nome della tabella o della visualizzazione, indicato 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 | YESoNOa seconda che la modalità della colonna
        consenta valoriNULL | 
| 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 | YESoNOa seconda che la colonna sia
      una pseudocolonna come _PARTITIONTIME o _PARTITIONDATE | 
| IS_UPDATABLE | STRING | Il valore è sempre NULL | 
| IS_SYSTEM_DEFINED | STRING | YESoNOa seconda che la colonna sia
      una pseudocolonna come _PARTITIONTIME o _PARTITIONDATE | 
| IS_PARTITIONING_COLUMN | STRING | YESoNOa seconda che la colonna sia
        una colonna di partizionamento | 
| CLUSTERING_ORDINAL_POSITION | INT64 | L'offset basato su 1 della colonna all'interno delle colonne di clustering della tabella; il valore è NULLse la tabella non è una tabella in cluster | 
| COLLATION_NAME | STRING | Il nome della specifica di confronto
        se esiste; altrimenti, NULLSe viene passato un STRINGo unARRAY<STRING>, la specifica di confronto viene restituita se esiste; altrimenti
        viene restituitoNULL | 
| COLUMN_DEFAULT | STRING | Il valore predefinito della
        colonna, se esiste; altrimenti, il valore è NULL | 
| ROUNDING_MODE | STRING | La modalità di arrotondamento utilizzata per i valori scritti nel campo se il relativo
        tipo è NUMERICoBIGNUMERICparametrizzato;
        in caso contrario, il valore èNULL | 
| POLICY_TAGS | ARRAY<STRING> | L'elenco dei tag delle norme allegati alla colonna | 
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 saperne di più, 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.COLUMNS | Livello 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 Google 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, consulta Qualificatore del set di dati.
Esempio
L'esempio seguente recupera i metadati dalla visualizzazione 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 che stai interrogando si trova in un altro progetto, il
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é sono attualmente 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 facilitare la lettura, 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 | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+