I'm considering MongoDB for my next big project, but I have a couple of concerns. In particular, how can I do reporting?
My understanding is that I can't do the same kinds of joins and aggregation I would normally do in a relational database. The reporting I had in mind involves aggregating a lot of data from different "tables" with strict criteria.
Is this easily doable in MongoDB, or is it going to be a big headache?
Oracle, DB2, Microsoft SQL Server, Microsoft Access, MySQL are the popular relational database nowadays. They are easy to use and maintain. Database reporting tools rely on connections to a relational database management system via JDBC, JNDI or ODBC.
The MongoDB BI Connector lets you use MongoDB as a data source for your BI and analytics platforms. Seamlessly create the visualizations and dashboards that will help you extract the insights and hidden value in your multi-structured data.
MongoDB provides each Charts instance with a free 1 GB of data transfers per month. You can view your Charts instance's monthly data usage in the Data Usage page. The free usage tier provides approximately 500,000 chart renders over a month.
While Pentaho and Jaspersoft and other legacy reporting solutions have ways to pump data out of MongoDB, there are two newer solutions designed explicitly for analytics and reporting on MongoDB data:
Because both of these run on top of MongoDB (versus the other approach, i.e. pumping the data out and normalizing it for reporting in Mondrian or something), they are much easier and more natural for MongoDB reporting. The flip side is that because the data is not loaded into all-memory cubes (for example), the reporting experience can suffer if you try to do complicated report generation in real-time.
Disclaimer: I'm a contributor for the SlamData project, although I have no affiliation with JSON Studio.
It seems that the open source tools like JasperReports and Pentaho can connect to MongoDB, also if you want to jump to the NoSQL ship but without jumping to the NoSQL ship, you may use an ODBC or OLE DB driver like Simba's one, and then use any normal SQL reporting tool like DBxtra
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With