Banco de Dados

28 mar, 2012

Um olhar sobre alguns bancos de dados NoSQL

Publicidade

Em um artigo anterior, falei sobre o NoSQL e algumas ferramentas para serem usadas com ele. Neste artigo, daremos
uma olhada no MongoDB, no Redis e no Riak.

MongoDB

 

O MongoDB combina o melhor
dos armazenamentos chave-valor, documentos de bancos de dados, bancos de dados
(ou database?) de objeto e sistemas de gerenciamento de bancos de dados relacionais (RDBMS).
Isso significa que o MogoDB executa o sharding automaticamente (como com armazenamentos
chave-valor), permite documentos de schema dinâmicos baseados em JSON, e
oferece uma rica linguagem de query na forma de RDBMS. Além disso, o MongoDB  oferece auto-sharding (o sharding de dados
novos e pré-existentes é feito automaticamente) e um recurso de
implementação MapReduce.

Dê uma olhada mais de perto no cluster
MongoDB, e você verá que ele é feito de vários tipos de servidores:

  • Servidores shard
    que armazenam dados
  • Servidores de
    configuração que armazenam a configuração
  • Servidores
    router que recebem e roteiam as solicitações
  • Uma thread de servidor usando MapReduce

Alguns fatos adicionais sobre
MongoDB: é uma ferramenta de armazenagem distribuída orientada a documentos e usa a linguagem de implementação C++. Com o
progresso do schema, documentos do tipo JSON são armazenados, e schemas
dinâmicos podem ser usados. Entre as companhias que usam o MongoDB encontramos:  Shutterfly, Evite e The New York
Times. Impressionante! Uma das coisas bacanas das quais gosto a respeito desse
produto é a existência de uma interface web bastante boa, que permite
testar o MongoDB em seu browser – mas usando uma shell JavaScript.

Redis

O
Redis não é um simples armazenamento chave-valor, porque suporta uma
variedade de valores em diferentes estruturas de dados, tais como listas e
conjuntos de binary-safe strings, bem como
conjuntos ordenados, que contêm uma pontuação de números float. No ano passado,
o VMWare se tornou patrocinador do Redis.

Ele possui uma orientação
chave-valor, e sua linguagem de implementação é ANSI C. Entretanto, o Redis não
é distribuído. Sob seu schema, Redis oferece um armazenamento chave-valor,
usando um nome-chave de servidor para armazenar e recuperar valores. Como MongoDB,
o Redis tem uma lista impressionante de clientes – incluindo Python, Twisted
Python e a nova  linguagem do
Google, Go. O Redis é open source, e há
uma página muito bacana que oferece um tutorial Redis que permite
experimentá-lo diretamente de seu browser usando JavaScript. Descubra-a em http://try.redis-db.com.

Basho Riak

 

 

Riak é um banco de dados
híbrido fabricado pela BashoTecnologies, mas é baseado no Amazon Dynamo.
Funciona como um banco de dados (tradução de database?) orientado para documentos, e também com
um armazenamento chave-valor distribuído. É tolerante a falhas e faz escalas
linearmente. É direcionado para uso em aplicativos web. Como o Cassandra, não
tem um controlador central, e assim não tem um ponto único de falhas.

O Riak é um armazenamento de
chaves/valor plenamente distribuído, e implementa o MapReduce.

O design do Riak inclui três
elementos básicos: buckets, chaves e valores. Os dados são organizados em
buckets, que são pouco mais do que flat namespaces para agrupar logicamente
pares chave/valor. Os buckets podem armazenar os dados diretamente ou através
de links para outro bucket. Todos os nós no cluster têm o mesmo papel. O
sharding de dados (existentes ou novos) é feito automaticamente entre os nós.

O Riak vem tanto em versão
comercial quanto em versão open source. Roda em Unix, mas não em sistemas
Windows. Ele é distribuído, um sistema tanto de documento quanto de
armazenamento chave-valor, e sua linguagem de implementação é Erland, juntamente como alguma coisa de C e
de JavaScript.

O Riak tem uma estrutura simples e não usa tipos de dados
específicos. Os valores associados às chaves são objetos. O
Riak interage com clientes via JSON sobre a interface HTTP; tem drivers para
Erlang, Python, Java, PHP, JavaScript e Ruby; e, finalmente, uma interface de
cliente que suporta o Protocol Buffers, do Google. A base de clientes do Riak
inclui a Comcast.

Essas informações foram úteis para você? Deixe sua resposta nos comentários.

?

Texto original disponível
em http://blog.monitis.com/index.php/2011/06/06/a-look-at-some-nosql-databases-mongodb-redis-and-basho-riak/