DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVADesen vo l ven d o co mN O S Q L ­ Cassan d ra em Java:Parte ...
DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA      Antes de falar sobre Cassandra é necessá­              ...
DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA       Basicamente Avaliado (disponível)                     ...
Próximos SlideShares
Carregando em…5
×

Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL

1.155 visualizações

Publicada em

Matéria falando sobre o desenvolvimento do cassandra no java, dividivo em partes.
Nessa primeira parte foi explicado um pouco sobre o movimento NOSQL.

  • Seja o primeiro a comentar

Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL

  1. 1. DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVADesen vo l ven d o co mN O S Q L ­ Cassan d ra em Java:Parte 1 ­ Conceito NOSQLPor Otávio Gonçalves de Santana O Banco de Dados NOSQL foi criado, prin­ cipalmente, para resolver problemas com aplica­ ções web que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Esses tipos de banco de da­ dos vem sendo usados com muita frequência em redes sociais como Twiter, Facebook, além de persistência em aplicações nas nuvens. O Cassandra é um tipo de banco NOSQL que ori­ ginalmente foi criado pelo Facebook e que atual­ mente é mantido pela Apache e outras empresas. Ele é um sistema de banco de dados distribuído baseado no modelo BigTable do Google e no sistema de armazenamento Dynamo da Amazon.com.Revista Espírito Livre | Março 2012 | http://revista.espiritolivre.org |49
  2. 2. DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA Antes de falar sobre Cassandra é necessá­ SQLrio falar sobre a tecnologia que o circula: o Modelo de persistência: Os atuais bancosNOSQL. Ele significa Not only SQL (não somen­ de dados tentam explorar ao máximo o modelote sql) e não NO SQL (não ao sql). O principal A.C.I.D. cujos os princípios são:objetivo do mesmo é promover um novo conceito Atomicidade: Trata o trabalho como partede banco de dados e sem destruir ou inviabilizar indivisível, ou seja ou tudo feito ou nada feitoo já existente (SQL). Apesar do grande númerode aplicações e da diversidade de seus objeti­ Consistência: o processo deve deixar ovos, todas essas, em sua grande maioria, aca­ banco integro ou não será executadobam realizando o CRUD, ou seja, cria, recupera, Isolamento: tratar cada operação como in­atualiza e deleta informações. Essas informa­ dividualções tem características e tamanhos diferentes enecessidades de poder computacional diferen­ Durabilidade: os processos em caso detes. Essa base ou banco de informações fica abs­ sucesso serão permanentetraída da aplicação cliente e é gerenciado por Armazenamento: Em função disso ga­um Sistema de Gerenciamento de Banco de Da­ nham certa limitação nas transações com gigan­dos (SGBD). Os mais populares SGBDs são os tescos volumes de dados, cargas de trabalhostipos relacionais – que são uma maneira de estru­ normais de operações modernas. Essas infor­turar as informações de modo único a partir de ta­ mações em sua grande maioria concentram­sebelas e na relação de umas com as outras. no disco rígido, gastando alto poder computacio­ nal de I/O.Arquitetura dos bancos de dados Acesso da informação: Os bancos relaci­ Para explicar melhor a arquitetura dos ban­ onais possuem estruturas bem semelhantes ecos NOSQL será comparado com os bancos rela­ possuem alguns comandos em comuns que é ocionais. É importante salientar a diferença entre SQL ANSI, para se conectar e acessar as infor­os bancos e o seu uso, pois uma má escolha no mações do banco de dados usa­se um driver.padrão de persistência pode acarretar mais ho­ Em Java, por exemplo, trocar de banco de da­ras do que a planejada, além no não atendimen­ dos na maioria dos casos resultam em impactosto do seu requisito. As aplicações em sua zero para a aplicação, já que basta apenas mo­maioria são atendidas pelo banco relacional. Se­ dificar o driver de conexão de um banco de da­ria semelhante a um carro utilitário, que serve pa­ dos para outro. Nesse tipo de banco, asra várias pistas e quando se tem a necessidade informações podem ser recuperadas de N ma­de uma maior velocidade e desempenho uma neiras e a mineração de dados com esses tiposboa opção seria os bancos NOSQL ­ que seria de bancos é bastante fácil.comparado a um carro de corrida. No entantoeles atendem a casos específicos. Será improdu­ Escalabilidade: Esse modelo trabalhativo colocar um carro de Formula 1 em uma pista melhor com a escalabilidade vertical que consis­de rally. te em adicionar mais poder de processamento, memória ou disco em uma máquina. NOSQL Modelo de persistência: Com a neces­ sidade de se ganhar mais performance principal­ mente no trabalho com grandes blocos de dados foi criado os bancos que usam o princípio do BASE.Revista Espírito Livre | Março 2012 | http://revista.espiritolivre.org |50
  3. 3. DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA Basicamente Avaliado (disponível) Escalabilidade: Existem modelos que tra­ Soft­state balham tanto na forma vertical quanto na horizontal ­ que é a capacidade de adicionar no­ Eventualmente persistente (em um momen­ vas máquinas para, de forma distribuída, aumen­to será persistido) tar os recursos de processamento, memória e A ideia desse modelo é dar prioridade há disco.uma alta disponibilidade e escalabilidade alémde um alto grau de performance. Conclusão Armazenamento: com o objetivo da dispo­ Neste artigo foi abordado o conceito denibilidade boa parte desse modelo usam memó­ NOSQL além de suas semelhanças e diferençasria principal e durante um período de tempo são entre os bancos relacionais que estão a bastantejogados no disco rígido, alguns modelos traba­ tempo no mercado, na segunda parte será trata­lham 100% com memória principal. da de uma forma melhor o funcionamento do banco de dados NOSQL seus aspectos e dife­ Acesso da informação: No NOSQL, não renças, visto que existem alguns tipos de bancoexiste semelhança alguma entre os bancos de de dados.dados. Atualmente pode­se dividir os grupos debancos de dados em quatro: grande tabela, cha­ve­valor, grafos, documentos ( serão explicados Referências:melhor no decorrer do artigo) cada um com ca­racterísticas específicas e objetivos específicos. __ Porcelli, Alexandre. Java Magazine nº 86 Introdução aoPara se conectar ou acessar um desses bancos NOSQLde dados é usado uma API. Mudanças de __ Ferreira, Edmar: http://va.mu/TfSRbancos de dados causarão bastante impacto __ Cassandra: http://cassandra.apache.org/para a aplicação, mesmo que os bancos dedados sejam do mesmo tipo ­ por exemplo de __ Valéria Quadros dos Reis: http://va.mu/TfSTBig Table da Google para Cassandra. Apesar deambos possuírem o mesmo modelo de banco dedados, que é o de grande tabela, a mudança decódigo mesmo que apenas em uma camada(DAO) será relativamente alta. Mas a tendência OTÁVIO GONÇALVES SANTANA éé que daqui a alguns anos cada um dos tipos de graduando em Engenharia de Computação. Desenvolvedor em soluçõesbanco de dados terão uma implementação de Open Sources. Líder da célula dereferência semelhante ao JPA. Outra informação Desenvolvimento da Faculdade AREA1, membro ativo da comunidade JavaBahia eimportante é que, em boa parte dos banco, você do grupo Linguágil. twiter otaviojava. Blogrecupera a informação apenas a partir de uma http://otaviosantana.blogspot.com/chave.Revista Espírito Livre | Março 2012 | http://revista.espiritolivre.org |51

×