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.