Como receber metadados de visualizações 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 a visualização INFORMATION_SCHEMA.VIEWS para recuperar metadados sobre visualizações em um conjunto de dados.

Permissões exigidas

Para receber informações sobre tabelas, é necessário ter, no mínimo, permissões bigquery.tables.get. Os papéis predefinidos do Cloud IAM a seguir incluem as permissões bigquery.tables.get:

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

Além disso, quando um usuário com permissões bigquery.datasets.create cria um conjunto de dados, recebe o acesso bigquery.dataOwner a ele. Com o acesso bigquery.dataOwner, o usuário consegue receber informações sobre visualizações em um conjunto de dados.

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

Visualização VIEWS

Quando consultamos a visualização INFORMATION_SCHEMA.VIEWS, os resultados contêm uma linha para cada visualização no conjunto de dados.

As consultas na visualização INFORMATION_SCHEMA.VIEWS precisam ter um qualificador de conjunto de dados. O usuário que envia a consulta precisa ter acesso ao conjunto de dados que contém as visualizações.

A visualização INFORMATION_SCHEMA.VIEWS tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
TABLE_CATALOG STRING Nome do projeto que contém o conjunto de dados.
TABLE_SCHEMA STRING Nome do conjunto de dados que contém a visualização, também conhecido como id do conjunto de dados.
TABLE_NAME STRING Nome da visualização, também conhecido como id da tabela.
VIEW_DEFINITION STRING Consulta SQL que define a visualização.
CHECK_OPTION STRING O valor retornado é sempre NULL.
USE_STANDARD_SQL STRING YES se a visualização foi criada usando uma consulta SQL padrão, NO se useLegacySql estiver definido como true.

Para mais informações sobre propriedades de tabela e visualização, consulte a página do recurso de tabela na documentação da API REST.

Exemplos

Exemplo 1:

O exemplo a seguir recupera todas as colunas da visualização INFORMATION_SCHEMA.VIEWS, exceto check_option, que é reservada para uso futuro. Os metadados retornados correspondem a todas as visualizações em mydataset no projeto padrão myproject.

As consultas na visualização INFORMATION_SCHEMA.VIEWS precisam ter um qualificador de conjunto de dados. O usuário que envia a consulta precisa ter acesso ao conjunto de dados que contém as visualizações.

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`.dataset.INFORMATION_SCHEMA.view. Por exemplo: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

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

  2. Insira a seguinte consulta SQL padrão 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(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  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(check_option)
 FROM
   mydataset.INFORMATION_SCHEMA.VIEWS'

Os resultados terão a aparência abaixo:

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | table_catalog  | table_schema  |  table_name   |                        view_definition                              | use_standard_sql |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | myproject      | mydataset     | myview        | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

Observando os resultados, vemos que essa visualização foi criada com uma consulta SQL legada.

Exemplo 2:

O exemplo a seguir recupera a consulta SQL e a sintaxe de consulta usadas para definir myview em mydataset no projeto padrão (myproject).

As consultas na visualização INFORMATION_SCHEMA.VIEWS precisam ter um qualificador de conjunto de dados. O usuário que envia a consulta precisa ter acesso ao conjunto de dados que contém as visualizações.

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`.dataset.INFORMATION_SCHEMA.view. Por exemplo: `myproject`.mydataset.INFORMATION_SCHEMA.VIEWS.

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

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

    SELECT
     table_name, view_definition, use_standard_sql
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    WHERE
     table_name="myview"
    
  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
   table_name, view_definition, use_standard_sql
 FROM
   mydataset.INFORMATION_SCHEMA.VIEWS
 WHERE
   table_name="myview"'

Os resultados terão a aparência abaixo:

  +---------------+---------------------------------------------------------------+------------------+
  |  table_name   |                        view_definition                        | use_standard_sql |
  +---------------+---------------------------------------------------------------+------------------+
  | myview        | SELECT column1, column2, column3 FROM mydataset.mytable       | YES              |
  +---------------+---------------------------------------------------------------+------------------+
  

Observando os resultados, vemos que essa visualização foi criada com uma consulta SQL padrão.

Próximas etapas

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

Enviar comentários sobre…

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