Pepe Legal Python e
Babalu MongoDB
http://about.me/fmasanori
Agenda
• Why this title?
• NoSQL
• Flexible Schema
• Horizontal Scalability
• MongoDB
• Some demos
• BI special case
• Ref...
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...
Como comecei com NoSQL
• Na faculdade me ensinaram que
tudo deveria ser normalizado
• E que o mundo era SQL
• No entanto:
– Comecei a dar aulas d...
VENDAS
CLIENTE
TEMPO
PRODUTO
LOJAPROMOÇÃO
(Luiz H. N. Lorena, 2011)
Star Schema
(Kimball, 2002)
Denormalizing
(Kimball, 2002)
Denormalizing
Operacional Analítico
Propósito Executar um processo Avaliar um processo
Estilo interação Insert, update, delete, query Qu...
JSON persistence
Casdinho
Sentiment Analysis (Twitter)
menina: aaaaaaaaaaaaaa eu NAO GOSTO DELE
amiga: e vc ficará rica , e irá dividir sua riqueza ...
Sentiment Analysis (Twitter)
Obs.: não é o mesmo registro...
Sentiment Analysis (Facebook)
Sabe o que é ter vontade de acordar cedo no
domingo para estudar?!?
Bom, eu também não sei e...
Sentiment Analysis (Facebook)
Obs.: não é o mesmo registro...
Campos opcionais
https://gist.github.com/4667205
Campo
opcional no
Facebook
Social Data changes fast
Snowflakes like documents
“Snowflakes represent documents,
since every document is beautiful
and unique”.
MongoDB, The Def...
Non Relational
Non
Relational
JSON
DataBase
Dev like
data
JSON persistence
• MongoDB
• CouchDB
• RethinkDB
• PostgreSQL (SQL?)
• Como persistir dados sem
normalizar, sem um BD
relacional?
• Somos “formatados” a pensar no
modelo relacional
• “One siz...
One Size Fits All
“It’s better to think of
NoSQL as a
movement rather
than a technology”
Martin Fowler
NoSQL
Dynamic Schema
O que as empresas esperam de um
NoSQL?
Flexible Schema
O que as empresas esperam de um
NoSQL?
Flexible Schema
Flexible
Schema
Dev
Productivity
Relational DB
Martin Fowler
Relational DB
• The difference between the
relational model and the in-
memory data structures (Fowler)
• Limitations of relational DB: ...
Costumers
Orders
Martin Fowler
Aggregate
Model
Costumers
Martin Fowler
Aggregate
Model
Questions vs Answers
RDBMS MongoDB
Data Storage Data Use
Answers Questions
Botton Up Top Down
Scalability
If I had asked people
what they wanted, they
would have said faster
horses.
Henry Ford.
Scalability
• Escalabilidade para leituras num banco
relacional: trabalhoso
• Escalabilidade para escritas num banco
relacional: MUITO...
Escalabilidade vertical
Escalabilidade horizontal
Escalabilidade horizontal
“Eventual” pt-br: pode não ocorrer
“Eventual” inglês: irá ocorrer em breve
Eventually Consistent
Eventually Consistent
Offline ATM have Eventually
Consistent transactions
Teorema CAP
Partition
Availability
Consistency
NoSQL vale a pena
• Bigtable: A distributed storage
system for structured data, 2006
• Dynamo: Amazon’s highly available
key-value store, 20...
Apache Hadoop
Not Only SQL
Specialized Databases
No “one size fits for all” DB
• Open Source
• Document (JSON)
• Distributed
• Rich Query Language
• Great Community
• Full Text Search
MongoDB
• Schema Design
• Full Featured Indexes
• Aggregation Framework
• Replication and Sharding
MongoDB
Terminology
RDBMS MongoDB
Database Database
Table Collection
Row Document
Index Index
Join Embedded Doc
Foreign Key Refere...
Dynamic and Flexible
MongoDB
Funcionalidade
Performance
memcached
relational
mongodb
MongoDB
By MongoLab
MongoDB
By MongoLab
Easy Taxi Case
Demos
Obs.: link para seguir a oficina completa que dei no FISL
MongoDB for BI
• Analytics are now popular
among proprietary vendors
• SAP Sybase columnar In-
Memory
• Oracle columnar In...
• 3 years ago
• Benchmark LucidDB x MySQL for
Business Intelligence applications
• LucidDB: columnar NoSQL for BI
• Analyt...
• Which movie genres generate the most
revenue? (Q1)
• How is our revenue evolving over time?
(Q2)
• At which time of day ...
0
5000
10000
15000
20000
25000
30000
35000
Q1 Q2 Q3 Q4
LucidDB
MySQL
Average time (ms)
(Timo Elliott, SAP)
Relational DB (row full scan)
(Timo Elliott, SAP)
Columnar DB
MongoDB for BI
• Is possible to MongoDB create
indexes in any attribute
• Sharding Fact Table and
duplicating Dimensions a...
https://education.mongodb.com/
Material para aprofundamento
Schema Design (Emily Stolfo)
http://www.mongodb.com/presentations/schema-design-3
Material para aprofundamento
Bigliografia
Bigliografia
Bigliografia
Google IO 2012 - SQL vs NoSQL
Battle of the Backends
Perguntas?
fmasanori@gmail.com
facebook.com/fmasanori
twitter.com/fmasanori
Upcoming SlideShare
Loading in...5
×

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

1,751

Published on

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.

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,751
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
48
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×