Visualizzazione COLONNE

La visualizzazione INFORMATION_SCHEMA.COLUMNS contiene una riga per ogni colonna (campo) di una tabella.

Autorizzazioni obbligatorie

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

  • 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 visualizzazione INFORMATION_SCHEMA.COLUMNS, i risultati della query contengono una riga per ogni colonna (campo) di una tabella.

La vista 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 vista, chiamato anche tableId
COLUMN_NAME STRING Il nome della colonna
ORDINAL_POSITION INT64 L'offset in base 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 valori NULL
DATA_TYPE STRING Il tipo di dati GoogleSQL della colonna
IS_GENERATED STRING Il valore è ALWAYS se la colonna è una colonna di incorporamento generata automaticamente; altrimenti, il valore è NEVER
GENERATION_EXPRESSION STRING Il valore è l'espressione di generazione utilizzata per definire la colonna se la colonna è una colonna di incorporamento generata automaticamente; altrimenti il valore è NULL
IS_STORED STRING Il valore è YES se la colonna è una colonna di incorporamento generata automaticamente; in caso contrario, il valore è 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 in base 1 della colonna all'interno delle colonne di clustering della tabella; il valore è NULL se la tabella non è una tabella di clustering
COLLATION_NAME STRING Il nome della specifica di confronto se esiste; altrimenti, NULL

Se viene passato un STRING o un ARRAY<STRING>, la specifica di confronto viene restituita se esiste; altrimenti viene restituito NULL
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 è NUMERIC o BIGNUMERIC parametrizzato; 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 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 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
Sostituisci quanto segue:
  • (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 set di dati. Per maggiori informazioni, vedi 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.

La seguente colonna è esclusa dai risultati della query:

  • IS_UPDATABLE
  SELECT
    * EXCEPT(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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+