Como gerenciar conjuntos de dados

Neste documento, você aprende a gerenciar conjuntos de dados no BigQuery. Depois de criar um conjunto de dados, é possível gerenciá-lo das seguintes maneiras:

Como renomear conjuntos de dados

No momento, não é possível alterar o nome de um conjunto de dados existente nem copiar um conjunto e renomeá-lo. Se você precisar alterar o nome do conjunto de dados, siga estas etapas para recriar o conjunto:

  1. Crie um novo conjunto de dados e especifique o novo nome.

  2. Copie as tabelas do conjunto de dados antigo no novo.

  3. Copie ou recrie as visualizações no novo conjunto de dados.

  4. Exclua o conjunto de dados antigo para evitar custos extras de armazenamento.

Como copiar conjuntos de dados

No momento, não é possível copiar um conjunto de dados. Em vez disso, siga estas etapas para recriá-lo:

  1. Crie um novo conjunto de dados. Como os nomes deles precisam ser exclusivos por projeto, é necessário atribuir um novo nome ao conjunto se você o estiver recriando no mesmo projeto.

  2. Copie as tabelas do conjunto de dados antigo no novo.

  3. Copie ou recrie as visualizações no novo conjunto de dados.

  4. Exclua o conjunto de dados antigo para evitar custos extras de armazenamento.

Como excluir conjuntos de dados

Para excluir um conjunto de dados, escolha um destes métodos:

  • Use o Console do GCP ou a IU clássica da Web do BigQuery.
  • Use o comando da CLI bq rm.
  • Chame o método de API datasets.delete.
  • Use bibliotecas de cliente.

Permissões exigidas

Para atualizar um rótulo de conjunto de dados, é necessário ter, no mínimo, as permissões bigquery.datasets.delete. Se o conjunto de dados contém tabelas ou visualizações, bigquery.tables.delete também é necessário. Os seguintes papéis do IAM predefinidos incluem permissões bigquery.datasets.delete e bigquery.tables.delete:

  • 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. Com o acesso de bigquery.dataOwner, o usuário consegue consultar tabelas e visualizações no conjunto de dados.

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

Excluir um conjunto de dados

Quando você exclui um conjunto de dados usando o Console do GCP ou a IU da web clássica, as tabelas e visualizações no conjunto de dados (e os dados que elas contêm) são excluídas. Quando você exclui um conjunto de dados usando a CLI, é preciso usar o sinalizador -r para excluir as tabelas e visualizações do conjunto de dados.

Para excluir um conjunto de dados, siga estas etapas:

Console

  1. Selecione seu conjunto de dados no painel Recursos e clique em Excluir conjunto de dados do lado direito da janela.

    Excluir conjunto de dados

  2. Na caixa de diálogo Excluir conjunto de dados, digite o nome dele na caixa de texto e clique em Excluir.

IU clássica

  1. Clique no ícone de seta para baixo ícone de seta para baixo ao lado do nome do conjunto de dados na navegação e selecione Excluir conjunto de dados.

  2. Na caixa de diálogo Excluir conjunto de dados, siga as etapas abaixo:

    • Em Código do conjunto de dados, insira o nome do conjunto de dados a ser excluído.
    • Clique em OK.

CLI

Use o comando bq rm com a sinalização abreviada --dataset ou -d (opcional) para excluir um conjunto de dados. Quando você usa a CLI para remover um conjunto de dados, precisa confirmar o comando. É possível usar a sinalização -f para ignorar a confirmação.

Além disso, se o conjunto de dados contém tabelas, você precisa usar a sinalização -r para remover todas elas. Se você estiver excluindo uma tabela em um projeto diferente do padrão, adicione o ID do projeto ao nome do conjunto de dados no seguinte formato: project_id:dataset.

bq rm -r -f -d <var>project_id:dataset</var>

Em que:

  • project_id é o ID do projeto.
  • dataset é o nome do conjunto de dados que você está excluindo.

Exemplos:

Insira o comando a seguir para remover do seu projeto padrão mydataset e todas as tabelas contidas nele. O comando usa o atalho opcional -d.

bq rm -r -d mydataset

Quando solicitado, digite y e pressione enter.

Insira o comando a seguir para remover do myotherproject mydataset e todas as tabelas contidas nele. O comando não usa o atalho opcional -d. A sinalização -f é usada para ignorar a confirmação.

bq rm -r -f myotherproject:mydataset

API

Chame o método datasets.delete para excluir o conjunto de dados e defina o parâmetro deleteContents como true para excluir as tabelas dele.

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

if err := client.Dataset(datasetID).Delete(ctx); err != nil {
	return fmt.Errorf("Failed to delete dataset: %v", err)
}

Java

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

DatasetId datasetId = DatasetId.of(projectId, datasetName);
boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
if (deleted) {
  // the dataset was deleted
} else {
  // the dataset 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 deleteDataset() {
  // Deletes a dataset named "my_dataset".

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

  // Create a reference to the existing dataset
  const dataset = bigquery.dataset(datasetId);

  // Delete the dataset and its contents
  await dataset.delete({force: true});
  console.log(`Dataset ${dataset.id} 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';

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

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.

from google.cloud import bigquery

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

# TODO(developer): Set model_id to the ID of the model to fetch.
# dataset_id = 'your-project.your_dataset'

# Use the delete_contents parameter to delete a dataset and its contents
# Use the not_found_ok parameter to not receive an error if the dataset has already been deleted.
client.delete_dataset(dataset_id, delete_contents=True, not_found_ok=True)

print("Deleted dataset '{}'.".format(dataset_id))

Ruby

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

require "google/cloud/bigquery"

def delete_dataset dataset_id = "my_empty_dataset"
  bigquery = Google::Cloud::Bigquery.new

  # Delete a dataset that does not contain any tables
  dataset = bigquery.dataset dataset_id
  dataset.delete
  puts "Dataset #{dataset_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.