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 para o novo.

  3. 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 para o novo.

  3. 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 da API datasets.delete.

Permissões necessárias

Para excluir um conjunto de dados, é preciso ter acesso de OWNER no nível do conjunto de dados ou uma função de IAM para envolvidos no projeto que inclua permissões bigquery.datasets.delete. Se o conjunto de dados contém tabelas, bigquery.tables.delete também é necessário. Os papéis predefinidos de IAM para envolvidos no projeto a seguir incluem ambas as permissões bigquery.datasets.delete e bigquery.tables.delete:

Além disso, como o papel bigquery.user tem permissões bigquery.datasets.create, um usuário com bigquery.user pode excluir qualquer conjunto de dados criado por ele. Quando um usuário atribuído ao papel bigquery.user cria um conjunto de dados, ele recebe acesso de OWNER ao conjunto. Com o acesso de OWNER, o usuário tem controle total sobre o conjunto de dados.

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 no nível do conjunto de dados, consulte Papéis primários para conjuntos de dados.

Como excluir um conjunto de dados

Quando você exclui um conjunto de dados usando a IU da Web, as tabelas nele e os dados que elas contêm são removidos. Ao excluir um conjunto de dados com a CLI, é necessário usar a sinalização -r para remover as tabelas dele.

Depois de excluir um conjunto de dados, não será possível recuperá-lo, restaurá-lo ou cancelar a exclusão dele. Essa exclusão é permanente.

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 do conjunto 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 seu conjunto de dados na navegação e clique em 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.

      Excluir conjunto de dados

Linha de comando

Use o comando bq rm com --dataset (opcional) ou a sinalização abreviada -d para excluir um conjunto de dados. Quando você usa a CLI para remover um conjunto, é necessário confirmar o comando. Basta utilizar 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 código dele ao nome do conjunto de dados no seguinte formato: [PROJECT_ID]:[DATASET].

bq rm -r -f -d [PROJECT_ID]:[DATASET]

Em que:

  • [PROJECT_ID] é o código do projeto;
  • [DATASET] é o nome do conjunto de dados que você está excluindo.

Exemplos:

Insira o comando a seguir para remover mydataset e todas as tabelas nele do seu projeto padrão. 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 mydataset e todas as tabelas nele de myotherproject. 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 nele.

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.

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

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

async function deleteDataset() {
  // Deletes a dataset named "my_dataset".

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

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

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

  // Delete the dataset and its contents
  await dataset.delete({force: true});
  console.log(`Dataset ${dataset.id} deleted.`);
}
deleteDataset();

PHP

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

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

  • Para mais informações sobre a criação de conjuntos de dados, consulte esta página.
  • Para mais informações sobre como atualizar os conjuntos de dados, consulte esta página.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.