MongoDB - NoSQL







No post de 26 de agosto de 2013, falamos sobre os bancos de dados NoSQL (Not Only SQL), mais especificamente sobre o HBase, que é orientado a colunas.
Além dos bancos NoSQL orientados a colunas, existem outros tipos de bancos NoSQL orientados a documentos, grafos, chave-valor, objetos, etc. 

Os bancos NoSQL orientados a documentos foram projetados para facilitar a armazenagem e recuperação de grandes volumes de documentos e são muito empregados em aplicações que requerem gerenciamento de grandes volumes de conteúdo digital, gerenciamento de dados de usuários, infraestrutura social e mobile, etc.

O MongoDB (www.mongodb.org) é um dos principais bancos NoSQL orientado a documentos, existente no mercado. Como exemplo de empresas que usam o MongoDB temos a Forbes, o Foursquare, a Leroy Merlin, o CERN, etc. Com o MongoDB podemos armazenar documentos usando padrão BSON, criar índices para tornar buscas mais rápidas e gerenciar réplicas do ambiente provendo assim redundância e aumento da disponibilidade dos dados. O MongoDB também permite o “Sharding” automático. 
O “Sharding”, ou escalabilidade horizontal, divide e distribui os conjuntos de dados entre múltiplos servidores, chamados de “Shards”. Cada “Shard” é um banco de dados independente e coletivamente criam um único banco de dados lógico. Com o “Sharding” é possível trabalhar com grandes volumes de dados, mantendo a performance das operações.
A figura abaixo exemplifica o "Sharding" de uma Collection de 1 TB particionada em 4 nós de tamanho fixo.


 
As queries no MongoDB não utilizam o SQL, mas sim uma sintaxe própria, bastante simples, normalmente com um operador “find”, que pode combinar condições, tipos, arrays, tags, etc.

Abaixo está um exemplo de query para procurar todos os documentos com valor do campo “producer” com um subdocumento que contenha “company” com valor 'ABC123' e o campo “address” com valor '123 Street'.

db.inventory.find(
                   {
                     producer: {
                                 company: 'ABC123',
                                 address: '123 Street'
                               }
                   }
                 )


Dentre as versões existentes do software, existe uma versão chamada "Community", que é grátis, e 3 outras versões pagas ( Basic, Standard e Enterprise ). A versão Enterprise tem características avançadas de segurança, gerenciamento do ambiente, suporte ao protocolo SNMP, encriptação SSL, treinamento On Demand, suporte certificado ( 24 x 7 x 365 ) e um modelo anual de aquisição de licenças por servidor que é bastante interessante para companhias que estão iniciando neste mundo do Big Data e que não dispõem de muitos recursos para pagar licenças por processadores.



Em Outubro de 2013 a companhia detentora do MongoDB recebeu um aporte adicional de US$ 150 milhões de um grupo de investidores ( EMC, Salesforce, Sequoia, Red Hat, Intel, etc ), o que torna o mesmo um dos mais sérios “players” do mercado de acordo com matéria publicada no site da Bloomberg (MongoDB Now King of NYC Startups )

Hoje o software conta com uma base de 5 milhões de downloads, incluindo as versões grátis, e mais de 20.000 participantes de grupos de usuários.

Bem, até o próximo post em Dezembro.





 

Comentários

Postagens mais visitadas deste blog

Hive, o que é ?

O que é o HBASE ?

O que é o HDFS ?