How to store wide tables in pytables / hdf5
IMHO it depends on what do you want to do with the data afterwards and how much of it do you need at one time. I had to build a program for statistical validation a while ago and we had two approaches:

Split the columns in separate tables (e.g. using a FK). The overhead of loading them is not too high
Transpose the table, resulting in something like a key-value store, where the key is a tuple of (column, row)

For both we used postgres.
I have data coming from a csv which has a few thousand columns and ten thousand (or so) rows. Within each column the data is of the same type, but different columns have data of different type*. Previously I have been pickling the data from numpy and storing on disk, but it's quite slow, especially because usually I want to load some subset of the columns rather than all of them.
I want to put the data into hdf5 using pytables, and my first approach was to put the data in a single table, with one hdf5 column per csv column. Unfortunately this didn't work, I assume because of the 512 (soft) column limit.
What is a sensible way to store this data?
* I mean, the type of the data after it has been converted from text.