Como receber metadados de conjuntos de dados usando INFORMATION_SCHEMA

INFORMATION_SCHEMA é uma série de visualizações que fornece acesso a metadados sobre conjuntos de dados, tabelas e visualizações.

É possível consultar as visualizações INFORMATION_SCHEMA.SCHEMATA e INFORMATION_SCHEMA.SCHEMATA_OPTIONS para recuperar metadados sobre conjuntos de dados em um projeto.

Permissões necessárias

Para receber informações ou metadados sobre um conjunto de dados, é preciso ter pelo menos as permissões bigquery.datasets.get. Os papéis predefinidos a seguir do Cloud IAM incluem permissões bigquery.datasets.get:

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

Para mais informações sobre papéis e permissões do Cloud IAM no BigQuery, consulte Controle de acesso.

Visualização SCHEMATA

Quando consultamos a visualização INFORMATION_SCHEMA.SCHEMATA, os resultados contêm uma linha para cada conjunto de dados no projeto a que o usuário atual tem acesso.

A visualização INFORMATION_SCHEMA.SCHEMATA tem o esquema a seguir:

Nome da coluna Tipo de dados Valor
CATALOG_NAME STRING O nome do projeto que contém o conjunto de dados.
SCHEMA_NAME STRING O nome do conjunto de dados (também conhecido como o datasetId).
SCHEMA_OWNER STRING O valor sempre é NULL.
CREATION_TIME TIMESTAMP O horário de criação do conjunto de dados.
LAST_MODIFIED_TIME TIMESTAMP O horário da última modificação do conjunto de dados.
LOCATION STRING A localização geográfica do conjunto de dados.

Para mais informações sobre as propriedades do conjunto de dados, consulte a página de recursos do conjunto de dados na documentação da API REST.

Exemplos

O exemplo a seguir recupera todas as colunas da visualização INFORMATION_SCHEMA.SCHEMATA, exceto schema_owner, que é reservada para uso futuro. Os metadados retornados correspondem a todos os conjuntos de dados no projeto padrão (myproject).

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `project_id`.INFORMATION_SCHEMA.view. Por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acessar o Console do GCP (em inglês)

  2. Insira a consulta SQL padrão a seguir na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     * EXCEPT(schema_owner)
    FROM
     INFORMATION_SCHEMA.SCHEMATA
    
  3. Clique em Executar.

CLI

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

bq query --nouse_legacy_sql \
'SELECT
   * EXCEPT(schema_owner)
 FROM
   INFORMATION_SCHEMA.SCHEMATA'

Os resultados terão a aparência abaixo:

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  catalog_name  |  schema_name  |    creation_time    | last_modified_time  |    location     |
  +----------------+---------------+---------------------+---------------------+-----------------+
  | myproject      | mydataset1    | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US              |
  | myproject      | mydataset2    | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US              |
  | myproject      | mydataset3    | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | asia-northeast1 |
  +----------------+---------------+---------------------+---------------------+-----------------+
  

Visualização SCHEMATA_OPTIONS

Quando consultamos a visualização INFORMATION_SCHEMA.SCHEMATA_OPTIONS, os resultados contêm uma linha para cada conjunto de dados no projeto a que o usuário atual tem acesso.

A visualização INFORMATION_SCHEMA.SCHEMATA_OPTIONS tem o esquema a seguir:

Nome da coluna Tipo de dados Valor
CATALOG_NAME STRING O nome do projeto que contém o conjunto de dados.
SCHEMA_NAME STRING O nome do conjunto de dados (também conhecido como o datasetId).
OPTION_NAME STRING Um dos valores de nome na tabela opções.
OPTION_TYPE STRING Um dos valores de tipo de dados na tabela de opções.
OPTION_VALUE STRING Uma das opções de valor na tabela de opções.
Tabela de opções
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 A vida útil padrão em dias de todas as tabelas no conjunto de dados.
friendly_name STRING O nome descritivo do conjunto de dados.
description STRING Uma descrição do conjunto de dados.
labels ARRAY<STRUCT<STRING, STRING>> Uma matriz de STRUCTs que representa os rótulos no conjunto de dados.

Para mais informações sobre as propriedades do conjunto de dados, consulte a página de recursos do conjunto de dados na documentação da API REST.

Exemplos

Exemplo 1:

No exemplo a seguir, recuperamos os prazos de validade padrão da tabela de todos os conjuntos de dados no projeto padrão (myproject) consultando a visualização INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `project_id`.INFORMATION_SCHEMA.view. Por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acessar o Console do GCP (em inglês)

  2. Insira a consulta SQL padrão a seguir na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="default_table_expiration_days"
    
  3. Clique em Executar.

CLI

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="default_table_expiration_days"'

Os resultados terão a aparência abaixo:

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

Exemplo 2:

No exemplo a seguir, recuperamos os rótulos de todos os conjuntos de dados no projeto padrão (myproject) consultando a visualização INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `project_id`.INFORMATION_SCHEMA.view. Por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acessar o Console do GCP (em inglês)

  2. Insira a consulta SQL padrão a seguir na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="labels"
    
  3. Clique em Executar.

CLI

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

bq query --nouse_legacy_sql \
'SELECT
   *
 FROM
   INFORMATION_SCHEMA.SCHEMATA_OPTIONS
 WHERE
   option_name="labels"'

Os resultados terão a aparência abaixo:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.