« Sponsored Post: Klout, Apple, NuoDB, ScaleOut, FreeAgent, CloudStats.me, Intechnica, MongoDB, Stackdriver, BlueStripe, Booking, AiCache, Aerospike, New Relic, LogicMonitor, AppDynamics, ManageEngine, Site24x7 | Main | Stuff The Internet Says On Scalability For November 8th, 2013 »

Ask HS: What is a good OLAP database choice with node.js?

This question was asked over email and I thought a larger audience might want to take a whack at it.

With a business associate, I am trying to develop a financial software that handles financial reports of listed companies. We managed to create this database with all the data necessary to do financial analysis. My associate is a Business Intelligence specialist so he is keen to use OLAPs databases like Microsoft Analysis Services or Jedox Palo, which enables in-memory calculations and very fast aggregation, slicing and dicing of data or write-backs.

At the same time I did an online course (MOOC) from Stanford CS184 called Startup Engineering which promoted/talked a lot about javascript and especially node.js as the language of the future for servers.

As I am keen to use open-source technologies (would be keen to avoid MS SSAS) for the development of a website to access this financial data , and there are so many choices for databases out there (Postgre, MongoDB, MySQL etc..but don't think they have OLAP features), do you know of resources, blogs, people knowledgeable on the matter, which talk about combination of node.js with OLAP databases? best use of a particular system with node.js?

Thanks for your input.

Reader Comments (5)

Node.js is generally used as a language on web servers, to power front ends and RESTful web services. Choosing an OLAP stack is orthogonal to the choice for your front/middle tier. You will probably have an OLTP database system (either an RDBMS or a NoSQL option) serving the code you write in Node.js, and then the data will be extracted out to a separate OLAP system for analysis. If you want to stick to 100% Javascript, MongoDB might be a good choice, since it can be used for OLAP and OLTP (although I'm not sure how it performs with enormous data sets).

November 11, 2013 | Unregistered CommenterEric Z. Beard

In my exploration of Discovering Big Data with Open Source I found Pentaho's Mondrian project to be a viable open source alternative to the proprietary offerings from Microsoft and Oracle. It is a ROLAP where MySql or Postgres can hold the star schema. You can use open source project Kettle for the ETL parts. Modrian is a servlet app written in Java which provides a web interface via jpivot. Mondrian is also an XMLA provider which is most probably the easiest ways to fire off MDX requests from Node.

November 11, 2013 | Unregistered CommenterGlenn


As a developer of the Saiku OLAP application(demo) I can confirm that the comment by Glenn is the course of action many of us have taken over the years.

Mondrian provides a layer on top of your RDBMS to provide OLAP analysis over a JDBC compliant database. I'd ignore NoSQL for now as it is going through a number of growing pains, including, how to get the data out in a performant manner. Your choice of backing data store could be a traditional RDBMS like Postgres or Mysql, or as your data grows you could look at Column store databases like Infobright or MonetDB.

Mondrian also supports inline aggregate tables which will speed up query speed as the data grows.

Depending on how you want to integrate your OLAP analysis you have a number of options, you could create your own MDX and fire it off directly against the Mondrian server, or you could use Olap4J which provides an API layer in the form of a JDBC driver to add additonal functionality.

There is also XMLA4JS https://github.com/rpbouman/xmla4js which is a nice layer written by roland to integrate into your product.

Lastly (and slightly self promotionally) you could of course embed either the Apache licensed Saiku Application into your application or use the REST based Saiku Server component to interact with Mondrian and provide OLAP servers and more over the wire.

Hope some of that helps.


November 11, 2013 | Unregistered CommenterTom Barber

Does the solution need to be open source? HP Vertica offers a community edition that will ingest up to a Terabyte of data for no license cost. You can then use JDBC to connect. It uses ANSI-SQL and comes with the option to create functions using R. The database is actually a Columnar store under the hood with a clever write and read buffer to help with performance. Just like MySQL or Postgres it will hold a Star Scheme. The difference being that it accesses data column at a time as opposed to row at a time which is an advantage for OLAP workloads. It's worth consideration for smaller OLAP implementations. If you go over the 1TB limit or you need high availability clustering (Vertica will scale out happilly with local storage and run distributed workloads) then Vertica Licenses come into play - which can appear expensive unless you need the performance and flexibility.

November 12, 2013 | Registered CommenterPhillip Bates

Hi Todd,

Not sure how much of the Jedox stack you've explored so far. One of the key components of Jedox is OLAP server which is easily talked to (very well documented and easy to understand RESTful API). This component as well the accompanying ETL tool is OS (GPLv2). If you don't want to understand low level API you may check out client libraries which are also OS - LGPL. The whole project is hosted on sourceforge. Community is well organized. You can start with the Community Forum and continue with LinkedIn Jedox Professionals group.
For a kickoff you may want to evaluate the premium 30 day trial version (which can fallback to freemium after that, called Jedox Base). This setup includes the whole stack, including Excel Add-in, Web frontend with support for mobile devices with touch interface, etc. Everything runs both on Windows and Linux. Hope this helps.


November 12, 2013 | Unregistered CommenterVladislav Malicevic

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>