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 exigidas

Para receber informações ou metadados sobre um conjunto de dados, é necessário ter o papel READER no nível do conjunto de dados ou um papel do IAM para envolvidos no projeto que inclua permissões bigquery.datasets.get. Todos os papéis do IAM predefinidos para envolvidos no projeto incluem permissões bigquery.datasets.get, exceto bigquery.jobUser.

Para saber mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Controle de acesso. Para saber mais informações sobre os papéis no nível do conjunto de dados, consulte Papéis primários para conjuntos de dados.

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.

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.

    Acesse a IU da Web do BigQuery

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

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

Linha de comando

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 é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

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 as etiquetas no conjunto de dados.

Exemplos

Exemplo 1:

O exemplo a seguir recupera os prazos de validade padrão da tabela de todos os conjuntos de dados no projeto padrão (myproject) por meio da consulta da 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.

    Acesse a IU da Web do BigQuery

  2. Digite a seguinte consulta SQL padrão na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. 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.

Linha de comando

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 é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

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:

O exemplo a seguir recupera as etiquetas de todos os conjuntos de dados no projeto padrão (myproject) por meio da consulta da 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.

    Acesse a IU da Web do BigQuery

  2. Digite a seguinte consulta SQL padrão na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. 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.

Linha de comando

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 é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

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.