Migre para o Firestore com compatibilidade com o MongoDB

Este guia explica o processo passo a passo de migração da sua base de dados de origem compatível com o MongoDB para uma base de dados compatível com o MongoDB do Firestore com um tempo de inatividade mínimo.

Acerca do processo de migração

O processo de migração tem as seguintes fases:

  1. Preparação: cria recursos necessários para a migração e configura variáveis de ambiente que vão ser usadas para executar comandos em fases posteriores do processo de migração.

  2. Importe a partir da base de dados de origem compatível com o MongoDB: usa o serviço Datastream para capturar o conteúdo da base de dados de origem compatível com o MongoDB e transferi-lo para um contentor do Cloud Storage.

  3. Escrever dados no Firestore com uma base de dados compatível com o MongoDB: usa o serviço Dataflow para transferir dados do contentor do Cloud Storage para uma base de dados compatível com o MongoDB do Firestore.

    Este pipeline do Dataflow é executado em simultâneo com a stream do Datastream que extrai dados da base de dados de origem compatível com o MongoDB.

  4. Migre o tráfego para o Firestore: no ponto adequado do procedimento, migre o tráfego de leitura e gravação da sua aplicação para a base de dados do Firestore com compatibilidade com o MongoDB e pare o pipeline de migração.

O diagrama seguinte resume o processo de migração:

Arquitetura de migração de dados de streaming

A base de dados de origem compatível com o MongoDB permanece num estado de publicação enquanto a transferência de dados ocorre:

  • O processo da stream de dados captura dados em repouso e eventos de alteração.
  • Vai existir um curto período de indisponibilidade parcial quando tiver de encerrar o tráfego de gravação na base de dados de origem. Durante este período, os restantes eventos de alteração são replicados para o Firestore.

  • Após a conclusão da replicação, a base de dados do Firestore com compatibilidade com o MongoDB pode tornar-se a nova fonte de verdade para a carga de trabalho da sua aplicação. Todo o tráfego de leitura e escrita pode ser direcionado para a nova base de dados.

Passos de migração detalhados

Esta secção descreve a migração mais detalhadamente.

O serviço Datastream cria uma stream entre uma origem e um destino. Neste caso, a origem é a sua implementação atual compatível com o MongoDB, enquanto o destino é o Cloud Storage. Este processo tem os seguintes passos:

  1. Crie um perfil de associação de stream de dados de origem para a sua origem do Mongo. As instruções específicas dependem do tipo e da forma como a sua origem compatível com o MongoDB está implementada.

  2. Crie um contentor do Cloud Storage que vai receber os dados e os eventos de alteração da sua base de dados de origem compatível com o MongoDB.

  3. Crie um perfil de ligação do Datastream de destino que use este contentor do Cloud Storage.

  4. Crie e acione um stream do Datastream que associa o perfil de ligação de origem ao perfil de ligação de destino.

  5. Inicie um pipeline do Dataflow para começar a injetar os dados capturados na sua base de dados compatível com o Firestore com o MongoDB.

  6. Monitorize o fluxo para identificar marcos importantes no processo de migração para determinar se ocorreram erros durante a transferência de dados.

  7. Quando for adequado, desative o tráfego de gravação para a base de dados de origem. Depois de todos os dados, incluindo as alterações recentes, terem sido replicados para a base de dados do Firestore com compatibilidade com o MongoDB, redirecione o tráfego de leitura para o novo destino.

  8. Ative o tráfego de gravação para a sua base de dados compatível com o MongoDB do Firestore.

Acerca dos exemplos de código

Os exemplos de código neste guia destinam-se a ser executados sucessivamente. Este guia pressupõe que configura o seu ambiente definindo todas as variáveis de ambiente antecipadamente. Posteriormente, execute os comandos necessários para a migração que usam as variáveis de ambiente já configuradas. Recomendamos que use esta abordagem. Uma vez que muitos comandos usam as mesmas variáveis de ambiente, pode reduzir a probabilidade de introduzir erros entre as diferentes fases do processo de migração.

Em alternativa, pode substituir as variáveis nos exemplos de comandos pelos mesmos valores que definiu para as variáveis de ambiente correspondentes.

Limitações

Antes de começar, reveja as diferenças entre o Firestore com compatibilidade com o MongoDB e o MongoDB. Preste especial atenção ao seguinte:

Se algum dos seus dados não cumprir as restrições nas categorias anteriores:

  • Recomendamos que resolva estas condições no seu conjunto de dados antes de iniciar o processo de migração.

  • Se optar por continuar sem alterações, os documentos afetados pelas limitações não vão ser escritos no Firestore e vão ser ignorados. Pode decidir como estes documentos devem ser processados. Se forem convertidos em tipos, valores ou tamanhos suportados, podem ser novamente processados.

O fluxo de dados tem os seguintes requisitos:

  • A versão principal mínima do MongoDB suportada pelo Datastream é a 4.0. Para algumas versões secundárias, existem versões de patch mínimas suportadas:

    • 4.0.21
    • 4.2.10
    • 4.4.2
  • O cluster do MongoDB tem de suportar streams de alterações. A implementação do MongoDB tem de ser configurada como um conjunto de réplicas ou um cluster fragmentado para que os fluxos de alterações sejam ativados.

O que se segue?

Prossiga para Configurar recursos para a migração.