pepe legal python e babalu mongodb, uma dupla dinâmica

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

Post on 25-May-2015

1.631 views

Category:

Education

0 download

Embed Size (px)

DESCRIPTION

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.

TRANSCRIPT

  • 1. Pepe Legal Python e Babalu MongoDB http://about.me/fmasanori

2. Agenda Why this title? NoSQL Flexible Schema Horizontal Scalability MongoDB Some demos BI special case References 3. Why this title? Desenho fez sucesso no incio dos anos 60 Mesma poca em que SQL teve incio Palestra para old developers (or not so old) 4. Como comecei com NoSQL 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. VENDAS CLIENTE TEMPO PRODUTO LOJAPROMOO (Luiz H. N. Lorena, 2011) Star Schema 7. (Kimball, 2002) Denormalizing 8. (Kimball, 2002) Denormalizing 9. Operacional Analtico Propsito Executar um processo Avaliar um processo Estilo interao Insert, update, delete, query Query (read-only) Escopo interao Transao individual Agregao Padro query Previsvel e estvel Imprevisvel Foco temporal Atual Histrico e atual Otimizao Update concorrente Query (agregao) Projeto ER na 3FN Star Schema ou Cubo (Adamson, 2010) Operational x Analytics 10. JSON persistence 11. Casdinho 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 NO ! 13. Sentiment Analysis (Twitter) Obs.: no o mesmo registro... 14. Sentiment Analysis (Facebook) Sabe o que ter vontade de acordar cedo no domingo para estudar?!? Bom, eu tambm no sei explicar, mas o que estou sentindo no momento .-. Bora Casdinho! 15. Sentiment Analysis (Facebook) Obs.: no o mesmo registro... 16. Campos opcionais https://gist.github.com/4667205 Campo opcional no Facebook 17. Social Data changes fast 18. Snowflakes like documents Snowflakes represent documents, since every document is beautiful and unique. MongoDB, The Definitive Guide. 19. Non Relational Non Relational JSON DataBase Dev like data 20. JSON persistence MongoDB CouchDB RethinkDB PostgreSQL (SQL?) 21. Como persistir dados sem normalizar, sem um BD relacional? Somos formatados a pensar no modelo relacional One size fits all NoSQL ? 22. One Size Fits All 23. Its better to think of NoSQL as a movement rather than a technology Martin Fowler NoSQL 24. Dynamic Schema O que as empresas esperam de um NoSQL? 25. Flexible Schema O que as empresas esperam de um NoSQL? 26. Flexible Schema Flexible Schema Dev Productivity 27. Relational DB 28. Martin Fowler Relational DB 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. Costumers Orders Martin Fowler Aggregate Model 31. Costumers Martin Fowler Aggregate Model 32. Questions vs Answers RDBMS MongoDB Data Storage Data Use Answers Questions Botton Up Top Down 33. Scalability 34. If I had asked people what they wanted, they would have said faster horses. Henry Ford. Scalability 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. Escalabilidade vertical 37. Escalabilidade horizontal 38. Escalabilidade horizontal 39. Eventual pt-br: pode no ocorrer Eventual ingls: ir ocorrer em breve Eventually Consistent 40. Eventually Consistent Offline ATM have Eventually Consistent transactions 41. Teorema CAP Partition Availability Consistency 42. NoSQL vale a pena 43. Bigtable: A distributed storage system for structured data, 2006 Dynamo: Amazons highly available key-value store, 2007 Dois artigos famosos 44. Apache Hadoop 45. Not Only SQL 46. Specialized Databases No one size fits for all DB 47. Open Source Document (JSON) Distributed Rich Query Language Great Community Full Text Search MongoDB 48. Schema Design Full Featured Indexes Aggregation Framework Replication and Sharding MongoDB 49. Terminology RDBMS MongoDB Database Database Table Collection Row Document Index Index Join Embedded Doc Foreign Key Reference By 10gen 50. Dynamic and Flexible 51. MongoDB Funcionalidade Performance memcached relational mongodb 52. MongoDB By MongoLab 53. MongoDB By MongoLab 54. Easy Taxi Case Demos Obs.: link para seguir a oficina completa que dei no FISL 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. 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. 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. 0 5000 10000 15000 20000 25000 30000 35000 Q1 Q2 Q3 Q4 LucidDB MySQL Average time (ms) 59. (Timo Elliott, SAP) Relational DB (row full scan) 60. (Timo Elliott, SAP) Columnar DB 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. https://education.mongodb.com/ 63. Material para aprofundamento 64. Schema Design (Emily Stolfo) http://www.mongodb.com/presentations/schema-design-3 65. Material para aprofundamento 66. Bigliografia 67. Bigliografia 68. Bigliografia Google IO 2012 - SQL vs NoSQL Battle of the Backends 69. Perguntas? fmasanori@gmail.com facebook.com/fmasanori twitter.com/fmasanori