Como criar conjuntos de dados

Neste documento, descrevemos como criar conjuntos de dados no BigQuery.

É possível criar conjuntos de dados:

  • Usando o Console do GCP ou a IU clássica da Web do BigQuery
  • Usando o comando da CLI bq mk
  • Chamando o método de API datasets.insert
  • Usando as bibliotecas de cliente

Limitações do conjunto de dados

Os conjuntos de dados do BigQuery estão sujeitos às seguintes limitações:

  • A definição do local geográfico é possível apenas no momento da criação. Após a criação de um conjunto de dados, o local se torna imutável e não é possível alterá-lo no Console do GCP, na IU da Web clássica do BigQuery, na ferramenta da linha de comando ou chamando os métodos da API patch ou update.
  • Todas as tabelas referenciadas em uma consulta precisam ser armazenadas em conjuntos de dados no mesmo local.

  • Ao copiar uma tabela, os conjuntos de dados que contêm as tabelas de origem e de destino precisam estar no mesmo local.

  • Os nomes dos conjuntos de dados precisam ser exclusivos por projeto.

  • À medida que o número de conjuntos de dados em um projeto se aproxima dos milhares, o desempenho da IU clássica começa a se degradar e a listagem de conjuntos de dados fica mais lenta.

Como nomear conjuntos de dados

Quando você cria um conjunto de dados no BigQuery, ele precisa ter um nome exclusivo por projeto. O nome do conjunto de dados:

  • pode conter até 1.024 caracteres;
  • pode conter letras (maiúsculas e minúsculas), números e sublinhados;

  • diferencia maiúsculas de minúsculas: mydataset e MyDataset podem coexistir no mesmo projeto.

Os nomes dos conjuntos de dados não podem:

  • conter espaços ou caracteres especiais, como -, &, @ ou %.

Permissões exigidas

Para criar um conjunto de dados, é necessário ter, no mínimo, as permissões bigquery.datasets.create. Os papéis predefinidos do Cloud IAM a seguir incluem permissões bigquery.datasets.create:

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

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

Como criar um conjunto de dados

Para criar um conjunto de dados:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acessar o Console do GCP

  2. No painel de navegação, na seção Recursos, selecione seu projeto.

  3. No lado direito da janela, no painel de detalhes, clique em Criar conjunto de dados.

  4. Na página Criar conjunto de dados, faça o seguinte:

    • Em Código do conjunto de dados, insira um nome exclusivo para o conjunto de dados.
    • (Opcional) Em Local dos dados, escolha um local geográfico para o conjunto de dados. Se você deixar o valor definido como Padrão, o local será definido como US. Depois da criação de um conjunto de dados, não é possível alterar o local.

    • Em Expiração da tabela padrão, escolha uma das seguintes opções:

      • Nunca: (padrão) as tabelas criadas no conjunto de dados nunca são excluídas automaticamente. Você precisa excluí-las manualmente.
      • Número de dias após a criação da tabela: esse valor determina quando uma tabela recém-criada no conjunto de dados é excluída. Esse valor será aplicado se você não definir uma validade durante a criação da tabela.
    • Clique em Criar conjunto de dados.

IU clássica

  1. Clique no ícone de seta para baixo ícone de seta para baixo ao lado do nome do projeto na navegação e clique em Criar novo conjunto de dados.

  2. Na caixa de diálogo Criar conjunto de dados:

    • Em Código do conjunto de dados, digite um nome exclusivo.
    • Em Local de dados, escolha um local para o conjunto de dados. O valor padrão é Não especificado, que define o local do conjunto de dados como US. Após a criação de um conjunto de dados, não é possível alterar o local.

    • Em Expiração dos dados, escolha uma das opções a seguir:

      • Nunca: (padrão) as tabelas criadas no conjunto de dados nunca são excluídas automaticamente. Você precisa excluí-las manualmente.
      • Em integer dias: toda tabela criada no conjunto de dados é excluída após integer dias a partir do momento da criação. Esse valor será aplicado se você não definir uma validade quando a tabela for criada.

        Expiração dos dados refere-se à expiração padrão da tabela para novas tabelas criadas no conjunto de dados. No momento, não é possível definir uma expiração da partição padrão na IU da Web do BigQuery ao criar um conjunto de dados. É possível definir uma expiração da partição padrão após a criação do conjunto de dados usando a ferramenta de linha de comando ou a API.

    • Clique em OK.

CLI

Use o comando bq mk com a sinalização --location para criar um novo conjunto de dados. Os parâmetros opcionais incluem --default_table_expiration, --default_partition_expiration e --description.

Para criar um conjunto de dados em um projeto diferente do padrão, adicione o ID do projeto ao nome do conjunto de dados no formato a seguir: project_id:dataset.

bq --location=location mk \
--dataset \
--default_table_expiration integer1 \
--default_partition_expiration integer2 \
--description description \
project_id:dataset

Em que:

  • location é o local do conjunto de dados. Após a criação de um conjunto de dados, o local não pode ser alterado. É possível definir um valor padrão para o local usando o arquivo .bigqueryrc.

  • integer1 é a vida útil padrão (em segundos) das tabelas recém-criadas. O valor mínimo é de 3.600 segundos (uma hora). O prazo de validade é avaliado como a hora atual mais o valor inteiro. Qualquer tabela criada no conjunto de dados é excluída após [INTEGER] segundos a partir do momento da criação. Esse valor será aplicado se você não definir uma expiração da tabela na criação da tabela.

  • integer2 é a vida útil padrão (em segundos) das partições nas tabelas particionadas recém-criadas. Não há um valor mínimo de expiração de partição padrão. O prazo de validade é avaliado como a data da partição mais o valor inteiro. Qualquer partição criada em uma tabela particionada no conjunto de dados é excluída após [INTEGER2] segundos a partir da data da partição. Se você fornecer a sinalização --time_partitioning_expiration ao criar ou atualizar uma tabela particionada, a expiração da partição no nível da tabela terá precedência sobre a expiração da partição padrão no nível do conjunto de dados.

  • description é uma descrição do conjunto de dados entre aspas.

  • project_id é o ID do projeto.

  • dataset é o nome do conjunto de dados que você está criando.

Por exemplo, o comando a seguir cria um conjunto de dados chamado mydataset com o local de dados definido como US, uma expiração da tabela padrão de 3.600 segundos (1 hora) e uma descrição de This is my dataset. Em vez de usar a sinalização --dataset, o comando usa o atalho -d. Se você omitir -d e --dataset, o comando será padronizado para a criação de um conjunto de dados.

bq --location=US mk -d \
--default_table_expiration 3600 \
--description "This is my dataset." \
mydataset

API

Chame o método datasets.insert com um recurso de conjunto de dados definido.

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 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 BigQueryCreateDataset
{
    public BigQueryDataset CreateDataset(
        string projectId = "your-project-id",
        string location = "US"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        var createDatasetOptions = new CreateDatasetOptions()
        {
            // Specify the geographic location where the dataset should reside.
            Location = location
        };
        // Create the dataset
        return client.CreateDataset(
            datasetId: "your_new_dataset_id", options: createDatasetOptions);
    }
}

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.

// 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")
meta := &bigquery.DatasetMetadata{
	Location: "US", // Create the dataset in the US.
}
if err := client.Dataset(datasetID).Create(ctx, meta); err != nil {
	return 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.

Dataset dataset = null;
DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
try {
  // the dataset was created
  dataset = bigquery.create(datasetInfo);
} catch (BigQueryException e) {
  // the dataset was not created
}

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 and create a client
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function createDataset() {
  // Creates a new dataset named "my_dataset".

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

  // Specify the geographic location where the dataset should reside
  const options = {
    location: 'US',
  };

  // Create a new dataset
  const [dataset] = await bigquery.createDataset(datasetId, options);
  console.log(`Dataset ${dataset.id} created.`);
}
createDataset();

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->createDataset($datasetId);
printf('Created 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 dataset_id to the ID of the dataset to create.
# dataset_id = "{}.your_dataset".format(client.project)

# Construct a full Dataset object to send to the API.
dataset = bigquery.Dataset(dataset_id)

# TODO(developer): Specify the geographic location where the dataset should reside.
dataset.location = "US"

# Send the dataset to the API for creation.
# Raises google.api_core.exceptions.Conflict if the Dataset already
# exists within the project.
dataset = client.create_dataset(dataset)  # API request
print("Created dataset {}.{}".format(client.project, dataset.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 create_dataset dataset_id = "my_dataset", location = "US"
  bigquery = Google::Cloud::Bigquery.new

  # Create the dataset in a specified geographic location
  bigquery.create_dataset dataset_id, location: location

  puts "Created dataset: #{dataset_id}"
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.