Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cubes – Ways of Deployment

Cubes – Ways of Deployment

Different ways of deploying Cubes - Lightweight Python OLAP frameworks.

Stefan Urbanek

February 04, 2014
Tweet

More Decks by Stefan Urbanek

Other Decks in Technology

Transcript

  1. Simple Slicer Public store Slicer server HTML & JS Application

    HTTP request JSON reply model Run Slicer server Provide desired output 1 3 2 Query server from JavaScript GET /cubes ! GET /cube/{CUBE}/model ! GET /cube/{CUBE}/aggregate?… > slicer serve slicer.ini
  2. WSGI Slicer Public store WSGI HTML & JS Application HTTP

    request JSON reply Slicer Flask App model Same usage as stand-alone Slicer server
  3. Slicer as a Service Internal Public store Slicer server Web

    Application PHP, RoR, Django HTTP request JSON reply model HTML GET /cube/{CUBE}/aggregate?… Run a Slicer server instance Provide desired output 1 3 4 Query with HTTP requests 2 Get the model using HTTP GET /cubes ! GET /cube/{CUBE}/model
  4. Python Application from cubes import Workspace ! workspace = Workspace(“slicer.ini”)

    browser = workspace.browser(…) result = browser.aggregate(…) Public store JSON reply Cubes Python API Django, Flask, … HTML model Python Web App handles the request Python Web App provides output 1 2 3 Application uses the Cubes directly:
  5. Flask Blueprint* * http://flask.pocoo.org/docs/blueprints/ Public store Flask HTML Slicer Blueprint

    model from flask import Flask from cubes.server import slicer ! app = Flask(__name__) ! app.register_blueprint(slicer, url_prefix=“/slicer", config="slicer.ini") Register Slicer as part of Flask app Provide Slicer API as additional
 “raw analytical data” API do whatever you want in Flask 1 2
  6. Slicer server (stand-alone) HTTP JSON Flask Slicer Blueprint HTTP JSON

    Python App ? ? Cubes Python API WSGI + Slicer server HTTP JSON separate integrated