dash icon indicating copy to clipboard operation
dash copied to clipboard

[Feature Request] Plotly Dash & Cube.js: A match made in heaven!

Open philippefutureboy opened this issue 4 years ago • 1 comments

Hey lovely Plotly team!

I'm reaching out through the Plot.ly/Dash repo because I think there's a marvelous synergy that could arise between the Plotly/Dash & Cube.js projects and I could use some of your help to make that synergy happen :)

My understanding of Dash is that it is an amazing tool to streamline the data scientists' work and help them communicate their results straight from Python at a fraction of the cost. It's a data scientist one man army of sorts! 💪 🥇

What if you could get two armies for the price of one? I think Cube.js x Dash could be the key to get exactly that.

Cube.js is an open source analytical API platform dedicated to help data analysts and data scientists build business intelligence viz & tools faster. More precisely Cube.js is the layer that sits between the consumer/ui and the big data platform, such as BigQuery, Athena, RedShift, Snowflakes & friends. In their own words:

If you are building your own business intelligence tool or customer-facing analytics most probably you'll face the following problems:

Performance. Most of effort time in modern analytics software development is spent to provide adequate time to insight. In the world where every company data is a big data writing just SQL query to get insight isn't enough anymore. SQL code organization. Modelling even a dozen of metrics with a dozen of dimensions using pure SQL queries sooner or later becomes a maintenance nightmare which ends up in building modelling framework. Infrastructure. Key components every production-ready analytics solution requires: analytic SQL generation, query results caching and execution orchestration, data pre-aggregation, security, API for query results fetch, and visualization.

Cube.js has necessary infrastructure for every analytic application that heavily relies on its caching and pre-aggregation layer to provide several minutes raw data to insight delay and sub second API response times on a trillion of data points scale.

So long story short:

Extraction -> Load -> Transform -> Cube.js -> Dash -> Customer

Their official channels:

Official website: https://cube.dev/ Cube.js on Github: https://github.com/cube-js/cube.js

If you think that there is a synergy to be had here, I would like to ask you for your help. The first step to get these two gems to interact is to allow Cube.js to be supported in Python environments. For this, we need to build a python client. That's where I'd like to enlist your help: While I am willing to implement the python client myself, I am only a fledging pythonista, and I need your help, your experience to help me design an API for the client that is pythonic to the core 👌 🐍

The Github issue for the client implementation is here:

https://github.com/cube-js/cube.js/issues/1744

I'd love to hear what you have to say!

Have a great day! Cheers, Philippe @philippefutureboy

philippefutureboy avatar Mar 14 '21 19:03 philippefutureboy

It should be already supported through SQL API https://cube.dev/docs/backend/sql#sql-api.

paveltiunov avatar Jul 29 '22 01:07 paveltiunov