Partilhar via


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.

Sugestão

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.

Sugestão

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 Extensão de Migração do Azure DocumentDB, 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.

As principais funcionalidades 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 em 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 Azure oferta do 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, pois 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.