2 de dezembro de 2014

Cassandra - Modelo de Dados

    Já apresentamos uma visão geral do Projeto Apache Cassandra e agora iremos ver como é composto o modelo de dados para esses bancos. Iniciaremos esse post falando dos conceitos utilizados para isso.

    O modelo de dados faz uso de Column (coluna), SuperColumn (super coluna), ColumnFamily (família de colunas) e KeySpace (espaço chave), mas o que vem a ser cada item?

Column - unidade mais básica do modelo de dados, é composta por um trio de atributos: um nome, um valor e um relógio (clock). Diferente do modelo relacional não existe uma pré-definição, o nome e o valor são do tipo vetor de bytes, podendo variar em tempo de execução, já o relógio é do tipo timestamp.

SuperColumn - tipo especial de coluna que armazena um nome e um valor, sendo o valor um mapa de sub-colunas. Dessa maneira uma super coluna pode ter um número ilimitado de colunas, mas não pode armazenar outra super coluna.

ColumnFamily - espaço que contém uma coleção ordenada de linhas, onde para cada linha existe uma coleção ordenada de colunas. Eles são semelhantes as tabelas nos bancos de dados relacionais, mas sem ficar preso a uma estrutura pré definida.

KeySpce - recipiente mais externo aos dados, podendo ser associado a um banco de dados relacional, contendo um nome e um conjunto de atributos que definem seu comportamento. Uma aplicação pode conter mais de uma keyspace, mas é comum existir apenas uma por solução.


Fonte: http://www.datastax.com/docs/_images/cassandra_model.png

    Na figura temos o exemplo de um blog, por isso o keyspace dele é chamado de blog. As columnFamily são users, blog entries, subscribes_to, subscribers_of e time_ordered_blogs_by_user.

    Na columnFamily users temos a superColumn jbells, que possui uma column chamada name com valor jonathan e outra column chamada state com valor TX, o mesmo vale para dhutch (super coluna), já para egilmore vemos que só existe a coluna name, não havendo necessidade de outras colunas.

    Em um post futuro veremos como é feito a criação de um keyspace, bem como o preenchimento e as buscas.

Fonte: HEWITT, EBEN Título: Cassandra: The Definitive Guide, Primera Edição, Editora: O'Reilly Media Novembro de 2010.
      http://www.datastax.com/docs/1.0/ddl/about-data-model, acessado em 1 de dezembro de 2014;
      http://nivaldomjunior.blogspot.com.br/2010/07/entendendo-o-banco-de-dados-nosql.html, acessado em 1 de dezembro de 2014.

Nenhum comentário:

Postar um comentário