Como receber informações sobre visualizações

Neste documento, descrevemos como receber informações ou metadados sobre visualizações no BigQuery.

Para receber metadados de visualizações:

  • use o Console do GCP ou a IU clássica da Web do BigQuery;
  • use o comando bq show da CLI;
  • chame o método de API tables.get;
  • consulte as visualizações INFORMATION_SCHEMA (Beta).

Permissões exigidas

Para receber informações sobre visualizações, é preciso ter o papel READER no conjunto de dados ou um papel de IAM para envolvidos 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 do projeto. Todos os papéis de IAM predefinidos para envolvidos 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 o papel bigquery.user cria um conjunto de dados, ele recebe o acesso OWNER a esse conjunto. O acesso OWNER concede ao usuário o controle total sobre o conjunto de dados e todas as visualizações contidas nele.

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

Como receber informações sobre visualizações

O processo para receber informações sobre visualizações é idêntico ao usado para tabelas.

Para receber informações sobre visualizações:

Console

  1. Expanda seu conjunto de dados.

  2. Clique no nome da visualização.

  3. Clique em Detalhes. A guia Detalhes exibe a descrição da visualização, informações de visualização e a consulta SQL que define a visualização.

    Ver detalhes

IU clássica

  1. Expanda seu conjunto de dados.

  2. Clique no nome da visualização.

  3. Clique em Detalhes. A página Ver detalhes exibe a descrição e as informações da visualização, bem como a consulta SQL que a define.

    Ver detalhes

Linha de comando

Emita o comando bq show. A sinalização --format pode ser usada para controlar a saída. Se você estiver recebendo informações sobre uma visualização em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW]

Em que:

  • [PROJECT_ID] é o ID do projeto;
  • [DATASET] é o nome do conjunto de dados;
  • [VIEW] é o nome da visualização.

Exemplos:

Digite o seguinte comando para exibir informações sobre myview no conjunto de dados mydataset no seu projeto padrão.

bq show --format=prettyjson mydataset.myview

Digite o seguinte comando para exibir informações sobre myview no conjunto de dados mydataset em myotherproject.

bq show --format=prettyjson myotherproject:mydataset.myview

API

Chame o método tables.get e forneça os parâmetros relevantes.

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API do BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}
fmt.Printf("View %s, query: %s\n", view.FullyQualifiedName(), meta.ViewQuery)

Python

Antes de testar esta amostra, siga as instruções de configuração do Python em Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery Python (em inglês).

# from google.cloud import bigquery
# client = bigquery.Client()
# shared_dataset_id = 'my_shared_dataset'

view_ref = client.dataset(shared_dataset_id).table("my_shared_view")
view = client.get_table(view_ref)  # API Request

# Display view properties
print("View at {}".format(view.full_table_id))
print("View Query:\n{}".format(view.view_query))

INFORMATION_SCHEMA (Beta)

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

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 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, insira:

bq query --nouse_legacy_sql \
'SELECT * EXCEPT(check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS'

Os resultados terão a seguinte aparência:

  +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
  | 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 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 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, 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 seguinte aparência:

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