Monday, May 23, 2011

The problem with columnar databases

Columnar databases are an interesting idea. They're databases where the major data storage structure is a column, not a row (as is the case in the vast majority of relational database engines). A "row" in a "table" in a columnar database is materialized from the columns using join-like associations.

Columnar databases offer lots of interesting storage possibilities, such as native bitmap storage, that aren't easily doable with row-major storage, in which rows are stored contiguously on storage pages.

The problem for schema design with columnar databases is that you often want to qualify the column with a couple of other data elements from the table, such as a date.

Another, more practical problem is that few people know enough about columnar databases to design schemas that leverage their capabilities well.

No comments: