Vista COLUMN_FIELD_PATHS

A vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS contém uma linha para cada coluna aninhada numa coluna RECORD (ou STRUCT).

Autorizações necessárias

Para consultar a vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, precisa das seguintes autorizações de gestão de identidade e de acesso (IAM):

  • bigquery.tables.get
  • bigquery.tables.list

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações anteriores:

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

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Os resultados da consulta contêm uma linha para cada coluna aninhada numa coluna RECORD (ou STRUCT).

Quando consulta a vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, os resultados da consulta contêm uma linha para cada coluna aninhada numa coluna RECORD (ou STRUCT).

A vista 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 da vista também é conhecido como tableId
COLUMN_NAME STRING O nome da coluna
FIELD_PATH STRING O caminho para uma coluna aninhada numa coluna `RECORD` ou `STRUCT`
DATA_TYPE STRING O tipo de dados do GoogleSQL da coluna
DESCRIPTION STRING A descrição da coluna
COLLATION_NAME STRING O nome da especificação de ordenação se existir; caso contrário, NULL

Se for transmitido um campo STRING, ARRAY<STRING> ou STRING num STRUCT, a especificação de ordenação é devolvida se existir; caso contrário, NULL é devolvido
ROUNDING_MODE STRING O modo de arredondamento usado quando aplica 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 etiquetas de políticas anexadas à coluna

Âmbito e sintaxe

As consultas desta vista têm de incluir um conjunto de dados ou um qualificador de região. Para consultas com um qualificador de conjunto de dados, tem de ter autorizações para o conjunto de dados. Para consultas com um qualificador de região, tem de ter autorizações para o projeto. Para mais informações, consulte a secção Sintaxe. A tabela seguinte explica os âmbitos da região e dos recursos para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito 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 Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.
  • DATASET_ID: o ID do seu conjunto de dados. Para mais informações, consulte o artigo Qualificador de conjunto de dados.

Exemplo

O exemplo seguinte obtém metadados da vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS para a tabela commits no conjunto de dados github_repos. Este conjunto de dados faz parte do programa de conjuntos de dados públicos do BigQuery.

Uma vez que a tabela que está a consultar se encontra noutro projeto, o projeto bigquery-public-data, adiciona o ID 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 aninhadas e repetidas:

  • author: coluna RECORD aninhada
  • committer: coluna RECORD aninhada
  • trailer: coluna RECORD aninhada e repetida
  • difference: coluna RECORD aninhada e repetida

Para ver metadados sobre as colunas author e difference, execute a seguinte consulta.

INFORMATION_SCHEMA
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 é 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      |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+