Migra una tabla de CDC a otra región

Puedes mover un conjunto de datos de destino de Datastream a otra región o multirregión de BigQuery con la replicación de conjuntos de datos entre regiones. Este flujo de trabajo actualiza la ubicación de un conjunto de datos de captura de datos modificados (CDC) activo y, al mismo tiempo, minimiza el tiempo de inactividad de la transmisión y evita un relleno histórico completo de tu base de datos de origen.

Durante la migración, es posible que la consulta de la región secundaria muestre resultados incompletos o inexactos. Para obtener más información sobre las limitaciones de la migración, consulta Replicación de conjuntos de datos entre regiones.

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 la transmisión de forma temporal 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 debes pausar la transmisión, combina el valor de max_staleness en el conjunto de datos y la operación de combinación de ejecución más larga:
    • 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_staleness en el conjunto de datos, consulta Determina el valor actual de max_staleness de una tabla y ajusta la consulta a tus necesidades específicas.
    • Si la pausa estimada es demasiado larga para que la admita tu base de datos de origen, es posible que quieras reducir temporalmente el valor de max_staleness para las tablas del conjunto de datos.
  • Verifica que el usuario que realiza la migración tenga suficientes recursos de BigQuery en la región de destino (reserva de consulta y reserva en segundo plano). Para obtener más información sobre las reservas, consulta Asignaciones de reservas.
  • Verifica que el usuario que realiza la migración tenga los permisos suficientes para realizar esta operación, como los controles de Identity and Access Management (IAM) o los Controles del servicio de VPC.

Pasos para la migración

Para iniciar la migración del conjunto de datos, usa la replicación de datos de BigQuery:

  1. En la Google Cloud consola de, ve a la página BigQuery Studio.

    Ir a BigQuery Studio

  2. 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.
  3. Supervisa el progreso de la migración y espera hasta que la marca de agua de copia en la réplica esté a unos 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 Google Cloud proyecto.
    • 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 tu conjunto de datos.
  4. Pausa la transmisión de Datastream existente. Para obtener más información, consulta Pausa la transmisión.

  5. Espera a que se agote la transmisión y toma nota de la hora en que la transmisión entró en el estado PAUSED.

  6. Para confirmar que se aplicaron los cambios más recientes de CDC a la tabla de BigQuery , verifica upsert_stream_apply_watermark de la tabla. Ejecuta la siguiente consulta y asegúrate de que la marca de tiempo de la marca de agua sea 10 minutos más tarde que cuando se pausó la transmisión:

    SELECT table_name, upsert_stream_apply_watermark
    FROM DATASET_NAME.INFORMATION_SCHEMA.TABLES
    

    Para 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 upsert_stream_apply_watermark.
  7. Usa la consulta del paso 3 para verificar que la marca de agua de copia de la región nueva sea posterior a la upsert_stream_apply_watermark capturada en el paso 6.

  8. De manera opcional, compara manualmente varias tablas en el conjunto de datos principal de la región original con la réplica en la región nueva para verificar que todos los datos se copien correctamente.

  9. Para ascender la réplica del conjunto de datos de BigQuery, ejecuta el siguiente comando en BigQuery Studio:

    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 tu conjunto de datos.
  10. 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 quita 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.
  11. Crea una transmisión nueva con la misma configuración, pero con una nueva ubicación de destino de BigQuery.

  12. 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 transmisión nueva comienza a leer los cambios desde el primer número de secuencia de registro (LSN) en la ranura de replicación. Debido a que la transmisión original ya podría haber 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 de consumidor de Datastream.
  13. De manera opcional, borra la transmisión original.