Visualizzazione COLUMN_FIELD_PATHS

La visualizzazione INFORMATION_SCHEMA.COLUMN_FIELD_PATHS contiene una riga per ogni colonna nidificata all'interno di una colonna RECORD (o STRUCT).

Autorizzazioni obbligatorie

Per eseguire una query sulla visualizzazione INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, 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

I risultati della query contengono una riga per ogni colonna nidificata all'interno di una colonna RECORD (o STRUCT).

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, i risultati della query contengono una riga per ogni colonna nidificata all'interno di una colonna RECORD (o STRUCT).

La visualizzazione INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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
FIELD_PATH STRING Il percorso di una colonna nidificata all'interno di una colonna `RECORD` o `STRUCT`
DATA_TYPE STRING Il tipo di dati GoogleSQL della colonna
DESCRIPTION STRING La descrizione della colonna
COLLATION_NAME STRING Il nome della specifica di confronto se esiste; altrimenti, NULL

Se viene passato un campo STRING, ARRAY<STRING> o STRING in un STRUCT, la specifica di confronto viene restituita se esiste; altrimenti, viene restituito NULL
ROUNDING_MODE STRING La modalità di arrotondamento utilizzata quando si applicano precisione e scala ai valori parametrizzati NUMERIC o BIGNUMERIC; altrimenti, 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.COLUMN_FIELD_PATHS Livello progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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 tuo set di dati. Per maggiori informazioni, consulta Qualificatore del set di dati.

Esempio

L'esempio seguente recupera i metadati dalla vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS per la tabella commits nel set di dati github_repos. 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`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.

La tabella commits contiene le seguenti colonne nidificate e ripetute:

  • author: colonna nidificata RECORD
  • committer: colonna nidificata RECORD
  • trailer: colonna RECORD nidificata e ripetuta
  • difference: colonna RECORD nidificata e ripetuta

Per visualizzare i metadati relativi alle colonne author e difference, esegui la seguente query.

SELECT
  *
FROM
  `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE
  table_name = 'commits'
  AND (column_name = 'author' OR column_name = 'difference');

Il risultato è simile al seguente. Per facilitare la lettura, alcune colonne sono escluse dal risultato.

  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+
  | table_name | column_name |     field_path      |                                                                      data_type                                                                      | description | policy_tags |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        | 0 rows      |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        | 0 rows      |
  | commits    | difference  | difference          | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL        | 0 rows      |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        | 0 rows      |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+