Crea conjuntos de datos
En este documento, se describe cómo crear conjuntos de datos en BigQuery.
Puedes crear conjuntos de datos de las siguientes maneras:
- Usa la consola de Google Cloud.
- Usa una consulta de SQL
- Usa el comando
bq mk
en la herramienta de línea de comandos de bq. - Mediante una llamada 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 Copia conjuntos de datos.
Para obtener información sobre cómo consultar tablas en un conjunto de datos públicos, lee Consulta un conjunto de datos públicos con la consola de Google Cloud.
Limitaciones de los conjuntos de datos
Los conjuntos de datos de BigQuery están sujetos a las limitaciones siguientes:
- La ubicación del conjunto de datos solo se puede configurar en el momento de la creación. Una vez que se crea un conjunto de datos, su ubicación no se puede cambiar.
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 para cada proyecto.
Si cambias el modelo de facturación de almacenamiento de un conjunto de datos, debes esperar 14 días antes de que puedas volver a cambiarlo.
No puedes inscribir un conjunto de datos en la facturación de almacenamiento físico si tienes compromisos de ranura de tarifa plana heredados existentes en la misma región que el conjunto de datos.
Antes de comenzar
Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para hacer cada tarea de este documento.
Permisos necesarios
Para crear una vista, necesitas el permiso bigquery.datasets.create
de IAM.
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para crear una vista:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.user
roles/bigquery.admin
Para obtener más información sobre las funciones de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Asigna nombres a los conjuntos de datos
Cuando creas un conjunto de datos en BigQuery, su nombre debe ser único para cada proyecto. El nombre del conjunto de datos puede contener lo siguiente:
- Hasta 1,024 caracteres
- Letras (mayúsculas o minúsculas), números y guiones bajos
Los nombres de conjuntos de datos distinguen mayúsculas de minúsculas de forma predeterminada. mydataset
y MyDataset
pueden coexistir en el mismo proyecto, a menos que uno de ellos tenga la distinción entre mayúsculas y minúsculas desactivada.
Los nombres de los conjuntos de datos no pueden contener espacios o caracteres especiales como -
, &
, @
o %
.
Conjuntos de datos ocultos
Un conjunto de datos oculto es un conjunto de datos cuyo nombre comienza con un guion bajo. Puedes consultar tablas y vistas en conjuntos de datos ocultos de la misma manera que lo harías con cualquier otro conjunto de datos. Los conjuntos de datos ocultos tienen las siguientes restricciones:
- Están ocultos en el panel Explorador en la consola de Google Cloud.
- No aparecen en ninguna vista
INFORMATION_SCHEMA
. - No se pueden usar con conjuntos de datos vinculados.
- No aparecen en Data Catalog.
Crea conjuntos de datos
Sigue estos pasos para crear un conjunto de datos:
Console
Abre la página BigQuery en la consola de Google Cloud.
En el panel Explorador, selecciona el proyecto en el que deseas crear el conjunto de datos.
Expande la opción
Acciones y haz clic en Crear conjunto de datos:En la página Crear un conjunto de datos:
- En ID de conjunto de datos, ingresa un nombre único para el conjunto de datos.
En Tipo de ubicación, elige una ubicación geográfica para el conjunto de datos (opcional). Después de crear un conjunto de datos, la ubicación no se puede cambiar.
Opcional: Si deseas que las tablas en este conjunto de datos caduquen, selecciona Habilitar el vencimiento de la tabla y, luego, especifica la antigüedad máxima predeterminada de la tabla en días.
Opcional: Si deseas usar una clave de encriptación administrada por el cliente (CMEK), expande Opciones avanzadas y, luego, selecciona Clave de encriptación administrada por el cliente (CMEK).
Opcional: Si deseas usar nombres de tablas que no distinguen mayúsculas de minúsculas, expande Opciones avanzadas y, luego, selecciona Habilitar nombres de tablas que no distinguen entre mayúsculas y minúsculas.
Si deseas usar una intercalación predeterminada, expande Opciones avanzadas, selecciona Habilitar intercalación predeterminada y, luego, Intercalación predeterminada (opcional).
Opcional: Si deseas usar un modo de redondeo predeterminado, expande Opciones avanzadas y, luego, selecciona el modo de redondeo predeterminado que deseas usar.
Opcional: Si deseas habilitar el modelo de facturación de almacenamiento físico, expande Opciones avanzadas, luego selecciona Habilitar el modelo de facturación de almacenamiento físico.
Cuando cambias el modelo de facturación de un conjunto de datos, el cambio tarda 24 horas en aplicarse.
Una vez que cambies el modelo de facturación de almacenamiento de un conjunto de datos, debes esperar 14 días antes de poder volver a cambiar el modelo de facturación de almacenamiento.
Opcional: Si deseas configurar el período de viaje en el tiempo del conjunto de datos, expande Opciones avanzadas y, luego, selecciona Período de viaje en el tiempo que usar.
Haz clic en Crear conjunto de datos.
SQL
Usa la sentencia CREATE SCHEMA
.
Para crear un conjunto de datos en un proyecto que no sea el predeterminado, agrega el ID del proyecto al ID del conjunto de datos en el siguiente formato: PROJECT_ID.DATASET_ID
.
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente oración:
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 = [('KEY_1','VALUE_1'),('KEY_2','VALUE_2')], location = 'LOCATION', max_time_travel_hours = HOURS, storage_billing_model = BILLING_MODEL);
Reemplaza lo siguiente:
PROJECT_ID
: El ID de tu proyectoDATASET_ID
: es el ID del conjunto de datos que crearásKMS_KEY_NAME
: el nombre de la clave predeterminada de Cloud Key Management Service que se usa para proteger las tablas recién creadas en este conjunto de datos, a menos que se proporcione una clave diferente en el momento de la creación. No puedes crear una tabla encriptada por Google en un conjunto de datos con este parámetro de configuración.PARTITION_EXPIRATION
: la duración predeterminada (en días) para las particiones en tablas particionadas recién creadas. La expiración de partición predeterminada no tiene valor mínimo. El vencimiento se evalúa según la fecha de la partición más el valor de número entero. Cualquier partición creada en una tabla particionada en el conjunto de datos se borra después dePARTITION_EXPIRATION
días a partir de la fecha de la partición. Si proporcionas la opcióntime_partitioning_expiration
cuando creas o actualizas una tabla particionada, el vencimiento de la partición a nivel de la tabla tiene prioridad sobre el vencimiento predeterminado de la partición a nivel del conjunto de datos.TABLE_EXPIRATION
: la duración predeterminada (en días) de las tablas recién creadas. El valor mínimo es 0.042 días (una hora). La hora de vencimiento se evalúa según la hora actual más el número entero. Cualquier tabla creada en el conjunto de datos se borra enTABLE_EXPIRATION
días después de su hora de creación. Este valor se aplica si no estableces un vencimiento de la tabla cuando la creas.DESCRIPTION
: una descripción del conjunto de datosKEY_1:VALUE_1
: el par clave-valor que deseas establecer como la primera etiqueta de este conjunto de datos.KEY_2:VALUE_2
: el par clave-valor que deseas establecer como la segunda etiquetaLOCATION
: la ubicación del conjunto de datos. Después de crear un conjunto de datos, la ubicación no se puede cambiar.HOURS
la duración en horas del período del viaje para el conjunto de datos nuevo. El valorHOURS
debe ser un número entero expresado en múltiplos de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 días) y 168 (7 días). Si no se especifica esta opción, 168 horas es el valor predeterminado.BILLING_MODEL
: Establece el modelo de facturación de almacenamiento para el conjunto de datos. Establece el valorBILLING_MODEL
enPHYSICAL
para usar bytes físicos cuando se calculan los cambios de almacenamiento, o enLOGICAL
para usar bytes lógicos.LOGICAL
es la configuración predeterminada.Cuando cambias el modelo de facturación de un conjunto de datos, el cambio tarda 24 horas en aplicarse.
Una vez que cambies el modelo de facturación de almacenamiento de un conjunto de datos, debes esperar 14 días antes de poder volver a cambiar el modelo de facturación de almacenamiento.
Haz clic en
Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Para crear un conjunto de datos nuevo, usa el comando bq mk
con la marca --location
. Para obtener una lista completa de los parámetros posibles, consulta la
referencia del
comando bq mk --dataset
.
Para crear un conjunto de datos en un proyecto que no sea el predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente 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=KEY_1:VALUE_1 \ --label=KEY_2:VALUE_2 \ --add_tags=KEY_3:VALUE_3[,...] \ --max_time_travel_hours=HOURS \ --storage_billing_model=BILLING_MODEL \ PROJECT_ID:DATASET_ID
Reemplaza lo siguiente:
LOCATION
: 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 mediante el archivo.bigqueryrc
.KMS_KEY_NAME
: el nombre de la clave predeterminada de Cloud Key Management Service que se usa para proteger las tablas recién creadas en este conjunto de datos, a menos que se proporcione una clave diferente en el momento de la creación. No puedes crear una tabla encriptada por Google en un conjunto de datos con este parámetro de configuración.PARTITION_EXPIRATION
: 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. El tiempo de vencimiento se evalúa según la fecha de la partición más el valor de número entero. Cualquier partición creada en una tabla particionada en el conjunto de datos se borra después dePARTITION_EXPIRATION
segundos a partir de la fecha de la 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 tiene prioridad sobre el vencimiento predeterminado de la partición a nivel del conjunto de datos.TABLE_EXPIRATION
: la duración predeterminada (en segundos) para las tablas recién creadas. El valor mínimo es 3,600 segundos (una hora). El tiempo de caducidad se evalúa según el tiempo actual más el valor del número entero. Cualquier tabla creada en el conjunto de datos se borra enTABLE_EXPIRATION
segundos después de su hora de creación. Este valor se aplica si no estableces el vencimiento de la tabla cuando creas la tabla.DESCRIPTION
: una descripción del conjunto de datosKEY_1:VALUE_1
: el par clave-valor que deseas establecer como la primera etiqueta en este conjunto de datos, yKEY_2:VALUE_2
es el par clave-valor que deseas establecer como segunda etiqueta.KEY_3:VALUE_3
: El par clave-valor que deseas establecer como etiqueta en el conjunto de datos. Agrega varias etiquetas bajo la misma marca con comas entre pares clave-valor.HOURS
la duración en horas del período del viaje para el conjunto de datos nuevo. El valorHOURS
debe ser un número entero expresado en múltiplos de 24 (48, 72, 96, 120, 144, 168) entre 48 (2 días) y 168 (7 días). Si no se especifica esta opción, 168 horas es el valor predeterminado.BILLING_MODEL
: establece el modelo de facturación de almacenamiento para el conjunto de datos. Establece el valorBILLING_MODEL
enPHYSICAL
para usar bytes físicos cuando se calculan los cambios de almacenamiento, o enLOGICAL
para usar bytes lógicos.LOGICAL
es la configuración predeterminada.Cuando cambias el modelo de facturación de un conjunto de datos, el cambio tarda 24 horas en aplicarse.
Una vez que cambies el modelo de facturación de almacenamiento de un conjunto de datos, debes esperar 14 días antes de poder volver a cambiar el modelo de facturación de almacenamiento.
PROJECT_ID
: el ID de tu proyecto.DATASET_ID
es el ID del conjunto de datos que crearás.
Por ejemplo, con el siguiente comando, se crea un conjunto de datos llamado mydataset
con la ubicación de los datos establecida en US
, un vencimiento predeterminado de la tabla de 3,600 segundos (una 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
Para confirmar que se creó el conjunto de datos, ingresa el comando bq ls
. También puedes crear una tabla cuando creas un nuevo conjunto de datos con el siguiente formato: bq mk -t dataset.table
.
Para obtener más información sobre cómo crear tablas, consulta Crea una tabla.
Terraform
Usa el recurso google_bigquery_dataset
.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Crea un conjunto de datos
En el siguiente ejemplo, se crea un conjunto de datos llamado mydataset
:
Cuando creas un conjunto de datos con el recurso google_bigquery_dataset
, este otorga automáticamente acceso al conjunto de datos a todas las cuentas que son miembros de los roles básicos a nivel de proyecto.
Si ejecutas el comando terraform show
después de crear el conjunto de datos, el bloque access
del conjunto de datos será similar al siguiente:
Para otorgar acceso al conjunto de datos, te recomendamos que uses una de los siguientes recursos de google_bigquery_iam
, como se muestra en el siguiente ejemplo, a menos que planees crear objetos autorizados, como las vistas autorizadas dentro del conjunto de datos.
En ese caso, usa el
recurso google_bigquery_dataset_access
. Consulta esa documentación para ver ejemplos.
Crea un conjunto de datos y otorga acceso a él
En el siguiente ejemplo, se crea un conjunto de datos llamado mydataset
y, luego, se usa el recurso google_bigquery_dataset_iam_policy
para otorgarle acceso.
Crea un conjunto de datos con una clave de encriptación administrada por el cliente
En el siguiente ejemplo, se crea un conjunto de datos llamado mydataset
y también usa los recursos google_kms_crypto_key
y google_kms_key_ring
para especificar una clave de Cloud Key Management Service para el conjunto de datos. Debes habilitar la API de Cloud Key Management Service antes de ejecutar este ejemplo.
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
API
Llama al método datasets.insert
con un recurso de conjunto de datos definido.
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para C#.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Antes de probar este ejemplo, sigue las instrucciones de configuración para Ruby incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Seguridad de los conjuntos de datos
Para controlar el acceso a los conjuntos de datos en BigQuery, consulta Controla el acceso a los conjuntos de datos. Para obtener información sobre la encriptación de datos, consulta Encriptación en reposo.
¿Qué sigue?
- Para obtener más información sobre la creación de listas de conjuntos de datos en un proyecto, consulta Haz una lista de los conjuntos de datos.
- Para obtener más información sobre los metadatos en conjuntos de datos, consulta Obtén información sobre los conjuntos de datos.
- Para obtener más información sobre el cambio de las propiedades de un conjunto de datos, consulta Cómo actualizar las propiedades de los conjunto de datos.
- Para obtener más información sobre cómo crear y administrar etiquetas, consulta cómo crear y administrar etiquetas.
Pruébalo tú mismo
Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de BigQuery en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar BigQuery gratis