Migrar o tráfego para o Firestore
Esta página descreve a última etapa do processo de migração, em que você monitora a migração e determina quando alternar o tráfego para minimizar o tempo de inatividade do aplicativo.
Estas são as etapas:
- Determine se houve erros durante a transferência de dados. Observe as limitações conhecidas atuais para tipos de dados e tamanhos de documentos.
- Determine quando é apropriado desligar o tráfego de gravação para o banco de dados de origem.
- Determine quando todos os dados (incluindo eventos de mudança recentes) foram replicados para o banco de dados do Firestore com compatibilidade com o MongoDB. Neste ponto, é seguro redirecionar o tráfego de leitura para o novo destino.
- Depois que todas as suas cargas de trabalho de aplicativos estiverem lendo dados apenas do Firestore, será seguro ativar e direcionar o tráfego de gravação para o banco de dados do Firestore com compatibilidade com o MongoDB.
Verificar marcos de conclusão da migração
As instruções nesta seção exigem acesso ao Dataflow no console Google Cloud .
No Google Cloud console, acesse a página Dataflow:
O banco de dados de origem está recebendo todo o tráfego de leitura e gravação
Depois de iniciar os pipelines do Datastream e do Dataflow, o banco de dados de origem vai continuar recebendo tráfego de leitura e gravação. Use os marcos a seguir para determinar quando a migração pode passar para a próxima etapa:
A etapa Eventos de gravação transacional do pipeline do Dataflow não processa mais um backlog de dados, e a taxa de transferência cai para um estado estável baixo que corresponde ao tráfego ativo do banco de dados de origem:
A atualização de dados na guia Monitoramento do Datastream é mínima e está muito próxima do tráfego em andamento no banco de dados de origem:
Depois que a transferência de dados atingir esse estado estável, avance para a próxima etapa.
Desligue o tráfego de gravação para o banco de dados de origem
Depois de determinar que o stream do Datastream concluiu o preenchimento em massa e que o modelo do Dataflow está fazendo gravações transacionais a uma velocidade constante apenas para mudanças ativas do banco de dados de origem, você pode iniciar o processo de transição. Esse processo exige um pequeno período de inatividade para permitir que todo o tráfego restante seja replicado para o banco de dados de destino do Firestore com compatibilidade com o MongoDB.
Interrompa todo o tráfego de gravação no banco de dados de origem compatível com o MongoDB. Dependendo dos requisitos e da funcionalidade do aplicativo, talvez seja interessante continuar permitindo o tráfego de leitura para o banco de dados de origem.
Monitore a capacidade e os registros do Datastream e a capacidade, o atraso de dados e os registros do Dataflow para garantir que a última parte do tráfego de gravação foi processada.
Inspecione a fila de mensagens inativas. Determine se algum documento não pôde ser gravado no banco de dados de destino durante a migração e decida se vai continuar com a migração.
Migrar o tráfego de leitura para o Firestore
Depois que todos os eventos de fluxo de mudanças pendentes são replicados para o Firestore, os dois bancos de dados contêm exatamente os mesmos dados. Agora é possível transferir o tráfego de leitura e, em seguida, o de gravação.
Se você permitiu o tráfego de leitura para o banco de dados de origem compatível com o MongoDB na etapa anterior:
- Transfira o tráfego de leitura.
- Verifique se todos os serviços que estavam originalmente conectados ao banco de dados de origem compatível com o MongoDB foram atualizados para realizar leituras do banco de dados do Firestore com compatibilidade com o MongoDB.
Migrar o tráfego de gravação para o Firestore
Depois que a etapa anterior for concluída, será seguro redirecionar o tráfego de gravação do aplicativo diretamente para o Firestore.
Interromper o pipeline de migração
A migração foi concluída. Agora é possível interromper o fluxo do Datastream e o job do Dataflow.
Pause o stream do Datastream:
gcloud datastream streams update "$DATASTREAM_NAME" \
--location="$LOCATION" \
--state=PAUSED \
--update-mask=state
Para encerrar o pipeline do Dataflow:
Para listar todos os jobs atuais:
gcloud dataflow jobs list --region="$LOCATION"
A saída vai gerar uma lista de jobs do Dataflow.
Na lista de jobs, encontre o valor
NAME
com o carimbo de data/hora especificado na variável de ambienteDATAFLOW_START_TIME
.Formato:
dataflow-mongodb-to-firestore-DATAFLOW_START_TIME
. Exemplo:dataflow-mongodb-to-firestore-20250514173638
.Receba o
JOB_ID
correspondente. Por exemplo:2025-05-14_17_36_39-10772223470853954680
.Execute o comando de encerramento para esse ID do job:
gcloud dataflow jobs drain \ JOB_ID \ --region="$LOCATION"
Exemplo:
gcloud dataflow jobs drain \ 2025-05-14_17_36_39-10772223470853954680 \ --region="$LOCATION"
A seguir
Para dicas de solução de problemas, consulte Solução de problemas de migração.