Quais são as opções para migrar dados do MongoDB para o Azure DocumentDB?

Este artigo ajuda-o a planear e executar uma migração do MongoDB para o Azure DocumentDB. Abrange as ferramentas de migração disponíveis, as fases-chave de uma migração e as melhores práticas para reduzir riscos e minimizar o tempo de inatividade.

Quer esteja a migrar de um servidor MongoDB on-premiss, de uma VM alojada na cloud ou de um serviço MongoDB gerido, as opções de migração, orientações e boas práticas deste artigo aplicam-se.

Fases-chave de migração

Uma migração bem-sucedida segue estas fases distintas. Cada fase tem objetivos e critérios de sucesso específicos.

1. Avaliar

Execute uma varredura automatizada do seu MongoDB de origem usando a extensão Azure DocumentDB Migration para identificar funcionalidades, comandos, sintaxe de consulta e tipos de índice não suportados. A avaliação também fornece uma visão geral da versão, licença, tipo de instância e métricas de base de dados e coleções do MongoDB. Use estas conclusões para planear alterações no esquema e identificar qualquer refatoração necessária antes da migração.

Tip

Recomendamos que reveja detalhadamente as funcionalidades e a sintaxe da Linguagem de Consulta MongoDB (MQL) suportadas e realize uma prova de conceito antes da migração propriamente dita.

2. Preparar-se

Analisar o relatório de avaliação e medir o TPS da fonte (transações por segundo). Realize migrações de teste em dados representativos para estabelecer o Nível de Computação do destino, o Nível de Armazenamento e o número de fragmentos. Realize testes de desempenho para garantir que a configuração alvo cumpre os seus requisitos.

3. Refinar

Prepare coleções alvo com chaves de shard e índices apropriados que correspondam aos seus padrões de consulta de produção. Se estiver a usar múltiplos shards, decida como distribuir as coleções pelos shards para equilibrar a carga e minimizar operações entre diferentes shards.

4. Migrar

Execute o trabalho de migração para mover dados em modo offline ou online:

  • Migração offline: Tira um snapshot da fonte no início e efetua uma cópia em massa para o destino. Qualquer dado adicionado, atualizado ou eliminado na fonte após o snapshot não é copiado. O tempo de inatividade necessário depende do tempo que demora a cópia em massa.
  • Migração online: Faz a mesma cópia em massa que offline, mas também monitoriza o fluxo de alterações ao longo do processo. As alterações feitas durante a migração são replicadas para o destino, pelo que o tempo de inatividade necessário para a aplicação é mínimo. Requer fluxo de alterações e um oplog suficientemente grande na fonte.

Tip

Para migrações online, certifique-se de que o fluxo de alterações está ativado e que o oplog está dimensionado adequadamente no seu MongoDB de origem para capturar todas as alterações durante a janela de migração.

Para as ferramentas disponíveis, consulte Ferramentas de migração.

5. Validar

Valide que todos os dados foram copiados, incluindo as atualizações mais recentes. Compare a contagem de documentos, execute validação baseada em amostras e verifique se os índices e estruturas de dados correspondem às expectativas no alvo. Use scripts automatizados para tornar a validação repetível e consistente.

6. Transição

Move o tráfego de leitura para o destino e verifica se não existem problemas funcionais ou de desempenho. Assim que a validação da leitura for bem-sucedida, redirecione o tráfego de escrita para o destino. Monitorize de perto durante a janela de transição para detectar quaisquer anomalias.

Ferramentas de migração

As ferramentas discutidas neste artigo ajudam você a migrar suas cargas de trabalho do MongoDB das seguintes fontes:

  • Máquina virtual MongoDB
  • MongoDB Atlas
  • Banco de dados de documentos da AWS

Extensão de Migração do Azure DocumentDB

Crie e gere os seus trabalhos de migração em Visual Studio Code com Azure DocumentDB Migration Extension (Public Preview) — uma solução concebida para simplicidade, security e zero downtime.

Esta ferramenta fornece orientações claras e passo a passo para o ajudar a migrar cargas de trabalho sem interrupções no serviço. É possível:

  • Selecione bases de dados e coleções específicas para migração
  • Execute todos os passos dentro da interface VS Code familiar.
  • Garantir uma conectividade segura ao longo de todo o processo
  • Desfrute de custo gratuito para usar a extensão

Com a Azure DocumentDB Migration Extension, pode simplificar a sua jornada de migração mantendo o controlo e a segurança — tudo isto sem infraestrutura ou complexidade adicional.

Utilitário de aplicativo Web (Online)

Simplifique a sua migração para Azure DocumentDB com MongoMigrationwebBasedUtility uma ferramenta concebida para eficiência, fiabilidade e facilidade de utilização. O repositório oferece instruções detalhadas e passo a passo para migrar suas cargas de trabalho. Esta ferramenta oferece uma experiência perfeita para migrações de dados on-line e off-line. O processo é de fácil utilização, exigindo apenas que sejam fornecidos os detalhes da origem e do destino. Permite-lhe migrar facilmente as suas coleções do MongoDB, mantendo controlo, segurança e escalabilidade, desbloqueando todo o potencial do Azure DocumentDB.

Os principais recursos incluem:

  • Suporta implementação privada na sua rede virtual para maior segurança
  • Recursos de retomada automática se houver perda de conexão ou erros transitórios
  • Interface amigável
  • Acesso ao código-fonte C# no GitHub

A ferramenta suporta opções de implementação flexíveis e opera de forma independente, sem dependências de outros recursos do Azure. Além disso, oferece desempenho escalável com planos de preços personalizáveis para o Azure Web App.

Ferramentas nativas do MongoDB (Offline)

Também pode usar as ferramentas nativas do MongoDB, como mongodump/mongorestore, mongoexport/mongoimport , para migrar conjuntos de dados offline (sem replicar alterações ao vivo) para a oferta Azure DocumentDB.

Scenario Ferramenta nativa do MongoDB
Mover subconjunto de dados de banco de dados (baseado em JSON/CSV) Mongoexport/MongoImport
Mover todo o banco de dados (baseado em BSON) Mongodump/MongoRestore
  • mongoexport/mongoimport é o melhor par de ferramentas de migração para migrar um subconjunto do seu banco de dados MongoDB.
    • mongoexport exporta seus dados existentes para um arquivo JSON ou CSV legível por humanos. Mongoexport usa um argumento especificando o subconjunto de seus dados existentes para exportar.
    • mongoimport abre um ficheiro JSON ou CSV e insere o conteúdo na instância de base de dados de destino (Azure DocumentDB neste caso).
    • JSON e CSV não são um formato compacto; podes incorrer em custos de rede excedentes, pois mongoimport envia dados para Azure DocumentDB.
  • mongodump/mongorestore é o melhor par de ferramentas de migração para migrar todo o seu banco de dados MongoDB. O formato compacto BSON permite uma utilização mais eficiente dos recursos de rede à medida que os dados são inseridos no Azure DocumentDB.
    • mongodump exporta seus dados existentes como um arquivo BSON.
    • mongorestore importa o seu dump de ficheiros BSON para Azure DocumentDB.

Observação

As ferramentas nativas do MongoDB podem mover dados apenas com a velocidade permitida pelo hardware do host.

Melhores práticas de migração

Utilize estas melhores práticas para reduzir riscos, estimar a capacidade com maior precisão, melhorar a velocidade de migração e executar a transição de forma segura.

Reduzir falhas

  • Use palavras-passe codificadas por URL nas strings de ligação. Caracteres especiais como @, #, e : podem quebrar a análise quando não estão codificados. A codificação de URL ajuda a evitar falhas de ligação durante as execuções de avaliação e migração.

  • Faça uma avaliação pré-migração antes da migração. A avaliação ajuda-o a identificar características não suportadas, lacunas de compatibilidade e potenciais bloqueios precocemente. Resolver as constatações antes da migração para reduzir o retrabalho durante a transição.

  • Pratiquem a migração e a transição antes da produção. Realize uma ou mais migrações de ensaio num ambiente não-produtivo. A prática melhora a precisão do tempo, a prontidão da equipa e a confiança durante o corte de produção.

Dimensione a infraestrutura com precisão

  • Executa uma migração experimental num conjunto de dados pequeno mas representativo. Use o teste para captar um rendimento realista, latência e consumo de recursos. Uma amostra representativa fornece estimativas melhores do que os dados de testes sintéticos.

  • Extrapola os resultados dos testes para estimar o Nível de Computação, o Nível de Armazenamento e o número de fragmentos. Use métricas de ensaio observadas para projetar as necessidades finais de dimensionamento com base no volume total do seu conjunto de dados. Revise a estimativa se a distribuição dos dados de produção for diferente da amostra.

  • Utilize uma quantidade representativa de documentos, tamanho e estrutura com definições semelhantes às de produção. Compare as definições de indexação de produção e fragmentação durante o teste para evitar subestimar o custo ou a duração da migração. As definições não de produção podem produzir resultados enganadores.

  • Estimar o armazenamento alvo a partir dos resultados do ensaio em vez de assumir que os tamanhos da origem e do alvo são iguais. As pegadas de armazenamento de origem e destino podem diferir devido a diferenças nas definições de índices e na disposição dos dados. Use os resultados dos ensaios para planear o armazenamento com um buffer seguro.

Otimizar a velocidade de migração

  • Migra dentro da mesma região sempre que possível. Manter a origem e o destino na mesma região reduz a latência da rede e melhora o desempenho da transferência de dados. Também pode reduzir os custos de transferência de dados entre regiões.

  • Aumente a escala durante a migração, depois reduza após o corte. Por exemplo, pode ajustar temporariamente o cluster-alvo para M200 para aumentar a taxa de migração. Após a migração, reduza para um nível apropriado na gama suportada para cargas de trabalho em regime estacionário.

  • Escolha discos com IOPS mais elevados para gravações mais rápidas. IOPS mais elevados podem melhorar significativamente o desempenho da migração em operações de escrita intensiva. Como o tamanho do disco normalmente não pode ser reduzido mais tarde, selecione cuidadosamente o tamanho do disco durante o planeamento.

Planeia o "cutover" com cuidado porque não há possibilidade de reversão.

  • Planeie o tempo de inatividade durante uma janela de pouco trânsito. O tempo de inatividade necessário depende de quanto tempo demoram os passos de validação após a migração estar atualizada. Uma janela de baixo tráfego reduz o impacto no negócio.

  • Pare todas as operações de escrita na fonte pouco antes da transição. Esta etapa evita divergências de última hora entre a fonte e o alvo. Confirme que a atividade de escrita está totalmente pausada antes de concluir o cutover.

  • Validar os dados migrados antes de mover operações de escrita. Compare as contagens de documentos e depois execute a comparação aleatória de amostras de documentos (por exemplo, verificações baseadas em hash). Use um script sempre que possível para tornar a validação repetível.

  • Atualize as cadeias de ligação da aplicação e teste no alvo. Execute validação funcional e de desempenho em relação às leituras-alvo e ao tráfego de teste antes de ativar as escritas em produção. Confirme que os caminhos críticos se comportam conforme o esperado.

  • Mova o tráfego de escrita apenas depois de a validação ter sucesso. O registo de produção é feito para o alvo apenas após os resultados dos testes serem bem-sucedidos e consistentes. Usa um rollout em fases se a arquitetura da tua aplicação o suportar.

Coordenar entre equipas para uma migração fluida

  • Garantir a participação de todas as partes interessadas: equipas de app, dados, infraestrutura, segurança, redes e gestão. Alinhe as expectativas e responsabilidades desde cedo. A propriedade partilhada reduz mal-entendidos e atrasos durante a execução.

  • Use o planeamento e os testes para aumentar a confiança da equipa e aperfeiçoar os procedimentos. Não há atalhos para uma migração suave. Os ensaios revelam questões em um ambiente de menor risco e dão prática às equipas.

  • Trate o "cutover" como crítico e urgente. O corte requer coordenação precisa e comunicação clara. Designe os decisores e estabeleça caminhos de escalonamento antes que comece.

  • Saiba quem irá realizar cada etapa, quando deve acontecer e como minimizar o tempo de inatividade. Atribuir responsabilidades, estabelecer prazos e alinhar-se com critérios de sucesso. Documente o roteiro de transição e partilhe-o com todos os participantes.

  • Coordenar com todas as partes interessadas quando a transição exigir simultaneamente atualizações de múltiplas cargas de trabalho. Agende a transição durante uma janela de manutenção que funcione para todas as equipas. Evite as noites de sexta-feira ou períodos perto de grandes eventos empresariais.

  • Não se apresse nem ignore os passos de due diligence — não há retrocesso. Uma validação rigorosa e uma execução cuidadosa evitam erros dispendiosos. Aceite que a transição demora tempo; atalhos focados na rapidez criam risco.