Copia conjuntos de datos

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. Verifica si completaste todas las acciones necesarias para habilitar el Servicio de transferencia de datos de BigQuery.
  • Si usas la IU web clásica de BigQuery para crear la transferencia, habilita las ventanas emergentes de bigquery.cloud.google.com en tu navegador, a fin de 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 la sección sobre limitaciones de ubicación). 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 Cloud Pub/Sub, debes tener los permisos pubsub.topics.setIamPolicy. Los permisos de Cloud Pub/Sub no son obligatorios 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.

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:

  1. El permiso bigquery.transfers.update para crear la transferencia de copia.

  2. El permiso bigquery.tables.list en el conjunto de datos de origen.

    Las 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
  3. Los permisos bigquery.tables.list y bigquery.tables.create en el conjunto de datos de destino.

    Las siguientes funciones predefinidas de IAM a nivel de proyecto contienen los permisos bigquery.tables.list y bigquery.tables.create:

    • bigquery.dataEditor
    • bigquery.dataOwner
  4. 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 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).

  1. Dirígete a la IU web de BigQuery.

    Ir a la IU web de BigQuery

  2. Selecciona el nombre del conjunto de datos de origen que deseas copiar.

  3. Haz clic en el ícono Copiar conjunto de datos (Copy Dataset).

    Ícono de Copiar conjunto de datos

  4. 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 diferentes regiones, pero no se admiten todas las regiones para la copia de conjuntos de datos entre regiones.

  5. Los nombres de conjuntos de datos dentro de un proyecto deben ser exclusivos.

  6. De forma opcional, puedes marcar la casilla Reemplazar tabla de destino (Overwrite destination table) si deseas actualizar (reemplazar) todos los datos en el conjunto de datos de destino. Se reemplazarán los datos y los esquemas.

    Cuadro de díalogo de Copiar conjunto de datos

  7. Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.

Opción 2: usa la IU de transferencias.

  1. Dirígete a la IU web de BigQuery.

    Ir a la IU web de BigQuery

  2. Haz clic en Transferencias.

  3. Haz clic en + CREAR UNA TRANSFERENCIA (CREATE A TRANSFER).

  4. En la página Crear transferencia, realiza lo siguiente:

    • En la sección Tipo de origen (Source type), en Origen (Source), elige Copia de conjunto de datos (Dataset Copy).

      Fuente de la transferencia

    • En el campo Nombre visible (Display name) de la sección Nombre de la configuración de transferencia (Transfer config name), ingresa un nombre para la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla fácilmente si es necesario hacerle modificaciones más tarde.

      Nombre de la transferencia

    • En el campo en Programa de la sección Opciones de programación (Schedule options), deja el valor predeterminado (Comenzar ahora [Start now]) o haz clic en Comenzar a una hora determinada (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)
        • Por semana (Weekly)
        • Por mes (Monthly)
        • Personalizado (Custom)
        • 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á.

        Programa de la transferencia

    • En Conjunto de datos de destino, elige el conjunto de datos que creaste para almacenar tus datos, en una región diferente.

    • En Conjunto de datos de origen (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.

    • Puedes marcar la casilla Reemplazar tabla de destino (Overwrite destination table) si deseas actualizar (reemplazar) todos los datos en el conjunto de datos de destino (opcional). Se reemplazarán los datos y los esquemas.

      Copia de conjunto de datos nueva

    • De forma opcional, en la sección Opciones de notificación (Notification options), puedes realizar 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 Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema. Esta opción configura las notificaciones de ejecución de Cloud Pub/Sub para tu transferencia.

      Tema de Cloud Pub/Sub

  5. Haz clic en Guardar (Save).

  6. Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.

IU clásica

  1. Ve a la IU web clásica de BigQuery.

    Ir a la IU web clásica de BigQuery.

  2. Haz clic en Transferencias.

  3. Haz clic en Agregar transferencia.

  4. 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 identificar la transferencia con facilidad si necesitas modificarla 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 Weekly (Semanal), Monthly (Mensual) o Custom (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.

      Copia de conjunto de datos nueva

    • Expande la sección Avanzado (Advanced) y configura las notificaciones de ejecución para tu transferencia (opcional).

    • En Tema de Cloud Pub/Sub, ingresa el nombre de tu tema de Cloud Pub/Sub, por ejemplo, projects/myproject/topics/mytopic.

    • Marca Send email notifications (Enviar notificaciones por correo electrónico) para activar las notificaciones por correo de las ejecuciones de transferencia con errores.

      Tema de Cloud Pub/Sub

  5. Haz clic en Agregar (Add).

  6. Se recomienda borrar el conjunto de datos anterior para evitar costos de almacenamiento adicionales.

CLI

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]'
    

Donde:

  • --project_id es el ID del proyecto de Google Cloud Platform. Si no se especifica --project_id, se usa el proyecto predeterminado.
  • --data_source es la fuente de datos: cross_region_copy.
  • --target_dataset es el conjunto de datos de destino de BigQuery para la configuración de la transferencia.
  • --display_name es el nombre visible del trabajo de copia o la transferencia de configuración. El nombre de la transferencia puede ser cualquier valor que te permita identificarla fácilmente si es necesario hacerle modificaciones más tarde.
  • --params 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ámetros source_dataset_id, source_project_id y overwrite_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: el ID del conjunto de datos de origen que deseas copiar
  • source_project_id: 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, el siguiente comando 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 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 suministra 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

Consola del botón de Transferencias

Consola de Ver detalles de transferencia

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.

Botón de Actualizar copia de conjunto de datos

IU clásica

Botón clásico de Transferencias

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.

Botón de Actualizar copia de conjunto de datos

Precios

No se generan cargos por la copia de conjuntos de datos durante el período Beta.

Durante la disponibilidad general, los datos copiados entre regiones se facturarán 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 siguientes límites 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 (CLI), 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 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, la consola o la IU web clásica de BigQuery. También se aplican a los trabajos de copia enviados de manera programática con el método de API de tipo de copia jobs.insert.

  • Trabajos de copiado por tabla de destino por día: 1,000 (incluye fallas)
  • Trabajos de copia por proyecto por día: 100,000 (incluye fallas)

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 transferencias adicionales se pondrá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.

Entre regiones

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 omitirán cuando se copien las tablas al 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 creará automáticamente 8 ejecuciones de manera secuencial. La primera ejecución copiará 1,000 tablas; luego, 24 horas después, otra ejecución copiará 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 una tabla existe en el conjunto de datos de origen y el de destino y no se modificó desde la última copia exitosa, se omitirá. 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. Todos los datos en el conjunto de datos de destino se actualizarán (se reemplazarán). Se reemplazarán los datos y los esquemas.

Limitaciones de ubicación

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

Nombre de la región Descripción de la región
Europa
europe-west2 Londres
Asia Pacífico
asia-northeast1 Tokio
asia-southeast1 Singapur
australia-southeast1 Sídney

Ubicaciones multirregionales

Nombre de la multirregión Descripción de la multirregión
EU Unión Europea1
US Estados Unidos

1 Los datos ubicados en la multirregión EU no se almacenan en el centro de datos europe-west2 (Londres).

Pasos siguientes

  • Para acceder a información sobre el uso de las transferencias, lo que incluye obtener información sobre una configuración de transferencia, enumerar las configuraciones de transferencia y ver el historial de ejecuciones de una transferencia, consulta la sección sobre cómo trabajar con transferencias.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

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