MongoDB Fragmentação: tutorial passo a passo com exemplo
O que é fragmentação MongoDB?
Sharding é um conceito em MongoDB, que divide grandes conjuntos de dados em pequenos conjuntos de dados em vários MongoDB instâncias.
Às vezes, os dados dentro MongoDB será tão grande que as consultas em conjuntos de dados tão grandes podem causar muita utilização da CPU no servidor. Para enfrentar esta situação, MongoDB tem um conceito de Sharding, que é basicamente a divisão de conjuntos de dados em vários MongoDB instâncias.
A coleção que pode ser grande é, na verdade, dividida em várias coleções ou fragmentos, como são chamados. Logicamente, todos os fragmentos funcionam como uma coleção.
Como implementar fragmentação
Os fragmentos são implementados usando clusters que nada mais são do que um grupo de MongoDB instâncias.
Os componentes de um Shard incluem
- Um fragmento – Isso é o básico, e isso nada mais é do que um MongoDB instância que contém o subconjunto dos dados. Em ambientes de produção, todos os fragmentos precisam fazer parte de conjuntos de réplicas.
- Servidor de configuração – Esta é uma instância do mongodb que contém metadados sobre o cluster, basicamente informações sobre as várias instâncias do mongodb que conterão os dados do fragmento.
- Um roteador – Esta é uma instância do mongodb que basicamente é responsável por redirecionar os comandos enviados pelo cliente para os servidores corretos.
Fragmentação passo a passo Cluster Exemplo
Passo 1) Crie um banco de dados separado para o servidor de configuração.
mkdir /data/configdb
Passo 2) Inicie a instância do mongodb no modo de configuração. Suponha que se tivermos um servidor chamado Servidor D que seria nosso servidor de configuração, precisaríamos executar o comando abaixo para configurar o servidor como um servidor de configuração.
mongod –configdb ServerD: 27019
Passo 3) Inicie a instância do mongos especificando o servidor de configuração
mongos –configdb ServerD: 27019
Passo 4) Do shell do mongo, conecte-se à instância do mongo
mongo –host ServerD –port 27017
Passo 5) Se você tiver o Servidor A e o Servidor B que precisam ser adicionados ao cluster, emita os comandos abaixo
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
Passo 6) Habilite a fragmentação para o banco de dados. Portanto, se precisarmos fragmentar o banco de dados Employeedb, emita o comando abaixo
sh.enableSharding(Employeedb)
Passo 7) Habilite a fragmentação para a coleção. Então, se precisarmos fragmentar a coleção Employee, emita o comando abaixo
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Resumo:
- Conforme foi esclarecido em tutorial, Sharding é um conceito em MongoDB, que divide grandes conjuntos de dados em pequenos conjuntos de dados em vários MongoDB instâncias.