Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

noSQL WTF?! - Citi2010

1,249 views

Published on

Published in: Technology
  • Be the first to comment

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

×