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


Top Related