Migrar tráfico a Firestore
En esta página se describe la última fase del proceso de migración, en la que se monitoriza la migración y se determina cuándo cambiar el tráfico para minimizar el tiempo de inactividad de la aplicación.
Estos son los pasos que debes seguir:
- Determina si se ha producido algún error durante la transferencia de datos. Nota: Consulta las limitaciones conocidas actuales en cuanto a los tipos de datos y los tamaños de los documentos.
- Determina cuándo es el momento adecuado para detener el tráfico de escritura en la base de datos de origen.
- Determina cuándo se replicaron todos los datos (incluidos los eventos de cambio recientes) en la base de datos de Firestore con compatibilidad con MongoDB. En este punto, se puede redirigir el tráfico de lectura al nuevo destino.
- Cuando todas las cargas de trabajo de tu aplicación lean datos de forma coherente solo de Firestore, podrás habilitar y dirigir el tráfico de escritura a la base de datos de Firestore con compatibilidad con MongoDB.
Comprobar los hitos de finalización de la migración
Para seguir las instrucciones de esta sección, debes tener acceso a Dataflow en la consola de Google Cloud .
En la Google Cloud consola, ve a la página Dataflow:
La base de datos de origen recibe todo el tráfico de lectura y escritura
Después de iniciar las dos canalizaciones (Datastream y Dataflow), tu base de datos de origen debería seguir recibiendo tráfico de lectura y escritura. Puedes usar los siguientes hitos para determinar cuándo se puede pasar al siguiente paso de la migración:
El paso Eventos de escritura transaccional de la pipeline de Dataflow ya no procesa un backlog de datos y el rendimiento se reduce a un estado estable bajo que coincide con el tráfico activo de tu base de datos de origen:
La actualización de los datos de la pestaña Monitorización de Datastream es mínima y está muy cerca del tráfico en curso de su base de datos de origen:
Cuando la transferencia de datos alcance este estado estable, ve al siguiente paso.
Cerrar el tráfico de escritura a la base de datos de origen
Una vez que haya determinado que la secuencia de Datastream ha completado el relleno inicial masivo y que la plantilla de Dataflow está haciendo escrituras transaccionales a una velocidad constante solo para los cambios activos de la base de datos de origen, puede iniciar el proceso de cambio. Este proceso requerirá un breve tiempo de inactividad para que todo el tráfico restante se replique en la base de datos de destino de Firestore con compatibilidad con MongoDB.
Detén todo el tráfico de escritura en la base de datos de origen compatible con MongoDB. En función de los requisitos y las funciones de tu aplicación, puede que quieras seguir permitiendo el tráfico de lectura a la base de datos de origen.
Monitoriza el rendimiento y los registros de Datastream, así como el rendimiento, el retraso de datos y los registros de Dataflow para asegurarte de que se haya procesado el último tráfico de escritura.
Inspecciona la cola de mensajes fallidos. Determina si no se han podido escribir documentos en la base de datos de destino durante la migración y decide si quieres continuar con la migración.
Migrar el tráfico de lectura a Firestore
Una vez que todos los eventos de cambio de flujo pendientes se hayan replicado en Firestore, ambas bases de datos contendrán exactamente los mismos datos. Ahora puedes transferir el tráfico de lectura y, después, el de escritura.
Si has elegido permitir el tráfico de lectura a la base de datos de origen compatible con MongoDB en el paso anterior, haz lo siguiente:
- Transfiere el tráfico de lectura.
- Asegúrate de que todos los servicios que estaban conectados originalmente a la base de datos de origen compatible con MongoDB se hayan actualizado para realizar lecturas desde la base de datos de Firestore con compatibilidad con MongoDB.
Migrar el tráfico de escritura a Firestore
Una vez completado el paso anterior, puedes redirigir el tráfico de escritura de tu aplicación directamente a Firestore.
Detener el flujo de procesamiento de migración
La migración ya se ha completado. Ahora puede detener el flujo de Datastream y la tarea de Dataflow.
Pausa el flujo de Datastream:
gcloud datastream streams update "$DATASTREAM_NAME" \
--location="$LOCATION" \
--state=PAUSED \
--update-mask=state
Para cerrar la canalización de Dataflow, sigue estos pasos:
Para mostrar todos los trabajos actuales, haz lo siguiente:
gcloud dataflow jobs list --region="$LOCATION"
El resultado será una lista de tareas de Dataflow.
En la lista de trabajos, busca el valor de
NAME
que tenga la marca de tiempo que hayas especificado en laDATAFLOW_START_TIME
variable de entorno.Formato:
dataflow-mongodb-to-firestore-DATAFLOW_START_TIME
. Ejemplo:dataflow-mongodb-to-firestore-20250514173638
Obtén el
JOB_ID
correspondiente. Ejemplo:2025-05-14_17_36_39-10772223470853954680
.Ejecuta el comando de purga para este ID de tarea:
gcloud dataflow jobs drain \ JOB_ID \ --region="$LOCATION"
Ejemplo:
gcloud dataflow jobs drain \ 2025-05-14_17_36_39-10772223470853954680 \ --region="$LOCATION"
Siguientes pasos
Para obtener consejos sobre cómo solucionar problemas, consulta Solución de problemas de migración.