Agora vamos fazer uma migração de dados de posters para MongoDB Atlas e para isso nós vamos usar uma ferramenta chamada MongoDB Relational Migrator ou migrador relacional da MongoDB Essa daqui é a interface gráfica do MongoDB Relational Migrator e aqui já tem uma coisa interessante para a gente começar a comentar. Do meu lado esquerdo nós temos um modelo de dados relacional em Postgres e do meu lado direito um modelo de dados futuro em MongoDB, modelo documental. Essa ferramenta vai nos trazer a possibilidade de trabalhar com bancos relacionais Postgres, MySQL, SQL Server e Oracle e nos permite avaliar o modelo atual do sistema de origem e montar um modelo documental no nosso sistema de destino. Aqui a gente vai ver que tem diversos mapeamentos que a gente pode fazer dos atributos que a gente tem na origem e montar com isso a nossa coleção. Vamos dar uma explorada juntos primeiro no lado relacional. Então, eu vou trocar a visualização primeiro no lado relacional. Então, eu vou trocar a visualização para somente relacional. Vamos dar um pouco mais de zoom. Falamos bastante ao longo do curso do modelo de dados Northwind. Esse daqui é o 1.0. Em vídeos anteriores, a gente falou do 2.0. Esse aqui é o 1.0, que está em Postgres. Esse aqui é um Postgres que está rodando em AWS. Então, para a gente relembrar um pouco dos conceitos do modelo relacional, que nós vimos, a gente tem aqui toda a terceira forma normal aplicada, e as principais entidades da aplicação em Northwind. Então discutimos bastante a questão de pedido e linha de pedido. Então aqui aparece orders e order details. Um pedido tem muitos detalhes desse pedido. Então o pedido tem o identificador, que é o order ID. Temos um cliente, que é o Order ID, temos um cliente, que é o Customer ID, o funcionário, que é o Employee ID, a data desse pedido, a data obrigatória de entrega, de envio, o frete, quem é o entregador. Então, aqui a gente tem detalhes que representam uma situação que a gente encontra na vida real de modelagem de dados. Vamos avaliar um pouco dos relacionamentos. Então, o Order Details tem um relacionamento com produto. Um produto tem muitos detalhes, ou muitos detalhes serão produtos. A mesma questão que a gente discutiu da categoria de produto, uma categoria de produto tem muitos produtos, um fornecedor fornece muitos produtos também. Então aqui a gente percebe que toda a modelagem na terceira forma normal pode ser avaliada por meio dessa ferramenta. Isso aqui é bem interessante porque nos permite fazer duas coisas. Primeiro, a movimentação dos dados, que é a migração, como o nome nos sugere, mas também o que eu acho bem interessante é já ajustar para um modelo futuro. Eu dificilmente faria uma migração de um relacional como Postgres para um documental como MongoDB, sem ajustar a modelagem de dados. Não faz muito sentido a gente fazer exatamente as mesmas tabelas virarem coleções. Lembra que a gente falou no modelo do JSON, que numa mesma operação de escrita e leitura, você consegue cobrir as diferentes entidades que são populadas numa tela. Então, por essa razão, nós vamos fazer um modelo, e agora eu vou mudar aqui para a mão do bebê, em que provavelmente nós vamos ter uma junção daquela tabela Order e Order Detail na mesma coleção. Então, olha só como a gente fez essa modelagem aqui. na mesma coleção. Então, olha só como a gente fez essa modelagem aqui. Nós temos a nossa order detail. Começa exatamente igual à nossa tabela, lá no Postgres, mas aqui mais pra frente a gente já agregou a shipper, que é o entregador, e também a linha da order detail. Isso aqui é o order detail, cada um dos detalhes da ordem, mais o produto e a respectiva categoria. Lembra que a gente navegou ali para a direita do relacional? Então, aqui nós estamos convertendo todas as entidades. Categoria de produto, produto, order detail, shipper e orders. Cinco tabelas sendo convertidas para uma única coleção quando eu carregar esta coleção na tela da aplicação uma única operação de leitura lê as cinco coisas e escreve também as cinco entidades que nós temos aqui para a gente colocar lado a lado para comparar o antes e o depois vamos dividir aqui na ferramenta, as duas telas. Então, só para relembrar, vou colocar um pouco mais de zoom aqui no Order Details. E desse lado direito, nós vamos visualizar que essas duas tabelas aqui virarão uma única coleção, mais a Shippers, que está aqui embaixo, e também Product e Category, que está mais à direita aqui no nosso relacional. Então, Product está aqui e Categories, ou seja, a categoria do produto está aqui também. Este é o nosso mapeamento que estamos fazendo de cinco tabelas para uma única coleção em MongoDB. Agora vamos para a execução. Eu vou entrar aqui na parte de Data Migration. Vamos fazer o job de migração do nosso Postgres, que está em AWS para o nosso MongoDB Atlas que está na Azure. Eu vou começar com os testes de conexão de origem e destino. Então, sucesso com o nosso Postgres. Logo em seguida, eu vou fazer a conexão com o nosso MongoDB Atlas e a partir de agora, eu vou iniciar a nossa migração. Então nessa operação nós faremos a transferência de todos os dados, as linhas que nós vimos naquelas tabelas, que foram as possíveis, e faremos aquela conversão, aquela junção das cinco tabelas na única coleção Orders em MongoDB. coleção orders em MongoDB. O nosso processo aqui já começa a sua execução, execução em andamento, e em mais alguns segundos a gente deve ter essa migração completa. 13 tabelas migradas com sucesso, 900 linhas 230, um pouquinho mais a gente tem toda a base de dados migrada é claro que aqui para fins da nossa aula eu coloquei uma base pequena para demonstrar o conceito. Pronto, agora tivemos aqui 13 tabelas no total, migradas com sucesso. Esperar só a conclusão do nosso job. Completo, com sucesso. Se nós formos dar uma olhada aqui no nosso Atlas, aqui no Browse Collections, nós fizemos a migração para a coleção Northwind, que está aqui. Se a gente olhar Orders, na nossa Northwind, está exatamente como nós modelamos lá no Relational Migrator. como nós modelamos lá no relational migrator então todos os dados, o order id, o shipper e o order details aqui em baixo então temos todas as nossas tabelas aqui na junção então é uma ferramenta bem interessante também para a gente levar em consideração nos nossos projetos. Convido você a fazer seus testes, seus desenvolvimentos e suas migrações de dados.