Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Como criar conjuntos de dados

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

Crie conjuntos de dados das seguintes maneiras:

  • Usando o Console do Google Cloud.
  • Como usar uma consulta SQL
  • use o comando bq mk na ferramenta de linha de comando bq.
  • Chamada do método de API datasets.insert
  • use bibliotecas de cliente;
  • Copiando um conjunto de dados existente.

Para ver as etapas para essa ação, inclusive entre regiões, consulte Como copiar conjuntos de dados.

Para consultar tabelas em um conjunto de dados público, consulte Consultar um conjunto de dados público com o Console do Google Cloud.

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. Depois que um conjunto de dados é criado, o local torna-se imutável e não pode ser alterado usando o console do Google Cloud, a ferramenta de linha de comando bq ou chamando os métodos de 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 conjuntos de dados de cada projeto devem ter nomes exclusivos.

Antes de começar

Atribua papéis do Identity and Access Management (IAM) que concedam aos usuários as permissões necessárias para realizar cada tarefa deste documento.

Permissões necessárias

Para criar um conjunto de dados, é preciso ter a permissão bigquery.datasets.create do IAM.

Cada um dos seguintes papéis predefinidos do IAM inclui as permissões necessárias para criar um conjunto de dados:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.user
  • roles/bigquery.admin

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

Nomear conjuntos de dados

Ao criar um conjunto de dados no BigQuery, ele precisa ter um nome exclusivo para cada projeto. O nome do conjunto de dados pode conter:

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

Os nomes dos conjuntos de dados diferenciam maiúsculas de minúsculas: mydataset e MyDataset podem coexistir no mesmo projeto.

Os nomes de conjuntos de dados não podem conter espaços ou caracteres especiais, como -, &, @ e %.

Criar conjuntos de dados

Para criar um conjunto de dados:

Console

  1. Abra a página do BigQuery no console do Google Cloud.

    Acesse a página do BigQuery

  2. No painel Explorador, selecione o projeto em que você quer criar o conjunto de dados.

  3. Expanda a opção Ações e clique em Criar conjunto de dados.

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

    • Em ID do conjunto de dados, insira um nome exclusivo para o conjunto de dados.
    • Em Local dos dados, escolha uma localização geográfica para o conjunto de dados. Após a criação de um conjunto de dados, o local não pode ser alterado.

    • Em Validade 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 caso a expiração da tabela não seja definida quando ela for criada.

    • Clique em Criar conjunto de dados.

SQL

Use a instrução CREATE SCHEMA.

Para criar um conjunto de dados em um projeto diferente do projeto padrão, adicione a ID do projeto ao ID do conjunto de dados no seguinte formato: PROJECT_ID.DATASET_ID.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No editor de consultas, digite a seguinte instrução:

    CREATE SCHEMA PROJECT_ID.DATASET_ID
      OPTIONS (
        default_kms_key_name = 'KMS_KEY_NAME',
        default_partition_expiration_days = PARTITION_EXPIRATION,
        default_table_expiration_days = TABLE_EXPIRATION,
        description = 'DESCRIPTION',
        labels = [('LABEL_1','VALUE_1'),('LABEL_2','VALUE_2')],
        location = 'LOCATION',
        max_time_travel_hours = HOURS);
    

    Substitua:

    • PROJECT_ID: ID do projeto
    • DATASET_ID: o ID do conjunto de dados que você está criando
    • KMS_KEY_NAME: o nome da chave padrão do Cloud Key Management Service usada para proteger tabelas recém-criadas nesse conjunto de dados, a menos que uma chave diferente seja fornecida no momento da criação. Não é possível criar uma tabela criptografada pelo Google em um conjunto de dados com este parâmetro definido.
    • PARTITION_EXPIRATION: a vida útil padrão (em segundos) das partições das 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 para a data da partição, acrescida desse valor. Qualquer partição criada em uma tabela particionada no conjunto de dados será excluída PARTITION_EXPIRATION segundos após a data da partição. Se você fornecer a opção time_partitioning_expiration ao criar ou atualizar uma tabela particionada, a validade da partição no nível da tabela terá prioridade sobre a validade da partição padrão no nível do conjunto de dados.
    • TABLE_EXPIRATION: 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 para a hora atual mais o valor inteiro; Qualquer tabela criada no conjunto de dados será excluída TABLE_EXPIRATION segundos após a hora de criação. Esse valor será aplicado caso a expiração da tabela não seja definida ao criar a tabela.
    • DESCRIPTION: uma descrição do conjunto de dados.
    • LABEL_1:VALUE_1: o par de chave-valor que você quer definir como o primeiro rótulo neste conjunto de dados.
    • LABEL_2:VALUE_2: o par de chave-valor que você quer definir como o segundo rótulo.
    • LOCATION: o local do conjunto de dados. Após a criação de um conjunto de dados, o local não pode ser alterado.
    • HOURS: a duração em horas do período de viagem do tempo para o novo conjunto de dados. A capacidade de configurar o período de tempo de viagem está em visualização. O campo hours precisa ser um valor entre 48 e 168. Se não for especificado, o padrão será 168.

  3. Clique em Executar.

Para informações sobre como executar consultas, consulte Como executar consultas interativas.

bq

Para criar um novo conjunto de dados, use o comando bq mk com a sinalização --location.

Para criar um conjunto de dados em um projeto diferente do projeto padrão, adicione a ID do projeto ao nome do conjunto de dados no seguinte formato: PROJECT_ID:DATASET_ID.

bq --location=LOCATION mk \
    --dataset \
    --default_kms_key=KMS_KEY_NAME \
    --default_partition_expiration=PARTITION_EXPIRATION \
    --default_table_expiration=TABLE_EXPIRATION \
    --description="DESCRIPTION" \
    --label=LABEL_1:VALUE_1 \
    --label=LABEL_2:VALUE_2 \
    --max_time_travel_hours=HOURS \
    PROJECT_ID:DATASET_ID

Substitua:

  • 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.

  • KMS_KEY_NAME: o nome da chave padrão do Cloud Key Management Service usada para proteger tabelas recém-criadas nesse conjunto de dados, a menos que uma chave diferente seja fornecida no momento da criação. Não é possível criar uma tabela criptografada pelo Google em um conjunto de dados com este parâmetro definido.

  • PARTITION_EXPIRATION: a vida útil padrão (em segundos) das partições das 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 para a data da partição, acrescida desse valor. Qualquer partição criada em uma tabela particionada no conjunto de dados é excluída PARTITION_EXPIRATION segundos após a data da partição. Se você fornecer a sinalização --time_partitioning_expiration ao criar ou atualizar uma tabela particionada, a validade da partição no nível da tabela terá prioridade sobre a validade da partição padrão no nível do conjunto de dados.

  • TABLE_EXPIRATION: a vida útil padrão, em segundos, das tabelas recém-criadas. O valor mínimo é de 3.600 segundos (uma hora). O tempo de expiração é avaliado como o horário atual mais o valor inteiro. Qualquer tabela criada no conjunto de dados será excluída TABLE_EXPIRATION segundos após a hora de criação. Esse valor será aplicado caso a expiração da tabela não seja definida ao criar a tabela.

  • DESCRIPTION: uma descrição do conjunto de dados.

  • LABEL_1:VALUE_1: o par de chave-valor que você quer definir como o primeiro rótulo desse conjunto de dados, e LABEL_2:VALUE_2 é o par de chave-valor que você quer definir como o par segundo marcador.

  • HOURS: a duração em horas do período de viagem do tempo para o novo conjunto de dados. A capacidade de configurar o período de tempo de viagem está em visualização. O campo HOURS precisa ser um valor entre 48 e 168. Se não for especificado, o padrão será 168.

  • PROJECT_ID: o ID do projeto

  • DATASET_ID é o ID do conjunto de dados que você está criando.

Por exemplo: o comando a seguir cria um conjunto de dados chamado mydataset com o local do conjunto de dados definido nos US, uma expiração de 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 retorna ao padrão para criar um conjunto de dados.

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

Para confirmar se o conjunto de dados foi criado, digite o comando bq ls. Além disso, é possível criar uma tabela ao criar um novo conjunto de dados usando o seguinte formato: bq mk -t dataset.table. Para mais informações sobre como criar tabelas, consulte Como criar uma tabela.

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 BigQuery em C#.


using Google.Apis.Bigquery.v2.Data;
using Google.Cloud.BigQuery.V2;

public class BigQueryCreateDataset
{
    public BigQueryDataset CreateDataset(
        string projectId = "your-project-id",
        string location = "US"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        var dataset = new Dataset
        {
            // Specify the geographic location where the dataset should reside.
            Location = location
        };
        // Create the dataset
        return client.CreateDataset(
            datasetId: "your_new_dataset_id", dataset);
    }
}

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

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// createDataset demonstrates creation of a new dataset using an explicit destination location.
func createDataset(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	meta := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset(datasetID).Create(ctx, meta); err != nil {
		return err
	}
	return nil
}

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 em Java.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.DatasetInfo;

public class CreateDataset {

  public static void runCreateDataset() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    createDataset(datasetName);
  }

  public static void createDataset(String datasetName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();

      Dataset newDataset = bigquery.create(datasetInfo);
      String newDatasetName = newDataset.getDatasetId().getDataset();
      System.out.println(newDatasetName + " created successfully");
    } catch (BigQueryException e) {
      System.out.println("Dataset was not created. \n" + e.toString());
    }
  }
}

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 para 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 em Python.

from google.cloud import bigquery

# 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, with an explicit timeout.
# Raises google.api_core.exceptions.Conflict if the Dataset already
# exists within the project.
dataset = client.create_dataset(dataset, timeout=30)  # Make an API request.
print("Created dataset {}.{}".format(client.project, dataset.dataset_id))

Ruby

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

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

Segurança do conjunto de dados

Para controlar o acesso a conjuntos de dados no BigQuery, consulte Como controlar o acesso a conjuntos de dados. Para saber mais sobre criptografia de dados, consulte Criptografia em repouso.

Próximas etapas

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do BigQuery em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação gratuita do BigQuery