And while there are several vendors offering solutions in this area, I decided to give it a try myself and started creating a suite of Polymer elements.
Step 1 - Setting up MSSAS for HTTP accessThe necessary process is well documented. Essentially you use a provided DLL to setup IIS to access your cubes, and can then send MDX queries via a simple URL.
A typical XMLA request with a MDX query looks like this.
Step 3 - Simplify the JSONThe JSON you will get is a rather ugly, deeply nested construct, so to be able to use it more easily, e.g. in
dom-repeat, it's best to simplify the JSON. Ideally you would do this already in the backend but while I'm trying to find the best format for my purposes I created a
scary-mdx-datahelper element that takes the raw JSON and transforms it into a set of arrays for row headers, rows, col headers, cols and cells. You can have a look at the scary-mdx-data demo to get an idea of what the final data looks like.
Step 4 - Display the DataFor actually displaying the data I started with the
scary-mdx-tableelement with some basic drill-down functionality. The element also fires events when elements are selected which you can use for dynamic changes in the dashboard. E.g. in the scary-mdx-table demo I update two google-chart elements depending on which cell/row is selected in the table.
You could also use the events to query for additional data and splice in the results in the rows array, to prevent loading all the data at once.
Going forward / DisclaimerThe elements are still very much pre-alpha at this moment and the direction I will be taking with them, and what further elements I will develop, will very much depend on the business needs I will have to solve.
For now this is mostly a proof-of-concept to see what is possible in this area outside of available products you would have to pay for.