Visualização de COLUMNS
A visualização INFORMATION_SCHEMA.COLUMNS
contém uma linha para cada coluna
(campo) em uma tabela.
Permissões necessárias
Para consultar a visualização INFORMATION_SCHEMA.COLUMNS
, 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 das consultas na visualização INFORMATION_SCHEMA.COLUMNS
contêm uma linha para cada coluna (campo) da tabela.
A visualização INFORMATION_SCHEMA.COLUMNS
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 |
ORDINAL_POSITION |
INT64 |
O deslocamento de índice 1 da coluna na tabela. Se for uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE, o valor será NULL |
IS_NULLABLE |
STRING |
YES ou NO , dependendo do modo da coluna permitir valores NULL |
DATA_TYPE |
STRING |
O tipo de dados do GoogleSQL da coluna |
IS_GENERATED |
STRING |
O valor sempre é NEVER |
GENERATION_EXPRESSION |
STRING |
O valor sempre é NULL |
IS_STORED |
STRING |
O valor sempre é NULL . |
IS_HIDDEN |
STRING |
YES ou NO , dependendo do tipo de coluna (se é ou não é uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE) |
IS_UPDATABLE |
STRING |
O valor sempre é NULL . |
IS_SYSTEM_DEFINED |
STRING |
YES ou NO , dependendo do tipo de coluna (se é ou não é uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE) |
IS_PARTITIONING_COLUMN |
STRING |
YES ou NO dependendo se a coluna é uma coluna de particionamento ou não |
CLUSTERING_ORDINAL_POSITION |
INT64 |
O deslocamento de índice 1 da coluna nas colunas de cluster da tabela. O valor será NULL se a tabela não for uma tabela em cluster |
COLLATION_NAME |
STRING |
Nome da especificação da compilação, se ela existir; Caso contrário, NULL Se um STRING ou ARRAY<STRING> for transmitido,
a especificação de compilação será retornada, se existir; Caso contrário,
NULL é retornado.
|
COLUMN_DEFAULT |
STRING |
O valor padrão da
coluna, se houver; Caso contrário, o valor será NULL
|
ROUNDING_MODE |
STRING |
O modo de arredondamento usado para valores gravados no campo se o
tipo dele for um NUMERIC ou BIGNUMERIC parametrizado.
Caso contrário, o valor será 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.COLUMNS |
Nível do projeto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
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.COLUMNS
para a tabela population_by_zip_2010
no conjunto de dados census_bureau_usa
. 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`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
As colunas a seguir são excluídas dos resultados da consulta porque atualmente estão reservadas para uso futuro:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
SELECT * EXCEPT(is_generated, generation_expression, is_stored, is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
O resultado será semelhante ao seguinte. Para facilitar a leitura, algumas colunas são excluídas do resultado.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+