Conhecemos no post O que é NoSQL diversos exemplos de banco de dados NoSQL. Hoje vamos conhecer um pouco mais deste universo. Vamos falar sobre o banco de dados Cassandra.
O Apache Cassandra é um projeto open source, descentralizado, distribuído, escalável, tolerante a falhas e, diferentemente do MongoDB, é orientado a colunas. Foi criado pelo Facebook e atualmente é mantido pela Apache e outras empresas, sendo um sistema de banco de dados baseado no modelo BigTable da Google e no sistema de armazenamento Dynamo da Amazon.
Para visualizarmos melhor, veja abaixo o modelo de dados do Cassandra. A imagem foi extraída do site da IBM.
O que significa tudo isso? Vamos lá.
Começamos pela parte mais externa do modelo, o Key Space. Como podemos perceber, ele é um grupo de várias famílias de colunas juntas. Podemos fazer uma analogia dizendo que um Key Space é equivalente ao nome do banco de dados em que alocamos as tabelas no universo relacional.
Já a Coluna é a unidade básica do Cassandra. Ela contém um nome, um valor e um registro de data e hora. Um exemplo de como representar uma coluna é um par de nome e valor, como exemplo, postTitulo ="Cassandra". Seguindo a lógica, temos com a Linha é uma coleção de colunas identificadas por um nome. No exemplo de nossa figura, poderíamos ter uma linha que rotulasse todos os posts sobre Cassandra escritos por um determinado autor.
Temos também a Família de Colunas, que é uma coleção de Linhas rotuladas com um nome. Seguindo nosso exemplo, nossa Família de Colunas poderia ser o blog Arte dos Dados e as Linhas seriam os diferentes assuntos abordados pelo blog. Se tivéssemos diversos blogs, cada um deles seria representado por uma Família de Colunas diferente.
Pela descrição do modelo de dados do Cassandra acima, os dados são colocados em um espaço bidimensional (2D) em cada família de colunas. Para recuperar dados em uma família de colunas, os usuários precisam de duas chaves: nome da linha e nome da coluna. (IBM)
Assim como outros bancos NoSQL, o Cassandra não suporta transações ACID e também não suporta JOINs. Quando um usuário precisa unir duas famílias de colunas, é necessário recuperar e unir os dados separadamente. Como podemos inferir, este é um processo caro computacionalmente e demorado se você possuir um banco muito grande. Por isso, é interessante armazenar a maior quantidade de dados possível na mesma linha, como descrevemos no nosso exemplo de modelo de dados.
E quem está usando o Cassandra? Temos gigantes como o Twitter, eBay e NetFlix. Abaixo, temos uma apresentação que mostra um pouco mais sobre este fascinante banco de dados.
Cassandra at NoSql Matters 2012 from jbellis
Para saber mais, acesse o site oficial do projeto em http://cassandra.apache.org/
Abraços e até o próximo post!
0 comentários:
Postar um comentário