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.
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 .
|
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 do 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
: colunaRECORD
aninhadacommitter
: colunaRECORD
aninhadatrailer
: colunaRECORD
aninhada e repetidadifference
: colunaRECORD
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 | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+