EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Migrar do Azure CosmosDB para o MongoDB Atlas usando o Apache Kafka

Robert Walters3 min read • Published Nov 09, 2021 • Updated May 09, 2022
KafkaAtlasJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty

Overview

Quando você é o melhor da raça, você tem muitos imitadores. O MongoDB não é diferente no mundo do banco de dados. Se você está lendo este blog, provavelmente é um cliente do Azure que acabou usando o CosmosDB.
Você precisava de um banco de dados que pudesse lidar com dados não estruturados no Azure e, por fim, concluiu que o CosmosDB não era a mais adequada. Talvez você tenha achado que é muito caro para seu volume de trabalho, ou que não está funcionando bem, ou simplesmente não tem confiança na plataforma. Você também pode ter tentado usar a API do MongoDB e descobrir que as queries que queria usar simplesmente não funcionam no CosmosDB porque ele falha em 67% dos testes de compatibilidade.
Qualquer que seja o caminho que você fez para o CosmosDB, saiba que você pode migrar facilmente seus dados para o MongoDB Atlas enquanto ainda aproveita todo o poder do Azure. Com o MongoDB Atlas no Azure, não há mais queries com falha, desempenho lento e contas de espera pornão otimizar seus RDUs. O MongoDB Atlas no Azure também oferece acesso às versões mais recentes do MongoDB e a flexibilidade de aproveitar qualquer um dos três provedores de nuvem se sua empresa precisar de alterações.
Observação: quando você criou originalmente seu CosmosDB, recebeu estas opções de API:
Se criou seu CosmosDB usando a API do Azure Cosmos DB para MongoDB, poderá usar ferramentas mongo como mongodump, mongorestore, mongoimport e mongoexport para mover seus dados. O connector doAzure CosmosDB para o Kafka Connect não funciona com bancos de dados do CosmosDB que foram criados para a API do Azure Cosmos DB para o MongoDB.
Nesta publicação no blog, abordaremos como aproveitar o Apache Kafka para mover dados do Azure CosmosDB Core (API nativa) para o MongoDB Atlas. Embora haja muitas maneiras de mover dados, o uso do Kafka permitirá não apenas realizar uma migração única, mas também transmitir dados do CosmosDB para o MongoDB. Isso dá a você a oportunidade de testar seu aplicativo e comparar a experiência para que você possa fazer a alteração final do aplicativo no MongoDB Atlas quando estiver pronto. O código de exemplo completo está disponível neste repositório GitHub.

Começar

Você precisará de acesso a um cluster Apache Kafka. Há muitas opções disponíveis para você, incluindo o Confluent Cloud, ou você pode implementar seu próprio Apache Kafka via Docker, conforme mostrado neste blog. O Microsoft Azure também inclui um serviço de mensagens de eventos chamado Azure Event Hubs. Esse serviço fornece um endpoint Kafka que pode ser usado como uma alternativa para executar seu próprio cluster Kafka. O Azure Event Hubs expõe a mesma API do Kafka Connect, permitindo o uso do connector MongoDB e do Azure CosmosDB DB Connector com o serviço de Event Hubs.
Se você não tiver uma implantação do Kafka existente, execute estas etapas. Você precisará do docker instalado em sua máquina local:
Em seguida, crie os containers do docker.
O script de composição docker (docker-compose.yml) suportará todos os componentes de que você precisa, incluindo Apache Kafka e Kafka Connect. Instale os conectores do CosmosDB e do MongoDB.

Configurando o Kafka Connect

Modifique o arquivokosmsdb-source.json e substitua os valores do placeholder pelos seus próprios.
Modifique o arquivomongo-sink.json e substitua os valores do espaço reservado pelos seus.
Observação: antes de configurarmos o Kafka Connect, certifique-se de que suas configurações de rede no CosmosDB e no MongoDB Atlas permitirão a comunicação entre esses dois serviços. No CosmosDB, selecione firewall e redes virtuais. Embora a configuração mais fácil seja selecionar "All networks, ", você pode fornecer uma conexão mais segura especificando o intervalo de IP na configuração Firewall na opção Redes selecionadas. O acesso à rede MongoDB Atlas também precisa ser configurado para permitir conexões remotas. Por padrão, o MongoDB Atlas não permite conexões externas. Consulte Configurar Lista de Acesso IP para obter mais informações.
Para configurar nossos dois conectores, faça uma chamada de REST API para o serviço Kafka Connect:
É isso ai!
Desde que o acesso à rede e ao banco de dados tenha sido configurado corretamente, os dados do seu CosmosDB devem começar a fluir para o MongoDB Atlas. Se você não vir nada, aqui estão algumas dicas de solução de problemas:
  • Tente se conectar ao cluster MongoDB Atlas usando a ferramenta mongosh do servidor que executa o docker container.
  • Visualize os registros do docker para o serviço Kafka Connect.
  • Verifique se você pode se conectar à instância do CosmosDB usando a CLI do Azure a partir do servidor que executa o contêiner docker.
Resumo Neste post, exploramos como mover dados do CosmosDB para o MongoDB usando o Apache Kafka. Se você quiser explorar esse método e outras maneiras de migrar dados, consulte o 2021 Vencedor do prêmios MongoDB do ano, Peersands, blog post de cinco partes sobre a migração do CosmosDB.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Como distribuir um aplicativo no Kubernetes com o MongoDB Atlas Operator


Aug 30, 2024 | 9 min read
Início rápido

Como usar a Atlas Data API com o Google Apps Script


Jun 12, 2023 | 9 min read
Tutorial

Implementar autenticação por e-mail/senha em React


Apr 02, 2024 | 8 min read
Artigo

Modelar dados não estruturados: mais flexibilidade para nossos desenvolvedores


Jul 09, 2024 | 4 min read
Sumário
  • Overview