Puedes copiar un conjunto de datos dentro de una región o de una región a otra sin extraer, mover y volver a cargar los datos en BigQuery. Puedes copiar el conjunto de datos una vez o según una programación recurrente personalizada.
Antes de comenzar
Antes de crear una copia de un conjunto de datos, ten en cuenta esta información:
- La copia del conjunto de datos usa características del Servicio de transferencia de datos de BigQuery. En el proyecto de Google Cloud de tu conjunto de datos de destino, verifica si completaste todas las acciones necesarias para habilitar el Servicio de transferencia de datos de BigQuery.
- Si creas la transferencia con la IU web clásica de BigQuery, debes permitir que aparezcan ventanas emergentes en tu navegador de
bigquery.cloud.google.com
para que puedas ver la ventana de permisos. Debes otorgar al Servicio de transferencia de datos de BigQuery el permiso para administrar tu copia del conjunto de datos, que es un tipo de transferencia. - Crea un conjunto de datos de BigQuery como el conjunto de datos de destino en la misma región o en una región diferente a la de tu conjunto de datos de origen. Debes especificar una ubicación para almacenar tus datos de BigQuery cuando creas un conjunto de datos. Todavía no se admiten todas las regiones para la copia de conjuntos de datos (consulta Regiones admitidas). El nombre del conjunto de datos debe ser exclusivo en cada proyecto.
- Ubica el ID del conjunto de datos de origen que deseas copiar y el ID del proyecto de origen.
- Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub, debes tener los permisos
pubsub.topics.setIamPolicy
. Los permisos de Pub/Sub no son necesarios si solo configuras las notificaciones por correo electrónico. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery. - Si planeas reemplazar la tabla de destino durante el copiado con la marca
overwrite_destination_table
, ambas tablas deben tener el mismo esquema de partición.
Permisos necesarios
Antes de crear una copia de un conjunto de datos, asegúrate de que la persona que crea la copia tenga los siguientes permisos necesarios en BigQuery:
El permiso
bigquery.transfers.update
para crear la transferencia de copiaEl permiso
bigquery.tables.list
en el conjunto de datos de origenLas siguientes funciones predefinidas de IAM a nivel de proyecto contienen el permiso
bigquery.tables.list
:bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.metadataViewer
bigquery.user
Los permisos
bigquery.tables.list
ybigquery.tables.create
en el conjunto de datos de destinoLas siguientes funciones predefinidas de IAM a nivel de proyecto contienen los permisos
bigquery.tables.list
ybigquery.tables.create
:bigquery.dataEditor
bigquery.dataOwner
La función predefinida de IAM a nivel de proyecto
bigquery.admin
incluye todos los permisos necesarios para copiar un conjunto de datos. Para obtener más información sobre las funciones de IAM en BigQuery, consulta la sección sobre el control de acceso.
Configura una copia de conjunto de datos
Sigue estos pasos para crear una copia de un conjunto de datos.
Console
Opción 1: usa el ícono Copiar conjunto de datos (Copy Dataset).
Ve a la página de BigQuery en Cloud Console.
Selecciona el nombre del conjunto de datos de origen que deseas copiar.
Haz clic en el ícono Copiar un conjunto de datos (Copy Dataset).
En el cuadro de diálogo Copiar conjunto de datos (Copy Dataset), selecciona el ID del proyecto y el ID del conjunto de datos de destino. El proyecto y el conjunto de datos pueden estar en regiones diferentes, pero no todas las regiones se admiten para la copia de conjuntos de datos entre regiones.
Los nombres de conjuntos de datos dentro de un proyecto deben ser exclusivos.
De manera opcional, marca la casilla Reemplazar las tablas de destino (Overwrite destination table) si deseas actualizar (reemplazar) todos los datos en el conjunto de datos de destino. Se reemplazan las tablas y el esquema.
Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.
Opción 2: Usa el botón Transferencias (Transfers).
Ve a la página de BigQuery en Cloud Console.
Haz clic en Transfers.
Haz clic en + CREAR UNA TRANSFERENCIA (CREATE A TRANSFER).
En la página Crear transferencia, realiza lo siguiente:
En la sección Tipo de origen (Source type), en Origen (Source), elige Copiar un conjunto de datos (Dataset Copy).
En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia, como
My Transfer
. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.En la sección Opciones de programación (Schedule options), en Programa, deja el valor predeterminado, Comenzar ahora (Start now), o haz clic en Start at a set time.
En Repeticiones (Repeats), selecciona la frecuencia con la que se ejecutará la transferencia. Incluye las siguientes opciones:
- Diariamente (Daily) (predeterminada)
- Semanal
- Mensual
- Personalizada
- Según demanda (On demand)
Si eliges una opción que no sea Diariamente (Daily), tendrás opciones adicionales. Por ejemplo, si eliges Semanalmente (Weekly), aparece una opción para que selecciones el día.
En Fecha de inicio y hora de ejecución (Start date and run time), ingresa la fecha y hora para iniciar la transferencia. Si seleccionas Comenzar ahora (Start now), esta opción se inhabilitará.
En Conjunto de datos de destino, elige el conjunto de datos que creaste para almacenar tus datos, en una región diferente.
En Source dataset, ingresa el nombre del conjunto de datos que deseas copiar.
En Proyecto de origen (Source project), ingresa el ID del proyecto en el que se encuentra tu conjunto de datos de origen.
Marca la casilla Reemplazar las tablas de destino (Overwrite destination table) si deseas actualizar (reemplazar) todos los datos en el conjunto de datos de destino (opcional). Se reemplazan las tablas y el esquema.
De forma opcional, en la sección Opciones de notificación (Notification options), haz lo siguiente:
- Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de transferencias recibirá una notificación por correo electrónico cuando falle la ejecución de una transferencia.
- En Selecciona un tema de Pub/Sub (Select a Pub/Sub topic), elige el nombre de tu tema (topic) o haz clic en Crear un tema (Create topic) para crear uno. Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
Haz clic en Guardar (Save).
Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.
IU clásica
Ve a la IU web clásica de BigQuery.
Haz clic en Transfers.
Haz clic en Agregar transferencia.
En la página Transferencia nueva (New Transfer), haz lo siguiente:
- En Origen (Source), elige Copia de conjunto de datos (Dataset Copy).
- En Nombre visible (Display name), ingresa un nombre para la transferencia, como
My Dataset Copy
. El nombre visible puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde. En Programa (Schedule), puedes dejar el valor predeterminado de Diario (cada 24 horas, según el tiempo de creación) o puedes hacer clic en Editar (Edit) para cambiar la hora (opcional). También puedes cambiar el intervalo a Semanal, Mensual o Personalizado. Cuando seleccionas Personalizado, se espera una especificación de tiempo similar a Cron, por ejemplo
every 12 hours
. El período más corto permitido es de 12 horas.En Conjunto de datos de destino (Destination dataset), selecciona el conjunto de datos que corresponda.
En Conjunto de datos de origen (Source dataset), ingresa el nombre de tu conjunto de datos de origen.
En Proyecto de origen (Source project), selecciona el proyecto en el que se encuentra tu conjunto de datos de origen.
De forma opcional, expande la sección Avanzado (Advanced) y configura las notificaciones de ejecución para tu transferencia.
En Tema de Cloud Pub/Sub (Cloud Pub/Sub topic), ingresa el nombre de tu tema de Cloud Pub/Sub, por ejemplo,
projects/myproject/topics/mytopic
.Marca Enviar notificaciones por correo electrónico (Send email notifications) para activar las notificaciones por correo de las ejecuciones de transferencia con errores.
Haz clic en Agregar (Add).
Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.
bq
Ingresa el comando bq mk
y suministra la marca de creación de transferencias --transfer_config
. También se requieren las siguientes marcas:
--project_id
--data_source
--target_dataset
--display_name
--params
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --target_dataset=DATASET --display_name=NAME --params='PARAMETERS'
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud. Si no se especifica--project_id
, se usa el proyecto predeterminado.DATA_SOURCE
: Es la fuente de datos,cross_region_copy
.DATASET
: Es el conjunto de datos de destino de BigQuery para la configuración de transferencia.NAME
: Es el nombre visible del trabajo de copia o la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.PARAMETERS
contiene los parámetros para la configuración de la transferencia creada en formato JSON. Por ejemplo:--params='{"param":"param_value"}'
. Para copiar conjuntos de datos, debes suministrar los parámetrossource_dataset_id
,source_project_id
yoverwrite_destination_table
(este último es opcional).
Los parámetros para una configuración de copia de conjunto de datos son los siguientes:
source_dataset_id
: Es el ID del conjunto de datos de origen que deseas copiar.source_project_id
: Es el ID del proyecto en el que se encuentra tu conjunto de datos de origen.overwrite_destination_table
: Incluye este parámetro si deseas truncar las tablas de una copia anterior y actualizar todos los datos (opcional).
Por ejemplo, con el comando siguiente, se crea una configuración de copia de conjunto de datos llamada My Transfer
con un conjunto de datos de destino denominado mydataset
y un proyecto con el ID de myproject
.
bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'
API
Usa el método projects.locations.transferConfigs.create
y proporciona una instancia del recurso TransferConfig
.
Visualiza y actualiza trabajos de copia de conjunto de datos
Puedes consultar el progreso y ver los detalles de una copia de conjunto de datos en Transferencias (Transfers).
Console
Las ejecuciones de actualización de copia de conjunto de datos se ejecutan con la programación configurable que especifiques. El valor predeterminado es cada 24 horas. Haz clic en el menú Más (More) y, luego, en Actualizar ahora si deseas solicitar una ejecución nueva inmediata.
IU clásica
Las ejecuciones de actualización de copia de conjunto de datos se ejecutan con la programación configurable que especifiques. El valor predeterminado es cada 24 horas. Haz clic en Actualizar ahora si deseas solicitar una ejecución nueva inmediata.
Precios
No se generan cargos por la copia de conjuntos de datos durante el período Beta.
Durante la etapa de disponibilidad general, los datos copiados entre regiones se facturan con las mismas tarifas que los precios para la salida de red entre regiones de Compute Engine.
BigQuery envía datos comprimidos para copiar entre regiones, por lo que la cantidad de GB facturados puede ser menor que el tamaño de tu conjunto de datos.
Cuotas y limitaciones
Se aplican los límites siguientes a las copias de conjuntos de datos en BigQuery. Los límites se aplican a los trabajos de copia creados mediante la herramienta de línea de comandos de bq
, la consola o la IU web clásica de BigQuery. También se aplican a los trabajos de copia enviados de manera programática mediante el método de la API de tipo de copia jobs.insert
.
Todos los cargos de uso estándar de BigQuery por almacenamiento y consultas se aplican a los datos copiados. Consulta la sección sobre precios de BigQuery para obtener más información.
Las copias de conjuntos de datos de BigQuery están sujetas a las siguientes limitaciones:
Cuotas
Dentro de la región
La copia de conjuntos de datos dentro de una misma región sigue la misma cuota para todos los trabajos de copia de BigQuery.
Se aplican los siguientes límites a la copia de tablas en BigQuery. Los límites se aplican a los trabajos creados de forma automática mediante la copia de datos con la herramienta de línea de comandos de bq
, Cloud Console o la IU web clásica de BigQuery. También se aplican a los trabajos de copia enviados de manera programática mediante el método de la API de tipo de copia jobs.insert
.
- Trabajos de copia diarios por tabla de destino: 1,000 (incluye operaciones con errores)
- Trabajos de copia por proyecto por día: 100,000 (incluye operaciones con errores)
Entre regiones
- Trabajos de copia por tabla de destino por día: 100 (incluye las fallas)
- Trabajos de copia por proyecto por día: 2,000 (incluye las fallas)
Limitaciones generales
Debes crear el conjunto de datos de destino antes de poder crear una configuración de transferencia para la copia del conjunto de datos.
Para cada configuración de copia de conjunto de datos, puedes tener una copia activa a la vez. Las ejecuciones de transferencia adicionales están en cola.
Limitaciones del tipo de datos
- No se admite la copia de vistas.
- No se admite la copia de tablas externas.
- No se admite la copia del almacenamiento en un búfer de transmisión.
La compatibilidad con la copia de tablas encriptadas con claves administradas por el cliente es distinta para la copia dentro de la misma región y la copia entre regiones.
Dentro de la región
La copia de tablas encriptadas, incluidas las tablas encriptadas con claves administradas por el cliente (CMEK), se admite para la copia de conjuntos de datos dentro de la misma región.
Interregión
Se admite la copia de tablas con la encriptación predeterminada entre regiones. En la actualidad, no se admite la copia de tablas encriptadas con claves administradas por el cliente (CMEK) entre regiones. Las tablas encriptadas con CMEK se omiten cuando se copian tablas en el conjunto de datos de destino.
Limitaciones del conjunto de datos de origen
El tamaño máximo del conjunto de datos de origen es de 20,000 tablas. La cantidad de tablas que se pueden copiar por ejecución es distinta para copias dentro de una misma región y copias entre regiones.
Dentro de la región
El tamaño máximo del conjunto de datos de origen es de 20,000 tablas.
Se puede copiar un máximo de 20,000 tablas por ejecución al conjunto de datos de destino.
Entre regiones
El tamaño máximo del conjunto de datos de origen es de 20,000 tablas.
Se puede copiar un máximo de 1,000 tablas por ejecución al conjunto de datos de destino.
Ejemplo
Si configuras una copia entre regiones de un conjunto de datos que tiene 8,000 tablas, el Servicio de transferencia de datos de BigQuery crea de forma automática 8 ejecuciones de manera secuencial. La primera ejecución copia 1,000 tablas; luego, 24 horas después, otra ejecución copia 1,000 tablas y así hasta que se copien todas las tablas del conjunto de datos, hasta un máximo de 20,000 tablas por conjunto de datos.
Limitaciones de las tablas
En la actualidad, se admite la copia de tablas particionadas. Sin embargo, no es posible agregar datos a una tabla particionada.
Si existe una tabla en el conjunto de datos de origen y el conjunto de datos de destino, y no cambió desde la última copia exitosa, se omite. Esto ocurre incluso si se marca la casilla Reemplazar tabla de destino.
Cuando se truncan las tablas, la copia del conjunto de datos no detecta ningún cambio realizado en el conjunto de datos de destino antes de comenzar la copia. Se actualizan (reemplazan) todos los datos del conjunto de datos de destino. Se reemplazan las tablas y el esquema.
- Si planeas reemplazar la tabla de destino durante el copiado mediante la marca
overwrite_destination_table
, ambas tablas deben tener el mismo esquema de partición.
- Si planeas reemplazar la tabla de destino durante el copiado mediante la marca
Regiones admitidas
Hay dos tipos de ubicaciones:
Una región es un lugar geográfico específico, como Londres.
Una multirregión es un área geográfica grande, como los Estados Unidos, que contiene dos o más lugares geográficos.
Los conjuntos de datos se pueden copiar de una región a otra, de una región individual a una multirregión, de una multirregión a una región individual o de una multirregión a otra multirregión.
En la actualidad, no se admiten todas las regiones para la copia de conjuntos de datos. Puedes crear copias de conjuntos de datos en regiones en las que se admita el Servicio de transferencia de datos de BigQuery, como se muestra a continuación.
Ubicaciones regionales
Descripción de la región | Nombre de la región | |
---|---|---|
América | ||
Las Vegas | us-west4 |
|
Los Ángeles | us-west2 |
|
Montreal | northamerica-northeast1 |
|
Virginia del Norte | us-east4 |
|
Oregón | us-west1 |
|
Salt Lake City | us-west3 |
|
São Paulo | southamerica-east1 |
|
Carolina del Sur | us-east1 |
|
Europa | ||
Bélgica | europe-west1 |
|
Finlandia | europe-north1 |
|
Fráncfort | europe-west3 |
|
Londres | europe-west2 |
|
Países Bajos | europe-west4 |
|
Zúrich | europe-west6 |
|
Asia-Pacífico | ||
Hong Kong | asia-east2 |
|
Yakarta | asia-southeast2 |
|
Bombay | asia-south1 |
|
Osaka | asia-northeast2 |
|
Seúl | asia-northeast3 |
|
Singapur | asia-southeast1 |
|
Sídney | australia-southeast1 |
|
Taiwán | asia-east1 |
|
Tokio | asia-northeast1 |
Ubicaciones multirregionales
Descripción de la multirregión | Nombre de la multirregión |
---|---|
Centros de datos dentro de los estados miembros de la Unión Europea1 | EU |
Centros de datos en Estados Unidos | US |
1 Los datos ubicados en la multirregión EU
no se almacenan en los centros de datos de europe-west2
(Londres) ni de europe-west6
(Zúrich).
Qué sigue
- Para acceder a información sobre el uso de las transferencias, lo que incluye la obtención de información sobre una configuración de transferencia, la enumeración de configuraciones de transferencia y la visualización del historial de ejecuciones de una transferencia, consulta la sección sobre cómo trabajar con transferencias.