Vista COLUNAS
A vista INFORMATION_SCHEMA.COLUMNS
contém uma linha para cada coluna (campo) numa tabela.
Autorizações necessárias
Para consultar a vista INFORMATION_SCHEMA.COLUMNS
, 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
Quando consulta a vista INFORMATION_SCHEMA.COLUMNS
, os resultados da consulta contêm uma linha para cada coluna (campo) numa tabela.
A vista 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 da vista também é conhecido como tableId |
COLUMN_NAME |
STRING |
O nome da coluna |
ORDINAL_POSITION |
INT64 |
O desvio indexado a 1 da coluna na tabela; se for uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE, o valor é NULL |
IS_NULLABLE |
STRING |
YES ou NO , consoante o 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 , consoante a coluna seja uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE |
IS_UPDATABLE |
STRING |
O valor é sempre NULL |
IS_SYSTEM_DEFINED |
STRING |
YES ou NO , consoante a coluna seja uma pseudocoluna, como _PARTITIONTIME ou _PARTITIONDATE |
IS_PARTITIONING_COLUMN |
STRING |
YES ou NO , consoante a coluna seja
uma coluna de partição |
CLUSTERING_ORDINAL_POSITION |
INT64 |
O desvio com índice 1 da coluna nas colunas de agrupamento da tabela; o valor é NULL se a tabela não for uma tabela agrupada |
COLLATION_NAME |
STRING |
O nome da especificação de ordenação
se existir; caso contrário, NULL Se for transmitido um STRING ou um ARRAY<STRING>
, a especificação de ordenação é devolvida se existir; caso contrário
, é devolvido NULL
|
COLUMN_DEFAULT |
STRING |
O valor predefinido da coluna, se existir; caso contrário, o valor é NULL
|
ROUNDING_MODE |
STRING |
O modo de arredondamento usado para valores escritos no campo se o respetivo tipo for um NUMERIC ou BIGNUMERIC parametrizado; 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.COLUMNS |
Nível do projeto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
Nível do conjunto de dados | Localização do conjunto de dados |
-
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 INFORMATION_SCHEMA.COLUMNS
vista para a tabela population_by_zip_2010
no conjunto de dados census_bureau_usa
. 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`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
As seguintes colunas são excluídas dos resultados da consulta porque estão atualmente reservadas para utilização futura:
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 é 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 | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+