SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA




Desen vo l ven d o co m
N O S Q L ­ Cassan d ra em Java:
Parte 1 ­ Conceito NOSQL
Por 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
DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA


      Antes de falar sobre Cassandra é necessá­                          SQL
rio falar sobre a tecnologia que o circula: o                                  Modelo de persistência: Os atuais bancos
NOSQL. Ele significa Not only SQL (não somen­                            de dados tentam explorar ao máximo o modelo
te 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 parte
de banco de dados e sem destruir ou inviabilizar
                                                                         indivisível, ou seja ou tudo feito ou nada feito
o já existente (SQL). Apesar do grande número
de aplicações e da diversidade de seus objeti­                               Consistência: o processo deve deixar o
vos, todas essas, em sua grande maioria, aca­                            banco integro ou não será executado
bam 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 e
necessidades de poder computacional diferen­                                  Durabilidade: os processos em caso de
tes. Essa base ou banco de informações fica abs­                         sucesso serão permanente
traí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 trabalhos
tipos 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­se
belas 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 e
cos NOSQL será comparado com os bancos rela­                             possuem alguns comandos em comuns que é o
cionais. É 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 impactos
to 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, as
ra 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 tipos
boa opção seria os bancos NOSQL ­ que seria                              de bancos é bastante fácil.
comparado a um carro de corrida. No entanto
eles atendem a casos específicos. Será improdu­                               Escalabilidade:    Esse modelo trabalha
tivo 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
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ém
de um alto grau de performance.                                          Conclusão
       Armazenamento: com o objetivo da dispo­                                Neste artigo foi abordado o conceito de
nibilidade boa parte desse modelo usam memó­                             NOSQL além de suas semelhanças e diferenças
ria principal e durante um período de tempo são                          entre os bancos relacionais que estão a bastante
jogados 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 banco
existe semelhança alguma entre os bancos de                              de dados.
dados. Atualmente pode­se dividir os grupos de
bancos 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 ao
Para se conectar ou acessar um desses bancos                             NOSQL
de dados é usado uma API. Mudanças de                                    __ Ferreira, Edmar: http://va.mu/TfSR
bancos de dados causarão bastante impacto                                __ Cassandra: http://cassandra.apache.org/
para a aplicação, mesmo que os bancos de
dados sejam do mesmo tipo ­ por exemplo de                               __ Valéria Quadros dos Reis: http://va.mu/TfST
Big Table da Google para Cassandra. Apesar de
ambos possuírem o mesmo modelo de banco de
dados, que é o de grande tabela, a mudança de
có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ções
banco de dados terão uma implementação de                                                  Open Sources. Líder da célula de
referência semelhante ao JPA. Outra informação                                             Desenvolvimento da Faculdade AREA1,
                                                                                           membro ativo da comunidade JavaBahia e
importante é que, em boa parte dos banco, você                                             do grupo Linguágil. twiter otaviojava. Blog
recupera 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

Mais conteúdo relacionado

Mais procurados

Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoAugusto Giles
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisCarlo Pires
 

Mais procurados (16)

Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas Apresentação
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
Distributed Databases Overview
Distributed Databases OverviewDistributed Databases Overview
Distributed Databases Overview
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 

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

NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Otávio Santana
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemJoão Gabriel Lima
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasJoão Gabriel Lima
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLAirton Lastori
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na WebMeritt - Cada Aluno é Único
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdfEizo Edson
 

Semelhante a Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL (20)

NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
Nosql
NosqlNosql
Nosql
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativas
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQL
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
No sql std
No sql stdNo sql std
No sql std
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 
Aula 4 - Introdução a aws
Aula 4 - Introdução a awsAula 4 - Introdução a aws
Aula 4 - Introdução a aws
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 

Mais de Otávio Santana

NoSQL design pitfalls with Java
NoSQL design pitfalls with JavaNoSQL design pitfalls with Java
NoSQL design pitfalls with JavaOtávio Santana
 
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Otávio Santana
 
Architecting Cloud Computing Solutions with Java [1.1]
Architecting Cloud Computing Solutions with Java [1.1]Architecting Cloud Computing Solutions with Java [1.1]
Architecting Cloud Computing Solutions with Java [1.1]Otávio Santana
 
Arquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com JavaArquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com JavaOtávio Santana
 
Build, run, and scale your Java applications end to end
Build, run, and scale your Java applications end to endBuild, run, and scale your Java applications end to end
Build, run, and scale your Java applications end to endOtávio Santana
 
Jakarta NoSQL: Meet the first Jakarta EE specification in the Cloud
Jakarta NoSQL: Meet the first Jakarta EE specification in the CloudJakarta NoSQL: Meet the first Jakarta EE specification in the Cloud
Jakarta NoSQL: Meet the first Jakarta EE specification in the CloudOtávio Santana
 
ORMs: Heroes or Villains Inside the Architecture?
ORMs: Heroes or Villains Inside the Architecture?ORMs: Heroes or Villains Inside the Architecture?
ORMs: Heroes or Villains Inside the Architecture?Otávio Santana
 
Jakarta EE Meets NoSQL at the Cloud Age
Jakarta EE Meets NoSQL at the Cloud AgeJakarta EE Meets NoSQL at the Cloud Age
Jakarta EE Meets NoSQL at the Cloud AgeOtávio Santana
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Otávio Santana
 
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]Otávio Santana
 
Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Otávio Santana
 
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]Otávio Santana
 
The new generation of data persistence with graph
The new generation of data persistence with graphThe new generation of data persistence with graph
The new generation of data persistence with graphOtávio Santana
 
Eclipse JNoSQL updates from JCP September 11
Eclipse JNoSQL updates from JCP September 11Eclipse JNoSQL updates from JCP September 11
Eclipse JNoSQL updates from JCP September 11Otávio Santana
 
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - GuatemalaStateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - GuatemalaOtávio Santana
 
Stateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - MexicoStateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - MexicoOtávio Santana
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Database
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabaseEclipse JNoSQL: The Definitive Solution for Java and NoSQL Database
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabaseOtávio Santana
 
Management 3.0 and open source
Management 3.0 and open sourceManagement 3.0 and open source
Management 3.0 and open sourceOtávio Santana
 
Building a Recommendation Engine with Java EE
Building a Recommendation Engine with Java EEBuilding a Recommendation Engine with Java EE
Building a Recommendation Engine with Java EEOtávio Santana
 

Mais de Otávio Santana (20)

NoSQL design pitfalls with Java
NoSQL design pitfalls with JavaNoSQL design pitfalls with Java
NoSQL design pitfalls with Java
 
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends.
 
Architecting Cloud Computing Solutions with Java [1.1]
Architecting Cloud Computing Solutions with Java [1.1]Architecting Cloud Computing Solutions with Java [1.1]
Architecting Cloud Computing Solutions with Java [1.1]
 
Arquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com JavaArquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com Java
 
Build, run, and scale your Java applications end to end
Build, run, and scale your Java applications end to endBuild, run, and scale your Java applications end to end
Build, run, and scale your Java applications end to end
 
Jakarta NoSQL: Meet the first Jakarta EE specification in the Cloud
Jakarta NoSQL: Meet the first Jakarta EE specification in the CloudJakarta NoSQL: Meet the first Jakarta EE specification in the Cloud
Jakarta NoSQL: Meet the first Jakarta EE specification in the Cloud
 
ORMs: Heroes or Villains Inside the Architecture?
ORMs: Heroes or Villains Inside the Architecture?ORMs: Heroes or Villains Inside the Architecture?
ORMs: Heroes or Villains Inside the Architecture?
 
Jakarta EE Meets NoSQL at the Cloud Age
Jakarta EE Meets NoSQL at the Cloud AgeJakarta EE Meets NoSQL at the Cloud Age
Jakarta EE Meets NoSQL at the Cloud Age
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0
 
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
Jakarta EE Meets NoSQL in the Cloud Age [DEV6109]
 
Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]Let’s Make Graph Databases Fun Again with Java [DEV6043]
Let’s Make Graph Databases Fun Again with Java [DEV6043]
 
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]
Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL [HOL5998]
 
The new generation of data persistence with graph
The new generation of data persistence with graphThe new generation of data persistence with graph
The new generation of data persistence with graph
 
Eclipse JNoSQL updates from JCP September 11
Eclipse JNoSQL updates from JCP September 11Eclipse JNoSQL updates from JCP September 11
Eclipse JNoSQL updates from JCP September 11
 
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - GuatemalaStateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - Guatemala
 
Stateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - MexicoStateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - Mexico
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Database
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabaseEclipse JNoSQL: The Definitive Solution for Java and NoSQL Database
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Database
 
Polyglot persistence
Polyglot persistencePolyglot persistence
Polyglot persistence
 
Management 3.0 and open source
Management 3.0 and open sourceManagement 3.0 and open source
Management 3.0 and open source
 
Building a Recommendation Engine with Java EE
Building a Recommendation Engine with Java EEBuilding a Recommendation Engine with Java EE
Building a Recommendation Engine with Java EE
 

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

  • 1. DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA Desen vo l ven d o co m N O S Q L ­ Cassan d ra em Java: Parte 1 ­ Conceito NOSQL Por 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. DESENVOLVIMENTO ∙ DESENVOLVENDO COM NOSQL ­ CASSANDRA EM JAVA Antes de falar sobre Cassandra é necessá­ SQL rio falar sobre a tecnologia que o circula: o Modelo de persistência: Os atuais bancos NOSQL. Ele significa Not only SQL (não somen­ de dados tentam explorar ao máximo o modelo te 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 parte de banco de dados e sem destruir ou inviabilizar indivisível, ou seja ou tudo feito ou nada feito o já existente (SQL). Apesar do grande número de aplicações e da diversidade de seus objeti­ Consistência: o processo deve deixar o vos, todas essas, em sua grande maioria, aca­ banco integro ou não será executado bam 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 e necessidades de poder computacional diferen­ Durabilidade: os processos em caso de tes. Essa base ou banco de informações fica abs­ sucesso serão permanente traí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 trabalhos tipos 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­se belas 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 e cos NOSQL será comparado com os bancos rela­ possuem alguns comandos em comuns que é o cionais. É 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 impactos to 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, as ra 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 tipos boa opção seria os bancos NOSQL ­ que seria de bancos é bastante fácil. comparado a um carro de corrida. No entanto eles atendem a casos específicos. Será improdu­ Escalabilidade: Esse modelo trabalha tivo 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. 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ém de um alto grau de performance. Conclusão Armazenamento: com o objetivo da dispo­ Neste artigo foi abordado o conceito de nibilidade boa parte desse modelo usam memó­ NOSQL além de suas semelhanças e diferenças ria principal e durante um período de tempo são entre os bancos relacionais que estão a bastante jogados 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 banco existe semelhança alguma entre os bancos de de dados. dados. Atualmente pode­se dividir os grupos de bancos 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 ao Para se conectar ou acessar um desses bancos NOSQL de dados é usado uma API. Mudanças de __ Ferreira, Edmar: http://va.mu/TfSR bancos de dados causarão bastante impacto __ Cassandra: http://cassandra.apache.org/ para a aplicação, mesmo que os bancos de dados sejam do mesmo tipo ­ por exemplo de __ Valéria Quadros dos Reis: http://va.mu/TfST Big Table da Google para Cassandra. Apesar de ambos possuírem o mesmo modelo de banco de dados, que é o de grande tabela, a mudança de có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ções banco de dados terão uma implementação de Open Sources. Líder da célula de referência semelhante ao JPA. Outra informação Desenvolvimento da Faculdade AREA1, membro ativo da comunidade JavaBahia e importante é que, em boa parte dos banco, você do grupo Linguágil. twiter otaviojava. Blog recupera 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