En esta página, se describen las prácticas recomendadas para un caso de uso en el que configuraste la replicación de Datastream en BigQuery, pero configuraste el conjunto de datos de destino en una región incorrecta. Luego, quieres mover el conjunto de datos a otra región (o multirregión) sin tener que volver a sincronizar todos los datos de la base de datos de origen a BigQuery.
Antes de comenzar
Antes de comenzar a migrar tus datos a otra región, ten en cuenta lo siguiente:
- La migración lleva tiempo, y debes pausar temporalmente la transmisión durante la operación. Para mantener la integridad de los datos, la base de datos de origen debe conservar los registros de cambios cuando se pausa la transmisión. Para estimar cuánto tiempo pausar la transmisión, combina el valor de
max_stalenessen el conjunto de datos y la operación de combinación de mayor duración:- Para obtener información sobre cuánto tiempo pueden tardar en finalizar las operaciones de combinación, consulta Valor recomendado de la tabla
max_staleness. - Para encontrar el valor máximo de
max_stalenessen el conjunto de datos, consulta Cómo determinar el valor actual demax_stalenessde una tabla y ajusta la consulta según tus necesidades específicas. - Si la pausa estimada es demasiado larga para que la admita tu base de datos de origen, tal vez te convenga reducir temporalmente el valor de
max_stalenesspara las tablas del conjunto de datos.
- Para obtener información sobre cuánto tiempo pueden tardar en finalizar las operaciones de combinación, consulta Valor recomendado de la tabla
- Verifica que el usuario que realiza la migración tenga suficientes recursos de BigQuery en la región de destino (reserva de consultas y reserva en segundo plano). Para obtener más información sobre las reservas, consulta Asignaciones de reserva.
- Verifica que el usuario que realiza la migración tenga permisos suficientes para realizar esta operación, como los controles de Identity and Access Management (IAM) o los Controles del servicio de VPC.
Pasos de la migración
Para iniciar la migración del conjunto de datos, usa la replicación de datos de BigQuery:
En la consola de Google Cloud , ve a la página BigQuery Studio.
Crea una réplica del conjunto de datos de BigQuery en la región nueva:
ALTER SCHEMA DATASET_NAME ADD REPLICA 'NEW_REGION' OPTIONS(location='NEW_REGION');Reemplaza lo siguiente:
- DATASET_NAME: Es el nombre del conjunto de datos que deseas crear.
- NEW_REGION: Es el nombre de la región en la que deseas crear tu conjunto de datos. Por ejemplo,
region-us
Supervisa el progreso de la migración y espera hasta que la marca de agua de copia en la réplica esté a pocos minutos de la principal. Puedes ejecutar esta consulta en INFORMATION_SCHEMA de BigQuery para verificar el progreso de la migración:
SELECT catalog_name as project_id, schema_name as dataset_name, replication_time as dataset_replica_staleness FROM 'NEW_REGION'.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE catalog_name = PROJECT_ID AND schema_name = DATASET_NAME AND location = NEW_REGION;Reemplaza lo siguiente:
- PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
- DATASET_NAME: es el nombre de tu conjunto de datos.
- DATASET_REPLICA_STALENESS: Es la configuración de obsolescencia de las tablas en la réplica del conjunto de datos que creaste.
- NEW_REGION: Es la región en la que creaste el conjunto de datos.
Pausa el flujo de Datastream existente. Para obtener más información, consulta Cómo pausar la transmisión.
Espera a que se agote el flujo y toma nota del momento en que ingresó al estado
PAUSED.Para confirmar que se aplicaron los cambios más recientes de la CDC a la tabla de BigQuery, verifica el valor de
upsert_stream_apply_watermarkde la tabla. Ejecuta la siguiente consulta y asegúrate de que la marca de agua de la marca de tiempo sea 10 minutos posterior a cuando se pausó la transmisión:SELECT table_name, upsert_stream_apply_watermark FROM DATASET_NAME.INFORMATION_SCHEMA.TABLESPara ejecutar la consulta solo para una tabla específica, agrega la siguiente cláusula
WHERE:WHERE table_name = 'TABLE_NAME'Reemplaza lo siguiente:
- DATASET_NAME: es el nombre de tu conjunto de datos.
- TABLE_NAME: es opcional. Es la tabla para la que deseas verificar el
upsert_stream_apply_watermark.
Usa la consulta del paso 3 para verificar que la nueva marca de agua de copia de la región sea posterior a la
upsert_stream_apply_watermarkcapturada en el paso 6.De manera opcional, compara manualmente varias tablas del conjunto de datos principal en la región original con la réplica en la región nueva para verificar que todos los datos se hayan copiado correctamente.
Ejecuta el siguiente comando en BigQuery Studio para promover la réplica del conjunto de datos de BigQuery:
ALTER SCHEMA DATASET_NAME SET OPTIONS(primary_replica = 'NEW_REGION');Reemplaza lo siguiente:
- DATASET_NAME: es el nombre de tu conjunto de datos.
- NEW_REGION: Es la región en la que creaste el conjunto de datos.
De manera opcional, si ya no necesitas el conjunto de datos original (ahora la réplica) y no quieres incurrir en cargos adicionales, ve a BigQuery Studio y descarta el conjunto de datos original de BigQuery:
ALTER SCHEMA DATASET_NAME DROP REPLICA IF EXISTS ORIGINAL_REGION;Reemplaza lo siguiente:
- DATASET_NAME: Es el nombre del conjunto de datos original.
- ORIGINAL_REGION: Es la región del conjunto de datos original.
Crea un flujo nuevo con la misma configuración, pero con una nueva ubicación de destino de BigQuery.
Inicia la transmisión nueva.
Para evitar la replicación de eventos duplicados, inicia la transmisión desde una posición específica:
- En el caso de las fuentes de MySQL y Oracle, puedes identificar la posición del registro examinando los registros de la transmisión original y buscando la última posición desde la que la transmisión leyó correctamente. Para obtener información sobre cómo iniciar la transmisión desde una posición específica, consulta Administra transmisiones.
- En el caso de las fuentes de PostgreSQL, la nueva transmisión comienza a leer los cambios desde el primer número de secuencia de registro (LSN) en la ranura de replicación. Dado que es posible que la transmisión original ya haya procesado algunos de estos cambios, cambia manualmente el puntero de la ranura de replicación al último LSN desde el que leyó Datastream. Puedes encontrar este LSN en los registros del consumidor de Datastream.
De manera opcional, borra la transmisión original.