Como gerenciar visualizações

Neste documento, você aprende a gerenciar visualizações no BigQuery. Gerencie as visualizações do BigQuery das seguintes maneiras:

Como copiar uma visualização

Atualmente, não há método compatível para copiar uma visualização de um conjunto de dados para outro. É preciso recriar a visualização no conjunto de dados de destino.

Para ajudar na recriação da visualização, copie a consulta SQL da visualização antiga. Para copiar a consulta SQL que define uma exibição:

Console

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

  2. Clique em Detalhes abaixo da opção Editor de consultas.

    Ver detalhes

  3. Copie o texto na caixa Consulta, na guia Detalhes.

    Visualizar consulta

IU clássica

  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.

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]. 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 código 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

Como renomear uma visualização

Atualmente, não é possível alterar o nome de uma visualização existente. Se você precisar alterar o nome da visualização, recrie 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 visualizações automaticamente após determinado período, defina o prazo de validade padrão no nível do conjunto de dados ou ao criar cada visualização.

Permissões exigidas

Para excluir uma visualização, é necessário ter as mesmas permissões necessárias para a exclusão de uma tabela. É preciso ter acesso de OWNER no nível do conjunto de dados ou ter um papel de IAM para envolvidos no projeto atribuído a você que inclua as permissões de bigquery.tables.delete. Os papéis predefinidos do IAM para envolvidos no projeto a seguir incluem permissões bigquery.tables.delete:

Os usuários com um papel predefinido para envolvidos no projeto podem excluir visualizações em qualquer conjunto de dados no projeto. Os usuários com permissões OWNER no nível do conjunto de dados podem excluir visualizações somente nesse conjunto de dados.

Além disso, como o papel bigquery.user tem permissões bigquery.datasets.create, um usuário com papel bigquery.user pode excluir visualizações em qualquer conjunto de dados criado por ele. Quando um usuário com o papel bigquery.user cria um conjunto de dados, ele recebe acesso OWNER ao conjunto. Com o acesso OWNER, o usuário tem controle total sobre o conjunto de dados e todas as tabelas e visualizações nele contidas.

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

Como excluir uma visualização

Para excluir uma visualização:

IU clássica

  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.

Linha de comando

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 em um projeto diferente do padrão, adicione o código 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 código do projeto;
  • [DATASET] é o nome do conjunto de dados que contém a tabela;
  • [VIEW] é 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 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 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 esta amostra, siga as instruções de configuração do Go no 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 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")
table := client.Dataset(datasetID).Table(tableID)
if err := table.Delete(ctx); err != nil {
	return err
}

Java

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

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/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";

  // Create a client
  const bigqueryClient = new BigQuery();

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

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

PHP

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

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.