Download - noSQL WTF?! - Citi2010
![Page 1: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/1.jpg)
noSQL wtf?!
sexta-feira, 12 de novembro de 2010
![Page 2: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/2.jpg)
contexto
sexta-feira, 12 de novembro de 2010
![Page 3: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/3.jpg)
serviços websexta-feira, 12 de novembro de 2010
![Page 4: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/4.jpg)
falta de capitalsexta-feira, 12 de novembro de 2010
![Page 5: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/5.jpg)
mesmo assim...
sexta-feira, 12 de novembro de 2010
![Page 6: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/6.jpg)
“risco” de fazer sucesso
sexta-feira, 12 de novembro de 2010
![Page 7: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/7.jpg)
big data
sexta-feira, 12 de novembro de 2010
![Page 8: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/8.jpg)
história...
sexta-feira, 12 de novembro de 2010
![Page 9: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/9.jpg)
• Hierarchical (IMS): late 1960’s and 1970’s • Directed graph (CODASYL): 1970’s • Relational: 1970’s and early 1980’s • Entity-Relationship: 1970’s • Extended Relational: 1980’s • Semantic: late 1970’s and 1980’s• Object-oriented: late 1980’s and early 1990’s • Object-relational: late 1980’s and early 1990’s • Semi-structured (XML): late 1990’s to late 2000’s• The next big thing: ???
ref: What Goes Around Comes Around por Michael Stonebraker e Joey Hellerstein
modelos
sexta-feira, 12 de novembro de 2010
![Page 10: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/10.jpg)
next big thing?
sexta-feira, 12 de novembro de 2010
![Page 11: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/11.jpg)
abaixo o banco de
dados relacional!
sexta-feira, 12 de novembro de 2010
![Page 12: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/12.jpg)
abaixo ao banco de dados relacional!
como bala de prata!
sexta-feira, 12 de novembro de 2010
![Page 13: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/13.jpg)
momento histórico...
sexta-feira, 12 de novembro de 2010
![Page 14: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/14.jpg)
sexta-feira, 12 de novembro de 2010
![Page 15: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/15.jpg)
resolver problemas específicos
sexta-feira, 12 de novembro de 2010
![Page 16: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/16.jpg)
por partes...sexta-feira, 12 de novembro de 2010
![Page 17: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/17.jpg)
estrutura de dados
sexta-feira, 12 de novembro de 2010
![Page 18: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/18.jpg)
chave-valor
sexta-feira, 12 de novembro de 2010
![Page 19: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/19.jpg)
modelo
sexta-feira, 12 de novembro de 2010
![Page 20: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/20.jpg)
família de colunassexta-feira, 12 de novembro de 2010
![Page 21: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/21.jpg)
modeloKeyspace
Família de Colunas
.
.
.
chavelinha
coluna coluna coluna. . .coluna
chavelinha
coluna coluna coluna. . .coluna coluna coluna
nome valortimestamp
Coluna
sexta-feira, 12 de novembro de 2010
![Page 22: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/22.jpg)
documento
sexta-feira, 12 de novembro de 2010
![Page 23: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/23.jpg)
modelo
sexta-feira, 12 de novembro de 2010
![Page 24: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/24.jpg)
grafo
sexta-feira, 12 de novembro de 2010
![Page 25: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/25.jpg)
visão geral
sexta-feira, 12 de novembro de 2010
![Page 26: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/26.jpg)
sexta-feira, 12 de novembro de 2010
![Page 27: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/27.jpg)
sexta-feira, 12 de novembro de 2010
![Page 28: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/28.jpg)
arquitetura
sexta-feira, 12 de novembro de 2010
![Page 29: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/29.jpg)
ACID
sexta-feira, 12 de novembro de 2010
![Page 30: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/30.jpg)
ACID
tomicityonsitencysolationurability
sexta-feira, 12 de novembro de 2010
![Page 31: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/31.jpg)
para adotar nosql é
importante conhecer os
tradeoffs
sexta-feira, 12 de novembro de 2010
![Page 32: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/32.jpg)
BASE
ref: BASE: an Acid Alternative por Dan Pritchettsexta-feira, 12 de novembro de 2010
![Page 33: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/33.jpg)
BASE
asicallyvailableoft Stateeventually Consistent
sexta-feira, 12 de novembro de 2010
![Page 34: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/34.jpg)
jogo de palavras
relaxamento das regras
sexta-feira, 12 de novembro de 2010
![Page 35: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/35.jpg)
estado de fluxo
sexta-feira, 12 de novembro de 2010
![Page 36: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/36.jpg)
Eventually Consistent
ref: Eventually Consistent por Werner Vogelssexta-feira, 12 de novembro de 2010
![Page 37: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/37.jpg)
eventual em português: pode ou não ocorrer
eventual em inglês: irá ocorrer em algum
momento
sexta-feira, 12 de novembro de 2010
![Page 38: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/38.jpg)
Consistência em Momento
Indeterminado
@mdedianasexta-feira, 12 de novembro de 2010
![Page 39: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/39.jpg)
N, R e W
consistência
sexta-feira, 12 de novembro de 2010
![Page 40: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/40.jpg)
intersecção
W+R > N
sexta-feira, 12 de novembro de 2010
![Page 41: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/41.jpg)
não consistenteW+R = N
1+1 = 2
sexta-feira, 12 de novembro de 2010
![Page 42: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/42.jpg)
consistenteW+R > N
2+2 = 3
sexta-feira, 12 de novembro de 2010
![Page 43: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/43.jpg)
durabilidade
ref: The End of an Architectural Era por Michael Stonebraker & al.sexta-feira, 12 de novembro de 2010
![Page 44: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/44.jpg)
cloud
sexta-feira, 12 de novembro de 2010
![Page 45: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/45.jpg)
ref: The CAP Theorem por Seth Gilbert & Nancy Lynch
CAP
sexta-feira, 12 de novembro de 2010
![Page 46: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/46.jpg)
CAP
onsistencyvailabilityartition Tolerance
sexta-feira, 12 de novembro de 2010
![Page 47: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/47.jpg)
Consistency Availability
Partition Tolerance
CA
CP AP
sexta-feira, 12 de novembro de 2010
![Page 48: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/48.jpg)
sexta-feira, 12 de novembro de 2010
![Page 49: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/49.jpg)
★ latência★ performance★ particionamento★ distribuição★ replicação
ainda tem...
sexta-feira, 12 de novembro de 2010
![Page 50: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/50.jpg)
persitência poliglota
sexta-feira, 12 de novembro de 2010
![Page 51: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/51.jpg)
ferramentassexta-feira, 12 de novembro de 2010
![Page 52: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/52.jpg)
sexta-feira, 12 de novembro de 2010
![Page 53: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/53.jpg)
com tantas definições...com tantos conceitos...com tantos tradeoffs...
com tantos....
sexta-feira, 12 de novembro de 2010
![Page 54: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/54.jpg)
como o nosql se tornou tão
sexy e popular?
sexta-feira, 12 de novembro de 2010
![Page 55: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/55.jpg)
apesar de tudo....
é fácil usar!sexta-feira, 12 de novembro de 2010
![Page 56: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/56.jpg)
public static void main(String[] args) { // Estabelece conexão com o Redis Jedis jedis = new Jedis("localhost"); // Adiciona o par chave-valor jedis.set("nome:da:chave", "novo valor"); // Busca o valor a partir da chave String valor = jedis.get("nome:da:chave"); System.out.println("Valor recuperado: " + valor); }
sexta-feira, 12 de novembro de 2010
![Page 57: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/57.jpg)
public static void main(String args[]) throws UnknownHostException, MongoException { Mongo mongo = new Mongo();
DB db = mongo.getDB("MeuDatabase"); DBCollection coll = db.getCollection("pessoas");
DBObject dados = new BasicDBObject(); dados.put("nome", "Alexandre Porcelli"); dados.put("email", "[email protected]");
BasicDBObject endereco = new BasicDBObject();
endereco.put("rua", "r. qualquer"); endereco.put("numero", 1022);
dados.put("endereco", endereco);
coll.insert(dados);
mongo.close(); }
sexta-feira, 12 de novembro de 2010
![Page 58: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/58.jpg)
public static void main(String args[]) throws UnknownHostException, MongoException { Mongo mongo = new Mongo();
DB db = mongo.getDB("MeuDatabase"); DBCollection coll = db.getCollection("pessoas");
DBObject busca = new BasicDBObject(); busca.put("nome", "Alexandre Porcelli");
DBObject documentoEncontrado = coll.findOne(busca);
System.out.println(documentoEncontrado);
mongo.close(); }
sexta-feira, 12 de novembro de 2010
![Page 59: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/59.jpg)
public static void main(String[] args) { GraphDatabaseService graphDb = new EmbeddedGraphDatabase("db/matrix"); Transaction tx = graphDb.beginTx(); try { Node thomasAnderson = graphDb.createNode(); Node trinity = graphDb.createNode(); Node morpheus = graphDb.createNode(); Relationship link1 = thomasAnderson.createRelationshipTo(trinity, MeusTiposDeRelacionamento.CONHECE); Relationship link2 = trinity.createRelationshipTo(morpheus, MeusTiposDeRelacionamento.CONHECE); thomasAnderson.setProperty("nome", "Thomas Anderson"); trinity.setProperty("nome", "Trinity"); morpheus.setProperty("nome", "Morpheus"); morpheus.setProperty("cargo", "Capitão"); link1.setProperty("mensagem", "texto 1!"); link2.setProperty("mensagem", "texto 2!");
tx.success(); } finally { tx.finish(); graphDb.shutdown(); } }
sexta-feira, 12 de novembro de 2010
![Page 60: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/60.jpg)
Perguntas?
sexta-feira, 12 de novembro de 2010
![Page 61: noSQL WTF?! - Citi2010](https://reader031.vdocuments.net/reader031/viewer/2022020206/547e02bfb4af9fb4158b553b/html5/thumbnails/61.jpg)
Obrigado
@porcelli
linkedin.com/in/alexandreporcelli
porcelli.com.br
github.com/porcelli
about.me/porcelli
sexta-feira, 12 de novembro de 2010