introdução ao nosql com java (cassandra)

Post on 25-May-2015

610 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

Introdução ao NOSQL com Java

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

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

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

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

Relacional

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

NOSQL

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

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

AtomicidadeConsistênciaIsolamentoDurabilidade

Basicamente AvaliadoSoft-stateEventualmente persistente

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

Classificação

Arquitetura Armazenamento Estrutura Dados

Chave-ValorDocumentosGrafoFamília de Colunas

CassandraDistribuídaConfigurávelFamília de Colunas

CassandraGossipNível de consistênciaLeitura e Escrita

ANYONELOCAL_QUORUMEACH_QOURUMALL

Disponibilidade

Consistência

Modelagem

TwittSandra

Usuários Seguidores Seguidos

User Line TimeLine Tweets

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

Column Family Followers

alice bob : mallory : trent :

Seguidores

Column Family Following

alice bob : carlos : david :

Seguidos

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

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

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

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

Exemplo

Integração

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

Obrigado

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

top related