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.get
  • bigquery.tables.list

Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Schema

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.

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
Substitua:

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: coluna RECORD aninhada
  • committer: coluna RECORD aninhada
  • trailer: coluna RECORD aninhada e repetida
  • difference: coluna RECORD aninhada 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 |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        |
  | 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        |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+