Overall Satisfaction with MonetDB
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.
- If you are familiar with a general database concept and played with open source products before then MonetDB will give you immediate return in terms of productivity since developers can quickly develop and verify their test cases involving back-end database with a large sample data set.
- There is a stiff learning curve due to lack of documentation and sparse information available on the internet.
- Overall experience has been positive since MonetDB gives you another option when it comes to building out a data warehouse.
There is a plethora of choices when it comes to NoSQL and columnar based databases. We use not one but sometimes 2 or 3 of them to carry out a specific purpose. We chose MonetDB because our engineering team enjoys working with open source software and appreciates its simplicity although becoming familiar with it did take time. I would not deploy MonetDB to production but it's a great backup option.
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.