Crea conjuntos de datos

En este documento, se describe cómo crear conjuntos de datos en BigQuery.

Puedes crear conjuntos de datos con los métodos siguientes:

  • Usa GCP Console o la IU web clásica de BigQuery.
  • Usa el comando de CLI bq mk.
  • Llama al método de la API datasets.insert.
  • Usa las bibliotecas cliente.
  • Copia un conjunto de datos existente.

Si deseas ver los pasos para copiar un conjunto de datos, incluso entre regiones, consulta cómo copiar conjuntos de datos.

Limitaciones de los conjuntos de datos

Los conjuntos de datos de BigQuery están sujetos a las limitaciones siguientes:

  • Solo puedes establecer la ubicación geográfica en el momento de la creación. Una vez que se crea un conjunto de datos, la ubicación se vuelve inmutable y no se puede cambiar en GCP Console, la IU web clásica de BigQuery, la herramienta de línea de comandos ni una llamada a los métodos de la API patch o update.
  • Todas las tablas a las que se hace referencia en una consulta deben almacenarse en conjuntos de datos en la misma ubicación.

  • Cuando copias una tabla, los conjuntos de datos que contienen la tabla de origen y la de destino deben estar en la misma ubicación.

  • Los nombres de los conjuntos de datos deben ser únicos por proyecto.

  • Cuando tienes miles de conjuntos de datos en un proyecto, el rendimiento de la IU clásica comienza a degradarse y el listado de conjuntos de datos se vuelve más lento.

Nombra conjuntos de datos

Cuando creas un conjunto de datos en BigQuery, el nombre del conjunto de datos debe ser único por proyecto. El nombre del conjunto de datos tiene las características siguientes:

  • Puede contener hasta 1,024 caracteres.
  • Puede contener letras (mayúsculas o minúsculas), números y guiones bajos.

  • Distingue mayúsculas de minúsculas: mydataset y MyDataset pueden coexistir en el mismo proyecto.

Los nombres de conjuntos de datos tienen estas limitaciones:

  • No pueden contener espacios o caracteres especiales como -, &, @, o %.

Permisos necesarios

Como mínimo, para crear un conjunto de datos, necesitas permisos bigquery.datasets.create. Las siguientes funciones predefinidas de Cloud IAM incluyen permisos bigquery.datasets.create como los siguientes:

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

Para obtener más información sobre las funciones y los permisos de Cloud IAM en BigQuery, consulta Funciones y permisos predefinidos.

Crea un conjunto de datos

Sigue estos pasos para crear un conjunto de datos:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a GCP Console

  2. En el panel de navegación, en la sección Recursos, selecciona tu proyecto.

  3. En el lado derecho de la ventana, en el panel de detalles, haz clic en Crear conjunto de datos.

  4. En la página Crear conjunto de datos, realiza lo siguiente:

    • En ID de conjunto de datos, ingresa un nombre único para el conjunto de datos.
    • En Ubicación de los datos, selecciona una ubicación geográfica para el conjunto de datos (opcional). Si dejas el valor establecido como Predeterminado, la ubicación se configura como US. Después de crear un conjunto de datos, la ubicación no puede cambiarse.

    • Para Vencimiento de la tabla predeterminada, selecciona una de las siguientes opciones:

      • Never (Nunca): (Predeterminado) las tablas creadas en el conjunto de datos nunca se borran de manera automática. Debes borrarlas tú mismo.
      • Cantidad de días después de la creación de la tabla: este valor determina cuándo se borra una tabla recién creada en el conjunto de datos. Este valor se aplica si no estableces un vencimiento en la tabla cuando la creas.
    • Haz clic en Create dataset.

IU clásica

  1. Haz clic en el ícono de flecha hacia abajo ícono de flecha hacia abajo que está junto al nombre de tu proyecto en la navegación y, luego, haz clic en Crear nuevo conjunto de datos.

  2. En el diálogo Crear conjunto de datos, realiza lo siguiente:

    • En Dataset ID, ingresa un nombre único para el conjunto de datos.
    • En Ubicación de los datos, elige una ubicación para el conjunto de datos. El valor predeterminado es Sin especificar, que establece la ubicación del conjunto de datos en US. Después de crear un conjunto de datos, la ubicación no se puede cambiar.

    • En Vencimiento de datos, elige una de las opciones siguientes:

      • Never: (Predeterminado) las tablas creadas en el conjunto de datos nunca se borran de manera automática. Debes borrarlas tú mismo.
      • En días enteros: cualquier tabla creada en el conjunto de datos se borra después de días enteros desde su hora de creación. Este valor se aplica si no estableces un vencimiento en la tabla cuando la creas.

        Vencimiento de datos refiere al vencimiento predeterminado para las tablas recién creadas en el conjunto de datos. No puedes establecer una partición predeterminada en la IU web de BigQuery cuando creas un conjunto. Puedes establecer un vencimiento de partición predeterminada después de crear el conjunto de datos con la herramienta de línea de comandos o la API.

    • Haz clic en Aceptar.

CLI

Usa el comando de bq mk con la marca --location para crear un conjunto de datos nuevo. Entre los parámetros opcionales se incluyen --default_table_expiration, --default_partition_expiration y --description.

Para crear un conjunto de datos en un proyecto distinto al tuyo predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente formato: project_id:dataset.

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

Donde:

  • ubicación corresponde a la ubicación del conjunto de datos. Después de crear un conjunto de datos, la ubicación no se puede cambiar. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc.

  • integer1 es la duración predeterminada (en segundos) para las tablas recién creadas. El valor mínimo es 3,600 segundos (una hora). La fecha de vencimiento se evalúa según la fecha actual más el valor del número entero. Cualquier tabla creada en el conjunto de datos se borra después de [INTEGER] segundos a partir de su hora de creación. Este valor se aplica si no estableces un vencimiento en la tabla cuando la creas.

  • integer2 es la duración predeterminada (en segundos) para las particiones en tablas particionadas recién creadas. La expiración de partición predeterminada no tiene valor mínimo. La fecha de vencimiento se evalúa según la fecha de la partición más el número entero. Cualquier partición creada en una tabla particionada en el conjunto de datos se borra después de [NÚMERO ENTERO2] segundos a partir de la fecha de partición. Si suministras la marca --time_partitioning_expiration cuando creas o actualizas una tabla particionada, el vencimiento de la partición a nivel de la tabla toma precedencia sobre el vencimiento predeterminado de la partición a nivel del conjunto de datos.

  • description es una descripción del conjunto de datos entre comillas.

  • project_id es el ID del proyecto.

  • dataset es el nombre del conjunto de datos que vas a crear.

Por ejemplo, con el comando siguiente, se crea un conjunto de datos llamado mydataset con la ubicación de datos establecida en US, un vencimiento de tabla predeterminado de 3,600 segundos (1 hora) y una descripción de This is my dataset. En lugar de usar la marca --dataset, el comando usa el acceso directo -d. Si omites -d y --dataset, el comando crea un conjunto de datos de manera predeterminada.

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

API

Llama al método datasets.insert con un recurso de conjunto de datos definido.

C#

Antes de probar esta muestra, sigue las instrucciones de configuración para C# que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si necesitas más información, consulta la documentación de referencia de la API de 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 probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la Documentación de referencia de la API de Go de BigQuery.

// 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 probar este ejemplo, sigue las instrucciones de configuración de Java incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para 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 probar esta muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para 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 probar esta muestra, sigue las instrucciones de configuración de PHP que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para 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 probar este ejemplo, sigue las instrucciones de configuración de Python incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la Documentación de referencia de la API de Python de BigQuery.

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 probar esta muestra, sigue las instrucciones de configuración para Ruby que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para 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

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.