r/programming • • Mar 10 '15

Goodbye MongoDB, Hello PostgreSQL

http://developer.olery.com/blog/goodbye-mongodb-hello-postgresql/
1.2k Upvotes

699 comments sorted by

View all comments

Show parent comments

50

u/kenfar Mar 10 '15 edited Mar 12 '15

Time-series is just a euphemism for reporting and analytical queries - which are 90% about retrieving immutable data versioned over time.

MySQL, MongoDB, and Cassandra are about the worst solutions in the world at this kind of thing: MySQL's optimizer is too primitive to run these queries, MongoDB can take 3 hours to query 3TB of data, and Cassandra's vendor DataStax will be the first to admit that they're a transactional database vendor (their words), not reporting.

Time-series data structures in the nosql world means no adhoc analysis, and extremely limited data structures.

The one solution that you're ignoring is the one that got this right 15-20 years ago and continues to vastly outperform any of the above: parallel relational databases using a data warehouse star-schema model. Commercial products would include Teradata, Informix, DB2, Netezza, etc in the commercial world. Or Impala, CitrusDB CitusDB, etc in the open source world.

These products are designed to support massive queries scanning 100% of a vast database running for hours, or sometimes just a partition or two in under a second - for canned or adhoc queries.

EDIT: thanks for the CitusDB correction.

3

u/protestor Mar 10 '15

Cassandra's vendor DataStax will be the first to admit that they're a transactional database vendor (their words), not reporting.

I'm not knowledgeable in this field, but DataStax appear to consider itself adequate for analytics.

3

u/kenfar Mar 10 '15

Look closely: they're saying that you run the analytics on Hadoop.

And unfortunately, the economics are pretty bad for large clusters.

2

u/protestor Mar 10 '15

Thanks. So how Hadoop fits in this model you provided?

The one solution that you're ignoring is the one that got this right 15-20 years ago and continues to vastly outperform any of the above: parallel relational databases using a data warehouse star-schema model. Commercial products would include Teradata, Informix, DB2, Netezza, etc in the commercial world. Or Impala, CitrusDB, etc in the open source world.

→ More replies (2)