introdução ao nosql com java (cassandra)

22
Introdução ao NOSQL com Java Otávio Santana @otaviojava https://github.com/otaviojava/ http://about.me/otaviojava

Upload: otavio-goncalves-de-santana

Post on 25-May-2015

608 views

Category:

Documents


0 download

DESCRIPTION

Os bancos de Dados NOSQL (not only SQL) foram criados principalmente para resolver problemas com aplicações na web que precisão operar com gigantescas cargas de dados além de poder escalar com grande facilidade, esses tipos de banco de dados vem sendo usado com muita frequência em redes sociais como Twiter, facebook além de persistência aplicações nas nuvens. Atualmente as grandes e consolidadas instituições financeiras começaram a utilizar devido a necessidade de escalar com grande facilidade a aplicação. Conheça um pouco sobre o conceito, seu uso além de por a mão na massa em dois mais famosos bancos de dados nosql: MongoDB e Cassandra. Tudo isso usando apenas tecnologia open source incluindo também a JVM com o OpenJDK.

TRANSCRIPT

Page 1: Introdução ao NOSQL com  Java (Cassandra)

Introdução ao NOSQL com Java

Otávio Santana@otaviojavahttps://github.com/otaviojava/http://about.me/otaviojava

Page 2: Introdução ao NOSQL com  Java (Cassandra)

Cassandra Trip BrasilCassandra em Cinco Cidades

Data: 2 de setembro, Segunda-FeiraCidade: Campinas

Data: 3 de setembro, Terça-FeiraCidade: São Paulo

Data: 3 de setembro, Terça-FeiraCidade: Online

Data: 4 de setembro, Quarta-FeiraCidade: Florianópolis

Data: 5 de setembro, Quinta-FeiraCidade: Brasília

Data: 6 de setembro, Sexta-FeiraCidade: Salvador

Page 3: Introdução ao NOSQL com  Java (Cassandra)

Cassandra Trip BrasilCassandra em Cinco CidadesLink: http://goo.gl/wbjQyzData: 2 de setembro, Segunda-FeiraCidade: Campinas

Data: 3 de setembro, Terça-FeiraCidade: São Paulo

Data: 3 de setembro, Terça-FeiraCidade: Online

Data: 4 de setembro, Quarta-FeiraCidade: Florianópolis

Data: 5 de setembro, Quinta-FeiraCidade: Brasília

Data: 6 de setembro, Sexta-FeiraCidade: Salvador

Page 5: Introdução ao NOSQL com  Java (Cassandra)

AgendaLembrando o passadoNOSQLNOSQL – DefiniçõesRelacional vs NOSQLCassandraArquiteturaHierarquiaNível de consistênciaModelagemExemplo(Spring e CDI Weld)

Page 6: Introdução ao NOSQL com  Java (Cassandra)

Relacional

Modelagem: 1970 Configuração aprox: 16kb RAM 800kb armazenamento

Page 7: Introdução ao NOSQL com  Java (Cassandra)

NOSQL

Não apenas SQLConhecer o melhor dos dois mundosUso específico

Page 8: Introdução ao NOSQL com  Java (Cassandra)

A.C.I.D. vs B.A.S.E

AtomicidadeConsistênciaIsolamentoDurabilidade

Basicamente AvaliadoSoft-stateEventualmente persistente

Page 9: Introdução ao NOSQL com  Java (Cassandra)

SQL vs NOSQLDriverSQL ANSITransaçãoAlto custo de IOFácil troca de BancoRelacionamento

APINão padronizadoNão TransaçãoBusca por chaveDifícil troca de BancoNão relacionamento

Page 10: Introdução ao NOSQL com  Java (Cassandra)

Classificação

Arquitetura Armazenamento Estrutura Dados

Chave-ValorDocumentosGrafoFamília de Colunas

Page 11: Introdução ao NOSQL com  Java (Cassandra)

CassandraDistribuídaConfigurávelFamília de Colunas

Page 12: Introdução ao NOSQL com  Java (Cassandra)

CassandraGossipNível de consistênciaLeitura e Escrita

ANYONELOCAL_QUORUMEACH_QOURUMALL

Disponibilidade

Consistência

Page 13: Introdução ao NOSQL com  Java (Cassandra)

Modelagem

TwittSandra

Usuários Seguidores Seguidos

User Line TimeLine Tweets

Page 14: Introdução ao NOSQL com  Java (Cassandra)

Column Family Usuários

alice nome : Allison senha : *

bob nome : Roberto senha : *

eve nome : Evelyn senha : *

chuck nome : Carlos senha : * site : datastax.com

Usuários

Page 15: Introdução ao NOSQL com  Java (Cassandra)

Column Family Followers

alice bob : mallory : trent :

Seguidores

Page 16: Introdução ao NOSQL com  Java (Cassandra)

Column Family Following

alice bob : carlos : david :

Seguidos

Page 17: Introdução ao NOSQL com  Java (Cassandra)

Column Family UserLine

alice 125695372 : AXML 126695372 : XCVL 127695372 : XENY

bob 125795372 : SDFG 126895372 : XCVN

eve 125694372 : FDHL

arthur 125600000 : AXML 125800000 : XCVL 127900000 : XENY

Twettes do usuário

Page 18: Introdução ao NOSQL com  Java (Cassandra)

Column Family Timeline

bob 125795372 : SDFG 126895372 : XCVN

eve 1279900000 : FDHL

arthur 125600000 : AXML 125800000 : XCVL 127900000 : XENY

alice 125795372 : SDFG 125800000 : XCVL 1279900000 : FDHL

TimeLine

Page 19: Introdução ao NOSQL com  Java (Cassandra)

Column Family: Tweets

LMNO timestamp : 175695372

corpo : estou tão equivicado? user : carlos

AXML timestamp : 125695372

corpo: recebeu a minha mensagem? user : alice

DEXDL timestamp : 155695372

corpo: ouvi o que diz. user : eve

BADFO timestamp : 135695372

corpo : manda-me a senha.

user : mallory

Tweets

Page 20: Introdução ao NOSQL com  Java (Cassandra)

Column Family: UserLine

bob 127695372 : XENY126695372 : XCVL 200000000 : LUMP

Column Family: TimeLine

alice 125795372 : SDFG 125800000 : XCVL 1279900000 : FDHL 200000000 : LUMP

125695372 : AXML

bob 125795372 : SDFG 126895372 : XCVN 200000000 : LUMP

eve1279900000 : FDHL 200000000 : LUMP

UserLine e TimeLine

Page 21: Introdução ao NOSQL com  Java (Cassandra)

Exemplo

Integração

http://otaviojava.github.io/Easy-Cassandra/

Page 22: Introdução ao NOSQL com  Java (Cassandra)

Obrigado

Otávio Santana@otaviojavahttps://github.com/otaviojava/http://about.me/otaviojava