Migra a Firestore con compatibilidad con MongoDB

En esta guía, se explica el proceso paso a paso para migrar tu base de datos de origen compatible con MongoDB a una base de datos de Firestore con compatibilidad con MongoDB con un tiempo de inactividad mínimo.

Acerca del proceso de migración

El proceso de migración tiene las siguientes etapas:

  1. Preparación: Creas los recursos necesarios para la migración y configuras las variables de entorno que se usarán para ejecutar comandos en etapas posteriores del proceso de migración.

  2. Importa desde la base de datos de origen compatible con MongoDB: Usas el servicio de Datastream para capturar el contenido de tu base de datos de origen compatible con MongoDB y transferirlo a un bucket de Cloud Storage.

  3. Escribe datos en la base de datos de Firestore con compatibilidad con MongoDB: Usas el servicio de Dataflow para transferir datos del bucket de Cloud Storage a una base de datos de Firestore con compatibilidad con MongoDB.

    Esta canalización de Dataflow se ejecutará de forma simultánea con la transmisión de Datastream que extrae datos de la base de datos de origen compatible con MongoDB.

  4. Migra el tráfico a Firestore: En el punto adecuado del procedimiento, migra el tráfico de lectura y escritura de tu aplicación a la base de datos de Firestore con compatibilidad con MongoDB y detén la canalización de migración.

En el siguiente diagrama, se resume el proceso de migración:

Arquitectura de migración de datos de transmisión

Tu base de datos de origen compatible con MongoDB permanece en un estado de entrega mientras se realiza la transferencia de datos:

  • El proceso de Datastream captura tanto los datos en reposo como los eventos de cambio.
  • Habrá un breve período de disponibilidad parcial cuando debas cerrar el tráfico de escritura a tu base de datos de origen. Durante este período, el resto de los eventos de cambio se replica en Firestore.

  • Una vez que se completa la replicación, la base de datos de Firestore con compatibilidad con MongoDB puede convertirse en la nueva fuente de información para la carga de trabajo de tu aplicación. Todo el tráfico de lectura y escritura se puede dirigir a la nueva base de datos.

Pasos detallados para la migración

En esta sección, se describe la migración con más detalle.

El servicio de Datastream crea una transmisión entre una fuente y un destino. En este caso, la fuente es tu implementación actual compatible con MongoDB, mientras que el destino es Cloud Storage. Este proceso consta de los siguientes pasos:

  1. Crea un perfil de conexión de Datastream de origen para tu fuente de MongoDB. Las instrucciones específicas dependen del tipo y la forma en que se implementa tu fuente compatible con MongoDB.

  2. Crea un bucket de Cloud Storage que recibirá los datos y los eventos de cambio de tu base de datos de origen compatible con MongoDB.

  3. Crea un perfil de conexión de Datastream de destino que use este bucket de Cloud Storage.

  4. Crea y activa una transmisión de Datastream que conecte el perfil de conexión fuente con el perfil de conexión de destino.

  5. Inicia una canalización de Dataflow para comenzar a insertar los datos capturados en tu base de datos de Firestore con compatibilidad con MongoDB.

  6. Supervisa la transmisión para identificar los hitos importantes en el proceso de migración y determinar si se produjeron errores durante la transferencia de datos.

  7. Cuando sea apropiado, cierra el tráfico de escritura a la base de datos de origen. Después de que todos los datos, incluidos los cambios recientes, se replicaron en la base de datos de Firestore con compatibilidad con MongoDB, redirecciona el tráfico de lectura al nuevo destino.

  8. Habilita el tráfico de escritura en tu base de datos de Firestore con compatibilidad con MongoDB.

Acerca de los ejemplos de código

Los ejemplos de código de esta guía están diseñados para ejecutarse uno después del otro. En esta guía, se supone que configuras tu entorno estableciendo todas las variables de entorno de antemano. Luego, ejecutas los comandos necesarios para la migración que usan las variables de entorno ya configuradas. Te recomendamos que uses este enfoque. Como muchos comandos usan las mismas variables de entorno, puedes reducir la probabilidad de introducir errores entre las diferentes etapas del proceso de migración.

Como alternativa, puedes reemplazar las variables en los ejemplos de comandos por los mismos valores que estableciste para las variables de entorno correspondientes.

Limitaciones

Antes de comenzar, revisa las diferencias entre Firestore con compatibilidad con MongoDB y MongoDB. Presta especial atención a lo siguiente:

Si alguno de tus datos no cumple con las restricciones de las categorías anteriores, haz lo siguiente:

  • Te recomendamos que abordes estas condiciones en tu conjunto de datos antes de comenzar el proceso de migración.

  • Si decides continuar sin realizar cambios, los documentos afectados por las limitaciones no se escribirán en Firestore y se dejarán de lado. Puedes decidir cómo se deben manejar estos documentos. Si se convierten a tipos, valores o tamaños admitidos, se pueden volver a procesar.

Datastream tiene los siguientes requisitos:

  • La versión principal mínima de MongoDB compatible con Datastream es la 4.0. En el caso de algunas versiones secundarias, se admiten versiones de parche mínimas:

    • 4.0.21
    • 4.2.10
    • 4.4.2
  • Tu clúster de MongoDB debe admitir flujos de cambios. Tu implementación de MongoDB debe configurarse como un conjunto de réplicas o un clúster fragmentado para que se habiliten los Change Streams.

¿Qué sigue?

Continúa con Configura recursos para la migración.