Visualização de COLUMN_FIELD_PATHS
A visualização INFORMATION_SCHEMA.COLUMN_FIELD_PATHS contém uma linha para cada coluna
aninhada em uma coluna RECORD (ou STRUCT).
Permissões necessárias
Para consultar a visualização INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, você precisa das seguintes
permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês):
bigquery.tables.getbigquery.tables.list
Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Esquema
Os resultados da consulta contêm uma linha para cada coluna aninhada em uma coluna RECORD (ou STRUCT).
Os resultados das consultas na visualização INFORMATION_SCHEMA.COLUMN_FIELD_PATHS contêm uma linha para cada coluna aninhada dentro de uma coluna RECORD (ou STRUCT).
A visualização INFORMATION_SCHEMA.COLUMN_FIELD_PATHS tem o seguinte esquema:
| Nome da coluna | Tipo de dados | Valor | 
|---|---|---|
TABLE_CATALOG | 
      STRING | 
      O ID do projeto que contém o conjunto de dados | 
TABLE_SCHEMA | 
      STRING | 
      O nome do conjunto de dados que contém a tabela, também conhecido como datasetId | 
    
TABLE_NAME | 
      STRING | 
      O nome da tabela ou visualização, também conhecido como tableId | 
    
COLUMN_NAME | 
      STRING | 
      O nome da coluna | 
FIELD_PATH | 
      STRING | 
      O caminho para uma coluna aninhada em uma coluna `RECORD` ou `STRUCT`. | 
DATA_TYPE | 
      STRING | 
      O tipo de dados do GoogleSQL coluna | 
DESCRIPTION | 
      STRING | 
      A descrição da coluna | 
COLLATION_NAME | 
      STRING | 
      
        Nome da especificação da ordenação,
        se ela existir. Caso contrário, NULL.Se um campo STRING, ARRAY<STRING> ou
        STRING em um STRUCT for transmitido, a
        especificação de ordenação será retornada, se existir. Caso contrário,
        NULL é retornado.
       | 
    
ROUNDING_MODE | 
      STRING | 
      
        O modo de arredondamento usado ao aplicar a precisão e a escala aos
        valores NUMERIC ou BIGNUMERIC parametrizados.
        Caso contrário, o valor é NULL.
       | 
    
POLICY_TAGS | 
      ARRAY<STRING> | 
      A lista de tags de política anexadas à coluna | 
Escopo e sintaxe
As consultas nessa visualização precisam incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, é preciso ter permissões para o conjunto de dados. Para consultas com um qualificador de região, é preciso ter permissões para o projeto. Para mais informações, consulte Sintaxe. A tabela a seguir explica os escopos de região e recurso dessa visualização:
| Nome da visualização | Escopo do recurso | Escopo da região | 
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS | 
  Nível do projeto | REGION | 
  
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS | 
  Nível do conjunto de dados | Local do conjunto de dados | 
- 
  Opcional: 
PROJECT_ID: o ID do seu projeto Google Cloud . Se não for especificado, o projeto padrão será usado. - 
  
REGION: qualquer nome da região do conjunto de dados. Por exemplo,`region-us`. - 
  
DATASET_ID: ID do conjunto de dados. Para mais informações, consulte Qualificador de conjunto de dados. 
Exemplo
O exemplo a seguir recupera metadados da visualização INFORMATION_SCHEMA.COLUMN_FIELD_PATHS para a tabela commits no conjunto de dados github_repos.
Ele faz parte do programa de conjunto de dados públicos do BigQuery.
Como a tabela que você está consultando está em outro projeto, bigquery-public-data, adicione o código do projeto ao conjunto de dados no seguinte formato: `project_id`.dataset.INFORMATION_SCHEMA.view; por exemplo, `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
A tabela commits contém as seguintes colunas aninhadas e repetidas ou só aninhadas:
author: colunaRECORDaninhadacommitter: colunaRECORDaninhadatrailer: colunaRECORDaninhada e repetidadifference: colunaRECORDaninhada e repetida
Para ver os metadados sobre as colunas author e difference, execute a consulta a seguir.
SELECT * FROM `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS WHERE table_name = 'commits' AND (column_name = 'author' OR column_name = 'difference');
O resultado será semelhante ao seguinte. Para facilitar a leitura, algumas colunas são excluídas do resultado.
+------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | 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 | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+