Successfully reported this slideshow.
Your SlideShare is downloading. ×

Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica

Upcoming SlideShare
Hello NoSQL World
Hello NoSQL World
Loading in …3
×

Check these out next

1 of 69 Ad
1 of 69 Ad

Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica

Download to read offline

Vídeo: https://www.youtube.com/watch?v=iLTm5K2LJvI
Introdução ao banco orientado à documentos MongoDB. NoSQL é um novo paradigma para banco de dados semi-estruturados. MongoDB e Python possuem a mesma "melodia" de desenvolvimento: flexibilidade no schema combina bem com tipagem dinâmica, ambas ajudando na produtividade do desenvolvedor. Entenda como esse banco orientado à documentos funciona na prática com um cliente Python.

Vídeo: https://www.youtube.com/watch?v=iLTm5K2LJvI
Introdução ao banco orientado à documentos MongoDB. NoSQL é um novo paradigma para banco de dados semi-estruturados. MongoDB e Python possuem a mesma "melodia" de desenvolvimento: flexibilidade no schema combina bem com tipagem dinâmica, ambas ajudando na produtividade do desenvolvedor. Entenda como esse banco orientado à documentos funciona na prática com um cliente Python.

Advertisement
Advertisement

More Related Content

Viewers also liked (20)

Similar to Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica (20)

Advertisement

More from FATEC São José dos Campos (20)

Advertisement

Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica

  1. 1. Pepe Legal Python e Babalu MongoDB http://about.me/fmasanori
  2. 2. Agenda • Why this title? • NoSQL • Flexible Schema • Horizontal Scalability • MongoDB • Some demos • BI special case • References
  3. 3. Why this title? Desenho fez sucesso no início dos anos 60 Mesma época em que SQL teve início Palestra para old developer’s (or not so old)
  4. 4. Como comecei com NoSQL
  5. 5. • Na faculdade me ensinaram que tudo deveria ser normalizado • E que o mundo era SQL • No entanto: – Comecei a dar aulas de BI (analytics), e denormalizar era incentivado – Persistir dados de redes sociais bastante trabalhoso num relacional Origem
  6. 6. VENDAS CLIENTE TEMPO PRODUTO LOJAPROMOÇÃO (Luiz H. N. Lorena, 2011) Star Schema
  7. 7. (Kimball, 2002) Denormalizing
  8. 8. (Kimball, 2002) Denormalizing
  9. 9. Operacional Analítico Propósito Executar um processo Avaliar um processo Estilo interação Insert, update, delete, query Query (read-only) Escopo interação Transação individual Agregação Padrão query Previsível e estável Imprevisível Foco temporal Atual Histórico e atual Otimização Update concorrente Query (agregação) Projeto ER na 3FN Star Schema ou Cubo (Adamson, 2010) Operational x Analytics
  10. 10. JSON persistence
  11. 11. Casdinho
  12. 12. Sentiment Analysis (Twitter) menina: aaaaaaaaaaaaaa eu NAO GOSTO DELE amiga: e vc ficará rica , e irá dividir sua riqueza cm sua amg aq *u* menina: kkkkkk como assim eu fikar rica pq? amiga: pq ele é inteligente , e vai arranjar um ótimo emprego , e ganhar mt dinheiro rs menina: kkkkk ele é inteligente como assim ?? amiga: AQUELE VIADO PASSOU NO CASDINHO, E EU NÃO !
  13. 13. Sentiment Analysis (Twitter) Obs.: não é o mesmo registro...
  14. 14. Sentiment Analysis (Facebook) Sabe o que é ter vontade de acordar cedo no domingo para estudar?!? Bom, eu também não sei explicar, mas é o que estou sentindo no momento .-. Bora Casdinho!
  15. 15. Sentiment Analysis (Facebook) Obs.: não é o mesmo registro...
  16. 16. Campos opcionais https://gist.github.com/4667205 Campo opcional no Facebook
  17. 17. Social Data changes fast
  18. 18. Snowflakes like documents “Snowflakes represent documents, since every document is beautiful and unique”. MongoDB, The Definitive Guide.
  19. 19. Non Relational Non Relational JSON DataBase Dev like data
  20. 20. JSON persistence • MongoDB • CouchDB • RethinkDB • PostgreSQL (SQL?)
  21. 21. • Como persistir dados sem normalizar, sem um BD relacional? • Somos “formatados” a pensar no modelo relacional • “One size fits all” NoSQL ?
  22. 22. One Size Fits All
  23. 23. “It’s better to think of NoSQL as a movement rather than a technology” Martin Fowler NoSQL
  24. 24. Dynamic Schema O que as empresas esperam de um NoSQL?
  25. 25. Flexible Schema O que as empresas esperam de um NoSQL?
  26. 26. Flexible Schema Flexible Schema Dev Productivity
  27. 27. Relational DB
  28. 28. Martin Fowler Relational DB
  29. 29. • The difference between the relational model and the in- memory data structures (Fowler) • Limitations of relational DB: values only in tuples • We need a more complex structure than a set of tuples as a data unit Impedance mismatch
  30. 30. Costumers Orders Martin Fowler Aggregate Model
  31. 31. Costumers Martin Fowler Aggregate Model
  32. 32. Questions vs Answers RDBMS MongoDB Data Storage Data Use Answers Questions Botton Up Top Down
  33. 33. Scalability
  34. 34. If I had asked people what they wanted, they would have said faster horses. Henry Ford. Scalability
  35. 35. • Escalabilidade para leituras num banco relacional: trabalhoso • Escalabilidade para escritas num banco relacional: MUITO, MUITO, trabalhoso • (se conseguir seu BD deixou de ser relacional...) Escalabilidade vertical
  36. 36. Escalabilidade vertical
  37. 37. Escalabilidade horizontal
  38. 38. Escalabilidade horizontal
  39. 39. “Eventual” pt-br: pode não ocorrer “Eventual” inglês: irá ocorrer em breve Eventually Consistent
  40. 40. Eventually Consistent Offline ATM have Eventually Consistent transactions
  41. 41. Teorema CAP Partition Availability Consistency
  42. 42. NoSQL vale a pena
  43. 43. • Bigtable: A distributed storage system for structured data, 2006 • Dynamo: Amazon’s highly available key-value store, 2007 Dois artigos famosos
  44. 44. Apache Hadoop
  45. 45. Not Only SQL
  46. 46. Specialized Databases No “one size fits for all” DB
  47. 47. • Open Source • Document (JSON) • Distributed • Rich Query Language • Great Community • Full Text Search MongoDB
  48. 48. • Schema Design • Full Featured Indexes • Aggregation Framework • Replication and Sharding MongoDB
  49. 49. Terminology RDBMS MongoDB Database Database Table Collection Row Document Index Index Join Embedded Doc Foreign Key Reference By 10gen
  50. 50. Dynamic and Flexible
  51. 51. MongoDB Funcionalidade Performance memcached relational mongodb
  52. 52. MongoDB By MongoLab
  53. 53. MongoDB By MongoLab
  54. 54. Easy Taxi Case Demos Obs.: link para seguir a oficina completa que dei no FISL
  55. 55. MongoDB for BI • Analytics are now popular among proprietary vendors • SAP Sybase columnar In- Memory • Oracle columnar In-Memory • Why columnar for analytics? • There is a advantage?
  56. 56. • 3 years ago • Benchmark LucidDB x MySQL for Business Intelligence applications • LucidDB: columnar NoSQL for BI • Analytic applications: – Read only – Massive aggregations – Denormalization LucidDB columnar example
  57. 57. • Which movie genres generate the most revenue? (Q1) • How is our revenue evolving over time? (Q2) • At which time of day do costumers place the most orders? (Q3) • How effective are the promotions we launch? (Q4) Queries
  58. 58. 0 5000 10000 15000 20000 25000 30000 35000 Q1 Q2 Q3 Q4 LucidDB MySQL Average time (ms)
  59. 59. (Timo Elliott, SAP) Relational DB (row full scan)
  60. 60. (Timo Elliott, SAP) Columnar DB
  61. 61. MongoDB for BI • Is possible to MongoDB create indexes in any attribute • Sharding Fact Table and duplicating Dimensions across replicas • Perhaps there is no memory for all attribute indexes you need…
  62. 62. https://education.mongodb.com/
  63. 63. Material para aprofundamento
  64. 64. Schema Design (Emily Stolfo) http://www.mongodb.com/presentations/schema-design-3
  65. 65. Material para aprofundamento
  66. 66. Bigliografia
  67. 67. Bigliografia
  68. 68. Bigliografia Google IO 2012 - SQL vs NoSQL Battle of the Backends
  69. 69. Perguntas? fmasanori@gmail.com facebook.com/fmasanori twitter.com/fmasanori

×