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.getbigquery.tables.list
Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/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 |
-
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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+