noSQL WTF?! - Citi2010

1,179 views
1,113 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,179
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for 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

×