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
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 INFORMATION_SCHEMA.COLUMNSvista 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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+