<font color="#000000"><font size="4"><font face="arial,helvetica,sans-serif">Hi Neil,</font></font></font><div><font color="#000000"><font size="4"><font face="arial,helvetica,sans-serif"><br></font></font></font></div><div>

<font color="#000000"><font size="4"><font face="arial,helvetica,sans-serif">MongoDB works well for timeseries data (your use case feels like it). Your aggregate re-builds can be map reduce jobs. Having some pre-defined aggregate collections for most common queries will help *a lot*.</font></font></font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif" size="4"><br></font><div><div><font color="#000000"><font size="4"><font face="arial,helvetica,sans-serif">This might help with ideas: <a href="http://www.slideshare.net/sky_jackson/time-series-data-storage-in-mongodb">http://www.slideshare.net/sky_jackson/time-series-data-storage-in-mongodb</a></font></font></font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif" size="4">If you want redis, try <a href="https://github.com/antirez/redis-timeseries">https://github.com/antirez/redis-timeseries</a>.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif" size="4"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif" size="4">Worth a look if you're considering MySQL +</font><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: large; "> redis: <a href="http://vimeo.com/26626837">http://vimeo.com/26626837</a></span></div>

<div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: large; "><br></span></div><div><span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: large; ">Gerhard</span></div>

<div><div><font class="Apple-style-span" color="#999999" face="arial, helvetica, sans-serif"><br></font></div><br><div class="gmail_quote">On Fri, Sep 23, 2011 at 11:37 AM, Neil Middleton <span dir="ltr"><<a href="mailto:neil.middleton@gmail.com">neil.middleton@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I'm building an app that needs to store a fair amount of events that the users carry out. (Think LOTS as in millions per month).<br>


<br>
I need to report on the these events (total of type x in the last month, etc) and need something resilient and fast.<br>
<br>
I've toyed with Redis etc to store aggregates of the data, but this could just mean that I'm building up a massive store of single figure aggregates that aren't rebuildable.<br>
<br>
Whilst this isn't a bad solution, I'm looking at storing the raw event data in tables that I can then query on a needs basis, and potentially generate aggregate counters on a periodic basis. This would thus give me the ability to add counters over time, and also carry out ad-hoc inspections on what is going on, something which aggregates don't allow.<br>


<br>
Question is, how is best to do this? I obviously don't want to have to create a model for each table (which is what Rails would prefer), so do I just create the tables and interact with raw SQL on a needs basis, or is there some other choice for dealing with this sort of data?<br>


<br>
It would be interesting to know what thoughts you guys have.<br>
<br>
Cheers<br>
<br>
Neil<br>
<br>
_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
<a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</blockquote></div><br></div></div></div>