introdução ao nosql com java (cassandra)
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
Cassandra Brasil
Planeta CassandraCassandra Brasil Google GroupsCassandra Brasil LinkedinCassandra Trip Brasil
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