Real time analytics - MongoDB - nosqlbr

1,081
-1

Published on

Lightning talk no nosqlbr com um sistema simples para armazenar métricas de acesso web.

Demo em http://github.com/victorcampos/nosqlbr_lightning

Twitter: @victorcampos
Blog: http://victorcampos.blog.br

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

  • Be the first to like this

No Downloads
Views
Total Views
1,081
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Real time analytics - MongoDB - nosqlbr

  1. 1. Real-time web analytics com MongoDB Victor Augusto de Campos - Outubro/2011 @victorcamposTuesday, 25 October 2011
  2. 2. IntroduçãoTuesday, 25 October 2011
  3. 3. Por que o MongoDB? Upserts rápidos, flexibilidade de documentosTuesday, 25 October 2011
  4. 4. Conceito Um documento por item, dia e hora, contendo um mapa de ações e seus totais Totalização feita com mapreduceTuesday, 25 October 2011
  5. 5. Estrutura do documento duh. { “id” : identificador do item, “date” : data ISO (yyyy-mm-dd), granularidade “hour” : hora (0-23), “actions” : { “access” : 1, “clicks” : 2, “show” : 1, etc, etc. }} a mágica de um document databaseTuesday, 25 October 2011
  6. 6. Índices índice simples para busca de um item { “id” : ASC } índice composto para busca de um range de data { “id” : ASC, “date” : DESC, “hour” : DESC }Tuesday, 25 October 2011
  7. 7. Map Reduce map reduce function() { function(k, vals) { for(i in this.actions) { total = {}; var action = {}; for (i in vals) { action[i] = this.actions[i]; for (action_type in vals[i]) { emit(this.date, action); if(!total[action_type]) { } total[action_type] = 0; } } total[action_type] += vals[i][action_type]; } } return total; }Tuesday, 25 October 2011
  8. 8. Um pequeno demoTuesday, 25 October 2011
  9. 9. O código está disponível em github.com/victorcampos/nosqlbr_lightningTuesday, 25 October 2011

×