noSQL
wtf?!
sexta-feira, 12 de novembro de 2010
contexto
sexta-feira, 12 de novembro de 2010
serviços websexta-feira, 12 de novembro de 2010
falta de capitalsexta-feira, 12 de novembro de 2010
mesmo assim...
sexta-feira, 12 de novembro de 2010
“risco”de fazer
sucesso
sexta-feira, 12 de novembro de 2010
big data
sexta-feira, 12 de novembro de 2010
história...
sexta-feira, 12 de novembro de 2010
• Hierarchical (IMS): late 1960’s and 1970’s
• Directed graph (CODASYL): 1970’s
• Relational: 1970’s and early 1980’s
• En...
next big thing?
sexta-feira, 12 de novembro de 2010
abaixo o
banco de
dados
relacional!
sexta-feira, 12 de novembro de 2010
abaixo ao banco de
dados relacional!
como bala
de prata!
sexta-feira, 12 de novembro de 2010
momento
histórico...
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
resolver
problemas
específicos
sexta-feira, 12 de novembro de 2010
por partes...sexta-feira, 12 de novembro de 2010
estrutura
de dadossexta-feira, 12 de novembro de 2010
chave-valor
sexta-feira, 12 de novembro de 2010
modelo
sexta-feira, 12 de novembro de 2010
família de colunassexta-feira, 12 de novembro de 2010
modelo
Keyspace
Família de Colunas
.
.
.
chave
linha
coluna coluna coluna. . .coluna
chave
linha
coluna coluna coluna. . ....
documento
sexta-feira, 12 de novembro de 2010
modelo
sexta-feira, 12 de novembro de 2010
grafo
sexta-feira, 12 de novembro de 2010
visão geral
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
arquitetura
sexta-feira, 12 de novembro de 2010
ACID
sexta-feira, 12 de novembro de 2010
A
C
I
D
tomicity
onsitency
solation
urability
sexta-feira, 12 de novembro de 2010
para adotar
nosql é
importante
conhecer os
tradeoffs
sexta-feira, 12 de novembro de 2010
BASE
ref: BASE: an Acid Alternative por Dan Pritchett
sexta-feira, 12 de novembro de 2010
B
A
S
E
asically
vailable
oft State
eventually Consistent
sexta-feira, 12 de novembro de 2010
jogo de palavras
relaxamento
das regras
sexta-feira, 12 de novembro de 2010
estado de fluxo
sexta-feira, 12 de novembro de 2010
Eventually
Consistent
ref: Eventually Consistent por Werner Vogels
sexta-feira, 12 de novembro de 2010
eventual em português:
pode ou não ocorrer
eventual em inglês:
irá ocorrer em algum
momento
sexta-feira, 12 de novembro de...
Consistência
em Momento
Indeterminado
@mdediana
sexta-feira, 12 de novembro de 2010
N,R e W
consistência
sexta-feira, 12 de novembro de 2010
intersecção
W+R > N
sexta-feira, 12 de novembro de 2010
não consistente
W+R = N
1+1 = 2
sexta-feira, 12 de novembro de 2010
consistente
W+R > N
2+2 = 3
sexta-feira, 12 de novembro de 2010
durabilidade
ref: The End of an Architectural Era por Michael Stonebraker & al.
sexta-feira, 12 de novembro de 2010
cloud
sexta-feira, 12 de novembro de 2010
ref: The CAP Theorem por Seth Gilbert & Nancy Lynch
CAP
sexta-feira, 12 de novembro de 2010
C
A
P
onsistency
vailability
artition Tolerance
sexta-feira, 12 de novembro de 2010
Consistency Availability
Partition
Tolerance
CA
CP AP
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
★ latência
★ performance
★ particionamento
★ distribuição
★ replicação
ainda tem...
sexta-feira, 12 de novembro de 2010
persitência
poliglota
sexta-feira, 12 de novembro de 2010
ferramentassexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
com tantas definições...
com tantos conceitos...
com tantos tradeoffs...
com tantos....
sexta-feira, 12 de novembro de 2010
como o nosql se
tornou tão
sexy e popular?
sexta-feira, 12 de novembro de 2010
apesar de tudo....
é fácil usar!sexta-feira, 12 de novembro de 2010
public static void main(String[] args) {
	 	 // Estabelece conexão com o Redis
	 	 Jedis jedis = new Jedis("localhost");
	...
public static void main(String args[]) throws UnknownHostException,
	 	 	 MongoException {
	 	 Mongo mongo = new Mongo();
...
public static void main(String args[]) throws UnknownHostException,
	 	 	 MongoException {
	 	 Mongo mongo = new Mongo();
...
public static void main(String[] args) {
	 	 GraphDatabaseService graphDb = new EmbeddedGraphDatabase("db/matrix");
	 	 Tr...
Perguntas?
sexta-feira, 12 de novembro de 2010
Obrigado
alexandre.porcelli@gmail.com
@porcelli
linkedin.com/in/alexandreporcelli
porcelli.com.br
github.com/porcelli
abou...
Próximos SlideShares
Carregando em…5
×

noSQL WTF?! - Citi2010

1.222 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.222
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

noSQL WTF?! - Citi2010

  1. 1. noSQL wtf?! sexta-feira, 12 de novembro de 2010
  2. 2. contexto sexta-feira, 12 de novembro de 2010
  3. 3. serviços websexta-feira, 12 de novembro de 2010
  4. 4. falta de capitalsexta-feira, 12 de novembro de 2010
  5. 5. mesmo assim... sexta-feira, 12 de novembro de 2010
  6. 6. “risco”de fazer sucesso sexta-feira, 12 de novembro de 2010
  7. 7. big data sexta-feira, 12 de novembro de 2010
  8. 8. história... sexta-feira, 12 de novembro de 2010
  9. 9. • 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
  10. 10. next big thing? sexta-feira, 12 de novembro de 2010
  11. 11. abaixo o banco de dados relacional! sexta-feira, 12 de novembro de 2010
  12. 12. abaixo ao banco de dados relacional! como bala de prata! sexta-feira, 12 de novembro de 2010
  13. 13. momento histórico... sexta-feira, 12 de novembro de 2010
  14. 14. sexta-feira, 12 de novembro de 2010
  15. 15. resolver problemas específicos sexta-feira, 12 de novembro de 2010
  16. 16. por partes...sexta-feira, 12 de novembro de 2010
  17. 17. estrutura de dadossexta-feira, 12 de novembro de 2010
  18. 18. chave-valor sexta-feira, 12 de novembro de 2010
  19. 19. modelo sexta-feira, 12 de novembro de 2010
  20. 20. família de colunassexta-feira, 12 de novembro de 2010
  21. 21. modelo Keyspace Família de Colunas . . . chave linha coluna coluna coluna. . .coluna chave linha coluna coluna coluna. . .coluna coluna coluna nome valortimestamp Coluna sexta-feira, 12 de novembro de 2010
  22. 22. documento sexta-feira, 12 de novembro de 2010
  23. 23. modelo sexta-feira, 12 de novembro de 2010
  24. 24. grafo sexta-feira, 12 de novembro de 2010
  25. 25. visão geral sexta-feira, 12 de novembro de 2010
  26. 26. sexta-feira, 12 de novembro de 2010
  27. 27. sexta-feira, 12 de novembro de 2010
  28. 28. arquitetura sexta-feira, 12 de novembro de 2010
  29. 29. ACID sexta-feira, 12 de novembro de 2010
  30. 30. A C I D tomicity onsitency solation urability sexta-feira, 12 de novembro de 2010
  31. 31. para adotar nosql é importante conhecer os tradeoffs sexta-feira, 12 de novembro de 2010
  32. 32. BASE ref: BASE: an Acid Alternative por Dan Pritchett sexta-feira, 12 de novembro de 2010
  33. 33. B A S E asically vailable oft State eventually Consistent sexta-feira, 12 de novembro de 2010
  34. 34. jogo de palavras relaxamento das regras sexta-feira, 12 de novembro de 2010
  35. 35. estado de fluxo sexta-feira, 12 de novembro de 2010
  36. 36. Eventually Consistent ref: Eventually Consistent por Werner Vogels sexta-feira, 12 de novembro de 2010
  37. 37. 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
  38. 38. Consistência em Momento Indeterminado @mdediana sexta-feira, 12 de novembro de 2010
  39. 39. N,R e W consistência sexta-feira, 12 de novembro de 2010
  40. 40. intersecção W+R > N sexta-feira, 12 de novembro de 2010
  41. 41. não consistente W+R = N 1+1 = 2 sexta-feira, 12 de novembro de 2010
  42. 42. consistente W+R > N 2+2 = 3 sexta-feira, 12 de novembro de 2010
  43. 43. durabilidade ref: The End of an Architectural Era por Michael Stonebraker & al. sexta-feira, 12 de novembro de 2010
  44. 44. cloud sexta-feira, 12 de novembro de 2010
  45. 45. ref: The CAP Theorem por Seth Gilbert & Nancy Lynch CAP sexta-feira, 12 de novembro de 2010
  46. 46. C A P onsistency vailability artition Tolerance sexta-feira, 12 de novembro de 2010
  47. 47. Consistency Availability Partition Tolerance CA CP AP sexta-feira, 12 de novembro de 2010
  48. 48. sexta-feira, 12 de novembro de 2010
  49. 49. ★ latência ★ performance ★ particionamento ★ distribuição ★ replicação ainda tem... sexta-feira, 12 de novembro de 2010
  50. 50. persitência poliglota sexta-feira, 12 de novembro de 2010
  51. 51. ferramentassexta-feira, 12 de novembro de 2010
  52. 52. sexta-feira, 12 de novembro de 2010
  53. 53. com tantas definições... com tantos conceitos... com tantos tradeoffs... com tantos.... sexta-feira, 12 de novembro de 2010
  54. 54. como o nosql se tornou tão sexy e popular? sexta-feira, 12 de novembro de 2010
  55. 55. apesar de tudo.... é fácil usar!sexta-feira, 12 de novembro de 2010
  56. 56. 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
  57. 57. 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", "alexandre.porcelli@gmail.com"); 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
  58. 58. 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
  59. 59. 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
  60. 60. Perguntas? sexta-feira, 12 de novembro de 2010
  61. 61. Obrigado alexandre.porcelli@gmail.com @porcelli linkedin.com/in/alexandreporcelli porcelli.com.br github.com/porcelli about.me/porcelli sexta-feira, 12 de novembro de 2010

×