Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do reporting with MongoDB?

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?

like image 834
mpen Avatar asked Jan 11 '13 16:01

mpen


People also ask

Which database is best for reporting?

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.

How can you use MongoDB for Business Intelligence?

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.

Are MongoDB charts free?

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.


Video Answer


2 Answers

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:

  • JSON Studio. This is a commercial solution that lets you visually build aggregation pipelines and connect them to charts.
  • SlamData. This is an open source solution that lets you run SQL queries directly on MongoDB (including JOINs, GROUP BY, HAVING, etc), through the GUI interface or an API. The current version of the project has data visualization baked in, and allows you to create and embed reporting dash boards into MongoDB applications.

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.

like image 166
John A. De Goes Avatar answered Sep 24 '22 13:09

John A. De Goes


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

like image 39
Miguel Garcia Avatar answered Sep 23 '22 13:09

Miguel Garcia