1 of 6

Dashboarding with Vega-Lite and Mondrian

Vega / Vega-Lite / Altair Seattle Meetup - May 2, 2018

Scott Came

Principal

Cascadia Analytics LLC

2 of 6

Big Picture

Mondrian OLAP Library/Schema

SAML Security

CSV

Loading Process

Relational

Database

Dashboard web application

Java EE

jQuery

Bootstrap

Saiku BI Community

Visualization

Definitions

Vega / Vega-Lite

Requirements:

​

  • Open Source
  • Extensible
  • Cloud deployment (AWS)
  • Ingest data from CSV
  • Simple/intuitive dashboard UI
  • “Power user” query UI

Dragula.js

Spring Boot

OJBC mondrian-rest

3 of 6

Demo

docker run -d --name dashcard -p 58081:80 scottcame/dashcard

4 of 6

Code Walk Through

5 of 6

A Challenge

  • mondrian-rest serves up OLAP results in JSON that Vega-Lite expects ( { values: [] } )

​

  • However, in the real world (i.e., sufficiently complex queries), manipulation is required before setting the data property on the Vega-Lite specification

​

  • Example: benchmarking (comparing measures in the leaves to the same measure at a rollup level)

​

  • Idea: a Javascript library for manipulation (what R folks call “tidying”) of the values “data frame”. Example functions could include:

​

  • mutate(newvar=f(currentVar))
  • join(values1, values2, by=[by1, by2, ...])
  • gather(keyColumn, valueColumn, gatherColumns=[c1, c2, …])
  • spread(keyColumn, valueColumn)

​

  • Thoughts? Does a library exist to do this already?

6 of 6

Resources

Me:

Source code on GitHub:

Mondrian:

mondrian-rest:

Dragula: