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 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, NULLSe 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.
       | 
    
POLICY_TAGS | 
      ARRAY<STRING> | 
      A lista de tags de política anexadas à coluna | 
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 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_GENERATEDGENERATION_EXPRESSIONIS_STOREDIS_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 | 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+