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 visualizações, é preciso ter o papel de READER no conjunto de dados ou um papel de IAM no projeto que inclua permissões bigquery.tables.get. Se você tem permissões bigquery.tables.get no nível do projeto, pode acessar informações sobre todas as visualizações dele. Todos os papéis de IAM predefinidos no projeto incluem permissões bigquery.tables.get, exceto bigquery.jobUser e bigquery.user.

Além disso, um usuário com papel bigquery.user tem permissões bigquery.datasets.create. Assim, um usuário com papel bigquery.user pode receber informações sobre visualizações em qualquer conjunto de dados que tenha sido criado por ele. Quando um usuário com papel bigquery.user cria um conjunto de dados, ele recebe acesso OWNER ao conjunto de dados. O acesso OWNER concede ao usuário o controle total sobre o conjunto de dados e todas as visualizações contidas nele.

Para saber mais 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 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 dado Valor
TABLE_CATALOG STRING O nome do projeto que contém o conjunto de dados.
TABLE_SCHEMA STRING O nome do conjunto de dados que contém a visualização, também conhecido como o id.
TABLE_NAME STRING O nome da visualização, também conhecido como o id.
VIEW_DEFINITION STRING A 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.

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 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.

    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. SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     * EXCEPT(check_option)
    FROM
     mydataset.INFORMATION_SCHEMA.VIEWS
    
  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(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               |
  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  

Observe que os resultados mostram 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 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.

    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. 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.

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 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              |
  +---------------+---------------------------------------------------------------+------------------+
  

Observe que os resultados mostram que essa visualização foi criada com uma consulta SQL padrão.

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.