Database suggestions for time series of events Database suggestions for time series of events database database

Database suggestions for time series of events


Using tables with thousands of columns is madness. Especially when most of them are zero as you said.

You should first look into converting your data-structure from this:

table_1-------event_idattribute_1attribute_2[...]attribute_5000

into something like this:

table_1          event_values             attributes--------         ------------             ----------event_id         event_id                 attribute_id                 attribute_id             attribute_type                 attribute_value

which can be used with any RDMS (your only constraint then would be the total database size and performance)


It is probably very late for an answer, but here is what I do.

I use HDF5 as my time series repository. It has a number of effective and fast compression styles which can be mixed and matched. It can be used with a number of different programming languages. It is available on Windows as well as Linux.

I use boost::date_time for the timestamp field. This allows a large variety of datetime based computations.

In the financial realm, I then create specific data structures for each of bars, ticks, trades, quotes, ...

I created a number of custom iterators and used standard template library algorithms to be able to efficiently search for specific values or ranges of time-based records. The selections can then be loaded into memory.