3

Click here to load reader

Cassandra com NOSQL parte 2

Embed Size (px)

DESCRIPTION

Matéria falando sobre o conceito de nosql e os tipos de bancos que saiu na revista espírito livre de abril de 2012

Citation preview

Page 1: Cassandra com NOSQL parte 2

���������������� ���������� ������������������������������������ ���� ����������� ������ ��������� �� �������

��

No artigo anterior demonstrou­se umconceito básico sobre os bancos NOSQLalém de fazer comparações entre os bancos“tradicionais” versus o NOSQL. Nesse artigoabordaremos os tipos de bancos NOSQL,além de sua classificação e, demonstrare­mos também, alguns exemplos.

Por serem novos bancos ainda nãoexistem padrões. Por mais que dois bancospossuam exatamente as mesmas classifica­ções não é absoluto afirmar que eles possu­em os mesmo recursos e que fazem asmesmas coisas. Isso sem falar no grandetrabalho que haverá na mudança de um ban­co NOSQL para outro, mesmo sendo seme­lhantes.

Existem hoje diversos SGBDs que seencaixam com o NOSQL. Eles são classifi­cados por: Arquitetura, Armazenamento,

Parte 2:Classificaçãode bancos NOSQL

www.sxc.hu

����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �

�������� ����� � ����������

Page 2: Cassandra com NOSQL parte 2

��

Modelo de Dados:

ArquiteturaNa arquitetura dividem­se em dois ti­

pos: distribuídos e não distribuídos. Os distri­buídos tomam a responsabilidade pelapartição dos dados e pela sua replicação.

Distribuídos :­ Amazon Dynamo

­ Scalaris

­ Voldemort

­ CouchDb

­ Riak

­ MongoDb

­ BigTable

­ Cassandra

­ HyperTable

­ HBase

Não distribuídos:­ Redis

­ Tokyo Tyrant

­ MemcacheDb

­ Amazon SimpleDb

ArmazenamentoSão aqueles que armazenam dados

em disco e na memória. Esta diferenciaçãoé importante pois no caso da gravação emdisco você vai precisar de um cache explici­to. Já os dados armazenados em memórianão são duráveis. Um ponto interessante aser avaliado é que no disco os dados temmenos possibilidade de serem perdidos, noentanto, o custo de I/O é altíssimo. Em rela­ção à memória, apesar do acesso ser maisrápido, deve­se levar em conta o fato dos da­dos ficarem em regiões voláteis.

Memória:­ Scalaris

­ Redis

Disco:­ CouchDb

­ MongoDb

­ Riak

­ Voldemort

Configurável­ BigTable

­ Cassandra

­ Hbase

­ HyperTable

Modelo de DadosO Modelo de Dados define como a in­

formação é armazenada e estruturada dentrodo banco.

­ Chave/Valor Possui uma estrutura muitosemelhante a do Java.util.Map, onde pode­mos armazenar uma chave e seu valor. Essevalor pode ser qualquer informação.

­ Amazon Dynamo

­ Amazon S3

­ Redis

­ Scalaris

­ Voldemort

DocumentoEste modelo permite armazenar qual­

quer documento, sem a necessidade de defi­nir previamente sua estrutura. O documentoé composto por inúmeros campos, com tiposde dados diversos ­ inclusive um campo po­de conter um outro, com uma estrutura se­melhante a um arquivo XML.

­ Amazon SimpleDb

­ Apache Couchdb

­ MongoDb

­ Riak

�������� ����� � ����������

����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �

Page 3: Cassandra com NOSQL parte 2

��

ColunasEsse modelo tornou­se popular através

do paper BigTable do Google, com o objetivode montar um sistema de armazenamentode dados distribuído. Projetado para ter umalto grau de escalabilidade e de volume dedados é composto por três componentes

­ Keyspace: Semelhante a um banco de da­dos relacional tem como função agrupar umconjunto de Famílias de Colunas.

­ Família de Colunas: Semelhante a uma ta­bela no modelo relacional, organiza as colu­nas. Faz uso de uma chave única, que trazflexibilidade ao modelo sem poluir as linhascom colunas nulas.

­ Coluna: É uma tupla composta por nome,timestamp e valor, onde os dados são real­mente armazenados.

Duas características adicionais e impor­tantes deste modelo são a forma de consul­ta, que pode ser executada apenas atravésda chave das linhas de uma família de colu­nas, e a necessidade de definir previamenteo conjunto de colunas que podem ser arma­zenadas em cada família.

­ Cassandra

­ Google BigTable

­ HBase

­ Hyperbase

Grafo (whiteboard friendly) é uma es­trutura de dados que conecta um conjunto devértices através de um conjunto de arestas.Os bancos de dados de grafo moderno su­portam estruturas de grafo multi­relacionais,onde existem tipos diferentes de vértices (re­presentando pessoas, lugares, itens) e dife­rentes tipos de arestas (como por exemplo

amigo de, mora em, comprado por).

­ Neo4j

­ InfoGrid

­ Sones

­ HyperGraphDB

Conclusão:Neste artigo falou­se sobre os diversos

tipos de bancos NOSQL, além de classificá­los por arquitetura, armazenamento e mode­lo de dados. Conclui­se que, com o grandenúmero de aplicações e suas diversidade, foinecessário a criação de algumas formas dearmazenamento para atender melhor um re­quisito específico. Finalizando uma breve in­trodução sobre o NOSQL.

No próximo artigo abordaremos o Cas­sandra e suas características.

Referências__ Porcelli, Alexandre: Java Magazine nº 86 Introdu­ção ao NOSQL

__ Ferreira, Edmar: http://va.mu/TfSR

__ Cassandra: http://va.mu/TixL

__ Reis, Valéria Quadros dos: http://va.mu/TfST

������ ��������� �� �������

������� �� ����� �� ������������� ������������� �� ��������� �� ����������������� ������� ���������� �������� �� ������ ������� �������� �� ������ �� �����.

�������� ����� � ����������

����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �