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 de o modo da coluna permitir valores NULL.
data_type STRING O tipo de dados do GoogleSQL da coluna.
is_generated STRING O valor é ALWAYS se a coluna for uma coluna de incorporação gerada automaticamente; caso contrário, o valor será NEVER.
generation_expression STRING O valor é a expressão de geração usada para definir a coluna se ela for uma coluna de incorporação gerada automaticamente. Caso contrário, o valor é NULL.
is_stored STRING O valor é YES se a coluna for uma coluna de incorporação gerada automaticamente. Caso contrário, o valor é 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 de a coluna ser 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 de ordenação, se ela existir. Caso contrário, NULL.

Se um STRING ou ARRAY<STRING> for transmitido, a especificação de ordenaçã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.
data_policies.name STRING A lista de políticas de dados anexadas à coluna para controlar o acesso e o mascaramento. Esse campo está em (Prévia).
policy_tags ARRAY<STRING> A lista de tags de política anexadas à coluna.

Para garantir a estabilidade, recomendamos que você liste explicitamente as colunas nas consultas do esquema de informações em vez de usar um caractere curinga (SELECT *). Isso evita que as consultas sejam interrompidas se o esquema subjacente mudar.

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
Substitua:
  • 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.

A coluna a seguir é excluída dos resultados da consulta:

  • IS_UPDATABLE
  SELECT
    * EXCEPT(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 | 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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+