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 da Web clássica do BigQuery;
  • usando o comando da CLI bq mk;
  • chamando o método da API datasets.insert.

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, é preciso que os conjuntos de dados que contêm a tabela de origem e destino estejam 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 receber um papel primário no nível do projeto ou um papel de IAM predefinido com permissões de bigquery.datasets.create. Os seguintes papéis do IAM predefinidos no nível do projeto incluem permissões bigquery.datasets.create:

Para saber mais informações sobre os papéis e as permissões do 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 a IU da Web do BigQuery

  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, digite um nome exclusivo.
    • (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 que um conjunto de dados é criado, 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 depois 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 dos dados, escolha um local para o conjunto de dados. O valor padrão é Não especificado, que define o local como US. Depois que o conjunto é criado, não é mais possível alterar o local.

    • Em Expiração dos dados, 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.
      • Em [NÚMERO INTEIRO] dias: qualquer tabela criada no conjunto será excluída depois de [NÚMERO INTEIRO] dias a partir do momento da criação. Esse valor será aplicado se você não definir uma expiração na criação da tabela.

        Criar conjunto de dados

        Expiração dos dados refere-se à data de expiração padrão para as novas tabelas criadas no conjunto de dados. Atualmente, não é possível definir uma expiração de partição padrão na IU da Web do BigQuery ao criar um conjunto de dados. No entanto, é possível definir a expiração de partição padrão depois de criar o conjunto de dados com a ferramenta de linha de comando ou a API.

    • Clique em OK.

Linha de comando

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 código do projeto ao nome do conjunto de dados neste formato: [PROJECT_ID]:[DATASET].

bq --location=[LOCATION] mk --dataset --default_table_expiration [INTEGER] --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.

  • [INTEGER] é a vida útil padrão (em segundos) para as 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 na criação da tabela.

  • [INTEGER2] é a vida útil padrão (em segundos) para partições em 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 de partição no nível da tabela terá prioridade sobre a expiração de partição padrão no nível do conjunto de dados.

  • [DESCRIPTION] é uma descrição do conjunto de dados entre aspas.

  • [PROJECT_ID] é o código 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 dos dados configurado para US, uma expiração de tabela padrão de 3.600 segundos (uma 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 criará um conjunto de dados por padrão.

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

Digite o comando bq ls para confirmar a criação do conjunto de dados. Além disso, você pode criar uma tabela ao criar um novo conjunto de dados usando o formato bq mk -t [DATASET].[TABLE]. Para mais informações sobre como criação de 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 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 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")
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 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 do BigQuery para Node.js.

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

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

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

  // Create a new dataset
  const [dataset] = await bigqueryClient.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 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->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 (em inglês).

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

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

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