Arquitetura MongoDB: estrutura, terminologias, requisitos e benefícios

Publicados: 2020-12-28

Índice

Visão geral

Não há dúvida de que a internet é a espinha dorsal da economia mundial moderna. Hoje, quase 4,7 bilhões de pessoas no mundo usam a plataforma virtual todos os dias, usando aplicativos da Internet para notícias, compras de roupas, pedidos de comida, ouvir música, ir e voltar do escritório e muito mais.

Com uma quantidade tão grande de usuários fazendo contribuições digitais diariamente, não é à toa que quantidades enormes de dados não estruturados são geradas no ciberespaço todos os dias. Saiba mais sobre o escopo futuro do MongoDB.

Isso deu origem a uma necessidade urgente de um novo paradigma de banco de dados que possa armazenar, servir e dar suporte a aplicativos 'Big Data' (como ficaram conhecidos) 24 horas por dia, 7 dias por semana, sem quebrar.

Digite NoSQL.

A ascensão dos bancos de dados NoSQL

NoSQL, conhecido como “Not Only SQL”, é uma alternativa aos bancos de dados SQL restritos por seus esquemas de tabela fixa. Por ser altamente flexível, o NoSQL supera essa desvantagem estrutural dos bancos de dados SQL e está equipado para escalar horizontalmente. Os bancos de dados NoSQL foram projetados para aumentar a produtividade do desenvolvedor, armando-os com um modelo de dados simples e elegante para operações complexas de processamento e gerenciamento de dados.

Em geral, esses modelos de armazenamento de dados vêm em 4 tipos – Documento, Valor-chave, Coluna Larga e Gráfico. Vamos nos concentrar em bancos de dados de documentos e arquitetura MongoDB neste blog (o banco de dados NoSQL líder)

A estrutura do MongoDB

Fonte: documentação do MongoDB

A arquitetura do MongoDB segue um modelo de dados flexível. Ao contrário do RDBMS, que exige uma declaração de esquema antes de inserir dados, o MongoDB não impõe uma estrutura de documento fixa.

Terminologias

Campos

Um par chave-valor em um documento, é a contrapartida de uma coluna em bancos de dados relacionais

Documento

Este é o equivalente a um registro em RDBMS

Coleções

Um grupo de documentos é chamado de coleção. Isso é análogo a uma tabela RDBMS

Diferenças entre a arquitetura RDBMS e MongoDB

Associações

No RDBMS, os dados podem ser distribuídos entre várias tabelas e reunidos para acessá-los em uma única visualização. Tal operação JOIN não é possível no MongoDB. Em vez disso, todos os dados são armazenados em uma única coleção, mas podem ser separados por meio de aninhamento ou documentos incorporados

Normalização

O RDBMS garante a normalização dos dados para evitar duplicatas e registros órfãos. A flexibilidade do MongoDB elimina a necessidade de normalização

Estrutura

O RDBS é usado principalmente no setor bancário, onde a estrutura exata do banco de dados é conhecida a priori. O MongoDB suporta grandes volumes de dados não estruturados e é extensível em aplicativos de nuvem, dispositivos móveis, web e Big Data.

A necessidade e os benefícios da arquitetura MongoDB

A arquitetura do MongoDB pode lidar com mudanças estruturais em tempo real, que é a necessidade do momento. Isso é perfeito para cenários em que você não tem visibilidade da estrutura do banco de dados antecipadamente.

A seguir estão alguns de seus principais benefícios

Baseado em documentos

Pode acomodar mudanças de fluxo de dados dinamicamente, adaptando-se às mudanças nos requisitos de negócios em tempo real

Consultas ad hoc – Linguagem de consulta poderosa que pode retornar campos especificados. Ele também permite recursos de pesquisa altamente granulares. (campo, intervalo, expressões comuns e mais)

Indexação

Você pode indexar qualquer campo em um documento para acelerar o processo de recuperação de dados.

Vamos agora mergulhar profundamente na arquitetura do MongoDB .

Mas antes de fazermos isso, precisamos entender o Teorema CAP.

O Teorema CAP

CAP denota a tríade de Consistência, Disponibilidade e Tolerância de Partição.

Vejamos o que cada termo significa neste contexto

Consistência

Se você gravar dados em um banco de dados distribuído, poderá acessar os mesmos dados de qualquer nó do sistema a qualquer momento. Trata-se de preservar a integridade dos dados escritos.

Disponibilidade

Trata-se de minimizar o tempo de inatividade de um sistema. As operações de leitura/gravação devem ocorrer em qualquer máquina do cluster, sem falhas.

Tolerância de partição ou tolerância a falhas

indica a capacidade de um sistema de continuar funcionando sem problemas mesmo no caso de uma partição de rede, ou seja, diferentes partes do cluster devem ser capazes de conversar entre si e sincronizar de forma eficaz.

O teorema CAP afirma que um sistema distribuído TEM que ser tolerante à partição. Quaisquer partições de rede não podem derrubar todo o sistema.

Em outras palavras, você só pode garantir um parâmetro de 'Consistência' e 'Disponibilidade' em um sistema distribuído, sendo o outro a Tolerância de Partição.

Isso dá origem a um triângulo como este:

Fonte: Data Science Pedia

O MongoDB sempre escolhe a consistência sobre a disponibilidade sempre que houver uma partição no sistema (CP). Ele bloqueia todas as operações de gravação até que possa garantir a execução precisa dessas gravações.

Arquitetura MongoDB

O MongoDB emprega a arquitetura de mestre único, o que significa que há uma máquina primária encarregada de todas as operações de gravação do lado do cliente. Todas as outras instâncias que você adicionar posteriormente ao cluster constituem os nós secundários, que geralmente tratam de todas as operações de leitura.

Essas são basicamente cópias de backup do servidor primário como uma proteção contra falhas contra o travamento primário.

Todos esses servidores são agrupados em conjuntos de réplicas. Você pode ter vários conjuntos de réplicas, cada um com seus próprios servidores primários e secundários.

Fonte: Documentação do MongoDB

Caso o primário fique inativo, o sistema escolhe um novo primário de todos os nós secundários. Mas isso acontece arbitrariamente, dependendo de onde está obtendo as respostas de ping mais rápidas de todos os sistemas. Você precisa ter um número ímpar de servidores em seu cluster (mínimo 3) para que um primário possa ser eleito com maioria.

Se você não quiser gastar dinheiro em três servidores, você pode nomear um nó 'Árbitro' cujo único trabalho é votar na eleição do primário.

Fragmentação

A fragmentação no MongoDB permite distribuir seu Big Data em vários bancos de dados.

Fonte: Documentação do MongoDB

Você tem um aplicativo com milhões de usuários. A fragmentação permite particionar esses usuários (com base em um índice exclusivo, como um ID de usuário) em diferentes conjuntos de réplicas. Usando um processo chamado mongoS, o Application Server conversa com os Config Servers (precisamente 3) para entender qual 'Shard' contém os dados que está procurando. O mongoS executa um processo do Load Balancer em segundo plano para distribuir automaticamente a carga (neste caso, o número de usuários) uniformemente entre todos os shards.

Conclusão

Se você quiser saber mais sobre o MongoDB e as operações de banco de dados, confira as ideias do projeto MongoDB. Você pode explorar o PG Diploma in Data Science da upGrad. Um curso de 12 meses projetado para profissionais que trabalham, você obtém aconselhamento abrangente de carreira e oportunidades de emprego, juntamente com o prestigioso ITT Bangalore Alumni Status.

Esperamos que este artigo tenha ajudado você a entender como a Arquitetura MongoDB funciona e como o sistema opera. Para saber mais, visite nossos outros blogs.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Aprimore-se e prepare-se para o futuro

Programa Avançado de Certificação em Big Data do ITT Bangalore