Como gerenciar visualizações

Neste documento, descrevemos como gerenciar visualizações no BigQuery. Gerencie as visualizações do BigQuery das seguintes maneiras:

Como copiar visualizações

Atualmente, você pode copiar uma visualização apenas usando o Console do GCP.

Não é possível copiar uma visualização usando a IU da Web clássica, a CLI, a API REST ou as bibliotecas de cliente. Em vez disso, é necessário recriar a visualização no conjunto de dados de destino. Para ajudá-lo a recriar a visualização, você pode usar a CLI ou a IU da Web clássica para copiar a consulta SQL da visualização.

Permissões exigidas

No mínimo, para copiar uma visualização no Console do GCP, você são necessárias as permissões a seguir.

No conjunto de dados de origem:

  • bigquery.tables.get para copiar os metadados da visualização;
  • bigquery.tables.getData para copiar a consulta SQL da visualização.

Outras permissões, como bigquery.tables.getData podem ser necessárias para acessar as tabelas referenciadas pela consulta SQL da visualização.

No conjunto de dados de destino:

  • bigquery.tables.create para criar a cópia da visualização no conjunto de dados de destino.

Os seguintes papéis predefinidos do Cloud IAM incluem bigquery.tables.create, bigquery.tables.get e bigquery.tables.getData:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Além disso, quando um usuário com permissões bigquery.datasets.create cria um conjunto de dados, ele recebe o acesso de bigquery.dataOwner ao conjunto. O acesso bigquery.dataOwner fornece ao usuário a capacidade de copiar visualizações do conjunto de dados. No entanto, o acesso ao conjunto de dados de destino é necessário, a menos que o usuário também tenha criado o conjunto de dados de destino.

Para mais informações sobre os papéis e permissões do Cloud IAM no BigQuery, consulte Permissões e papéis predefinidos.

Como copiar uma visualização

Para copiar uma visualização:

Console

  1. No painel de navegação, selecione a visualização.

  2. No lado direito da janela, clique em Copiar visualização.

  3. Na caixa de diálogo Copiar visualização:

    • Na seção Origem, verifique se o Nome do projeto, o Nome do conjunto de dados e o Nome da tabela estão corretos.
    • Na seção Destino:

      • Em Nome do projeto, escolha o projeto para o qual você está copiando a visualização.
      • Em Nome do conjunto de dados, escolha o conjunto de dados que conterá a visualização copiada.
      • Em Nome da tabela, insira o nome da visualização. É possível renomear a visualização inserindo um novo nome de visualização na caixa. Se você inserir um novo nome, ele terá que seguir as regras de nomenclatura da visualização.

      Caixa de diálogo "Copiar visualização"

    • Clique em Copiar.

IU clássica

A IU da Web clássica não é compatível com a cópia de uma visualização. Em vez disso, é necessário recriar a visualização no conjunto de dados de destino. Para ajudá-lo a recriar a visualização, você pode copiar a consulta SQL usada para definir a visualização.

Para copiar a consulta SQL que define uma exibição:

  1. No painel de navegação da IU, selecione a visualização.

  2. No painel Ver detalhes, clique em Detalhes.

  3. Copie o texto na caixa Consulta.

CLI

A ferramenta de linha de comando bq não é compatível com a cópia de uma visualização. Em vez disso, é necessário recriar a visualização no conjunto de dados de destino. Para ajudá-lo a recriar a visualização, você pode copiar a consulta SQL usada para definir a visualização.

Para copiar a consulta SQL que define uma visualização, emita o comando bq show. A sinalização --format pode ser usada para controlar a saída. Se você receber informações sobre uma visualização em um projeto diferente do padrão, adicione o ID do projeto ao conjunto de dados no seguinte formato: project_id:dataset. Para gravar as propriedades de visualização em um arquivo, adicione > path_to_file ao comando.

bq show \
--format=prettyjson \
project_id:dataset.view > path_to_file

Em que:

  • project_id é o ID do projeto.
  • dataset é o nome do conjunto de dados.
  • view é o nome da visualização.
  • path_to_file é o caminho para o arquivo de saída na máquina local.

Exemplos:

Digite o comando a seguir para exibir informações sobre myview em mydataset. mydataset está no projeto padrão.

bq show --format=prettyjson mydataset.myview

Digite o comando a seguir para exibir informações sobre myview em mydataset. mydataset está em myotherproject, e não no projeto padrão. As propriedades da visualização são gravadas em um arquivo local (/tmp/myview.json).

bq show \
--format=prettyjson \
myotherproject:mydataset.myview > /tmp/myview.json

API

A API REST não é compatível com a cópia de uma visualização. Em vez disso, é necessário recriar a visualização no conjunto de dados de destino. Para informações sobre como criar uma visualização usando a API REST, consulte Como criar uma visualização.

Como renomear uma visualização

Atualmente, você pode renomear uma visualização somente quando usa o Console do GCP para copiá-la. Para instruções sobre como renomear uma visualização ao copiá-la, consulte Como copiar uma visualização.

Não é possível alterar o nome de uma visualização existente usando a IU da Web clássica, a CLI, a API ou as bibliotecas de cliente. Em vez disso, é necessário recriar a visualização com o novo nome.

Como excluir visualizações

Use estes métodos para excluir uma visualização:

  • Use o Console do GCP ou a IU da Web clássica do BigQuery.
  • Use o comando bq rm da ferramenta de linha de comando.
  • Chame o método de API tables.delete.

Atualmente, os métodos disponíveis permitem excluir apenas uma visualização por vez.

Para excluir automaticamente as visualizações após um período de tempo determinado, defina o prazo de validade padrão no nível do conjunto de dados ou ao criar a visualização.

Permissões exigidas

No mínimo, para excluir uma visualização, você deve ter as permissões bigquery.tables.delete e bigquery.tables.get. Os seguintes papéis predefinidos do Cloud IAM incluem permissões bigquery.tables.delete e bigquery.tables.get:

  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

Além disso, quando um usuário com permissões bigquery.datasets.create cria um conjunto de dados, ele recebe o acesso de bigquery.dataOwner ao conjunto. Com o acesso bigquery.dataOwner, o usuário consegue excluir visualizações do conjunto de dados.

Para mais informações sobre os papéis e permissões do Cloud IAM no BigQuery, consulte Permissões e papéis predefinidos.

Como excluir uma visualização

Para excluir uma visualização:

Console

  1. Selecione sua visualização no painel Recursos. Clique em Excluir visualização no lado direito da janela.

  2. Insira o nome da visualização na caixa de diálogo e clique em Excluir para confirmar.

IU clássica

  1. Clique no ícone de seta para baixo ícone de seta para baixo ao lado do nome da visualização na barra de navegação e clique em Excluir visualização.

  2. Quando solicitado, clique em OK para confirmar.

CLI

Use o comando bq rm com a sinalização --table (ou o atalho -t) para excluir uma visualização. Quando você usa a CLI para remover uma visualização, precisa confirmar a ação. Use a sinalização --force (ou o atalho -f) para ignorar a confirmação.

Se a visualização estiver em um conjunto de dados de um projeto diferente do padrão, adicione o ID do projeto ao nome do conjunto no seguinte formato: project_id:dataset.

bq rm \
-f \
-t \
project_id:dataset.view

Em que:

  • project_id é o ID do projeto;
  • dataset é o nome do conjunto de dados que contém a tabela.
  • view_name é o nome da visualização que você está excluindo.

Exemplos:

Digite o comando a seguir para excluir myview de mydataset. mydataset está no projeto padrão.

bq rm -t mydataset.myview

Digite o comando a seguir para excluir myview de mydataset. mydataset está em myotherproject, e não no projeto padrão.

bq rm -t myotherproject:mydataset.myview

Digite o comando a seguir para excluir myview de mydataset. mydataset está no projeto padrão. O comando usa o atalho -f para ignorar a confirmação.

bq rm -f -t mydataset.myview

API

Chame o método de API tables.delete e especifique a visualização a ser excluída usando o parâmetro tableId.

C#

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


using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryDeleteTable
{
    public void DeleteTable(
        string projectId = "your-project-id",
        string datasetId = "your_dataset_id",
        string tableId = "your_table_id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        client.DeleteTable(datasetId, tableId);
        Console.WriteLine($"Table {tableId} deleted.");
    }
}

Go

Antes de testar este exemplo, 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 BigQuery 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")
table := client.Dataset(datasetID).Table(tableID)
if err := table.Delete(ctx); err != nil {
	return err
}

Java

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

TableId tableId = TableId.of(projectId, datasetName, tableName);
boolean deleted = bigquery.delete(tableId);
if (deleted) {
  // the table was deleted
} else {
  // the table was not found
}

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js 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 BigQuery Node.js.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function deleteTable() {
  // Deletes "my_table" from "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";
  // const tableId = "my_table";

  // Delete the table
  await bigquery
    .dataset(datasetId)
    .table(tableId)
    .delete();

  console.log(`Table ${tableId} deleted.`);
}

PHP

Antes de testar esta amostra, siga as instruções de configuração do PHP 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 BigQuery PHP.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';
// $tableId = 'The BigQuery table ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
$table->delete();
printf('Deleted table %s.%s' . PHP_EOL, $datasetId, $tableId);

Python

Antes de testar esta amostra, siga as instruções de configuração do Python 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 BigQuery Python.

from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

# TODO(developer): Set table_id to the ID of the table to fetch.
# table_id = 'your-project.your_dataset.your_table'

# If the table does not exist, delete_table raises
# google.api_core.exceptions.NotFound unless not_found_ok is True
client.delete_table(table_id, not_found_ok=True)
print("Deleted table '{}'.".format(table_id))

Ruby

Antes de testar este exemplo, siga as instruções de configuração do Ruby 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 BigQuery Ruby (em inglês).

require "google/cloud/bigquery"

def delete_table dataset_id = "my_dataset_id", table_id = "my_table_id"
  bigquery = Google::Cloud::Bigquery.new
  dataset  = bigquery.dataset dataset_id
  table    = dataset.table table_id

  table.delete

  puts "Table #{table_id} deleted."
end

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.