March 04, 2016
Score 7 out of 10
MonetDB is used for storing relational or star schema based data in our organization. For the engineering team, it has been a high performance data warehouse option for loading data from Hadoop or Postgres and then running ad-hoc queries to validate results. We have also used it to generate summary reports for our executives and as a backend database to support REST API calls. Being a columnar based database, it returns results in sub-second range and therefore, we tend to run one-off queries involving relational joins of big tables. If you want to experiment with a columnar database or compare with other similar tools such as Redshift, this would be a perfect open source database to do so. In fact, being open source you can download and view the source code anytime.
- It performs very well with both a simple and complex query with multiple join operations.
- It offers more advanced, enterprise level features such as clustering, data partitioning, and distributed query processing.
- Loading bulk data is quite fast by taking advantage of multiple cores/CPUs.
- This is an open source software so there are obvious drawbacks, the biggest of which is a lack of documentation.
- MonetDB does not seem to be well known outside of the academic environment so there is less information when you are searching for answers of any type.
- I'd like to see more use cases and/or best practices so that commercial companies like ours can optimally use all of its highly performant features.
- The code is written in C/C++ and this can be negative if you are a mainly java-shop and need UDF - User Defined Function.
Read Timothy Suh 서의선's full review
MonetDB is great when you are performing adhoc queries on a large set of data. For example, if you store data in a typical RDBMS such as MySQL or Postgres and want to join large tables for analytics but the query runs unacceptably slow then MonetDB can act as a second database to offload complex queries. Based on my experience, it may not be a production-ready database since there aren't many DBAs familiar with it and due to lack of documentation, maintenance can become a little tricky.