Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: Interactive Dashboards #375

Closed
philippfrenzel opened this issue Apr 19, 2016 · 6 comments
Closed

Enhancement: Interactive Dashboards #375

philippfrenzel opened this issue Apr 19, 2016 · 6 comments

Comments

@philippfrenzel
Copy link

Hi,
pls. have a look at:

http://adilmoujahid.com/posts/2015/01/interactive-data-visualization-d3-dc-python-mongodb/

In this post you can see how the author added:

  1. added CrossFilter - http://square.github.io/crossfilter/ to enable data selections
  2. integrated dc.js

It would be great to have a filtering like this within caravel! ;)

Best Philipp

@mistercrunch
Copy link
Member

I like cross-filtering just as much as the next guy, but it was a conscious not to bring a large dataset back to the browser. For this kind of interactivity to be possible you need an indexed dataset with all dimensions/metrics in the browser. As users bring in more metrics and dimensions that dataset can get quite out of hand, forcing complex abstractions like having multiple datasets on the the client side that can be partly linked on shared dimensions. But all that becomes quite very tricky extremely quickly, so we decided to steer away from it.

With our simple approach, it's easy to cache very small snippets of data for each widget and puts most of the workload on the server side when things aren't cached.

We could support an individual crossfilter widget that could be multi-chart pretty easily, but the backend of the dashboard will most likely stay as it is, with the different widgets being loosely coupled (through the dashboard controller) and individually making calls to the backend.

@philippfrenzel
Copy link
Author

Hi,

I totally understand your concern. What I normally do for building a performant datastructure is to union all metrics tables and then link the dimensions in a simple 1 connection star model. So I love your sense of not blowing up the analysis on the other side some analyic functions would rock!

So maybe a compromise would be to enable the cross-filtering for one data view and then check which slices are linked to the same datasource and then apply the filter to the same? And maybe a sign within the chart showing that a filter got applied to the view..?

Qlik Sense does it like this...

Best Philipp

@mistercrunch
Copy link
Member

Notice: this issue has been closed because it has been inactive for 733 days. Feel free to comment and request for this issue to be reopened.

@pikhovkin
Copy link

Reopen, please! Very useful thing!

@mistercrunch
Copy link
Member

We're not planning on enabling any type of crossfiltering (client side dynamic filtering) support to the dashboard controller for the reasons cited above.

@srimalj
Copy link

srimalj commented Jan 10, 2019

I like cross-filtering just as much as the next guy, but it was a conscious not to bring a large dataset back to the browser. For this kind of interactivity to be possible you need an indexed dataset with all dimensions/metrics in the browser. As users bring in more metrics and dimensions that dataset can get quite out of hand, forcing complex abstractions like having multiple datasets on the the client side that can be partly linked on shared dimensions. But all that becomes quite very tricky extremely quickly, so we decided to steer away from ...

hmm.. I totally agree with the performance issue.

But sometimes our datasets are not so large but crossfiltering is a very useful feature to analyse the data.

If we could just have a setting to turn it on when required, that would be awesome ! :)

zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 17, 2021
* feat(legacy-plugin-chart-rose): migrate package and lint

* feat(legacy-plugin-chart-sankey): migrate

* feat(legacy-plugin-chart-sankey-loop): migrate

* feat(legacy-plugin-chart-sunburst): migrate and lint

* feat(legacy-plugin-chart-treemap): migrate

* feat(legacy-plugin-chart-world-map): migrate

* docs: update storybooks

* feat(legacy-plugin-chart-force-directed): migrate and lint

* feat(legacy-plugin-chart-map-box): migrate and lint

* feat(legacy-plugin-chart-histogram): migrate and lint

* docs: update storybooks
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 24, 2021
* feat(legacy-plugin-chart-rose): migrate package and lint

* feat(legacy-plugin-chart-sankey): migrate

* feat(legacy-plugin-chart-sankey-loop): migrate

* feat(legacy-plugin-chart-sunburst): migrate and lint

* feat(legacy-plugin-chart-treemap): migrate

* feat(legacy-plugin-chart-world-map): migrate

* docs: update storybooks

* feat(legacy-plugin-chart-force-directed): migrate and lint

* feat(legacy-plugin-chart-map-box): migrate and lint

* feat(legacy-plugin-chart-histogram): migrate and lint

* docs: update storybooks
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 25, 2021
* feat(legacy-plugin-chart-rose): migrate package and lint

* feat(legacy-plugin-chart-sankey): migrate

* feat(legacy-plugin-chart-sankey-loop): migrate

* feat(legacy-plugin-chart-sunburst): migrate and lint

* feat(legacy-plugin-chart-treemap): migrate

* feat(legacy-plugin-chart-world-map): migrate

* docs: update storybooks

* feat(legacy-plugin-chart-force-directed): migrate and lint

* feat(legacy-plugin-chart-map-box): migrate and lint

* feat(legacy-plugin-chart-histogram): migrate and lint

* docs: update storybooks
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 26, 2021
* feat(legacy-plugin-chart-rose): migrate package and lint

* feat(legacy-plugin-chart-sankey): migrate

* feat(legacy-plugin-chart-sankey-loop): migrate

* feat(legacy-plugin-chart-sunburst): migrate and lint

* feat(legacy-plugin-chart-treemap): migrate

* feat(legacy-plugin-chart-world-map): migrate

* docs: update storybooks

* feat(legacy-plugin-chart-force-directed): migrate and lint

* feat(legacy-plugin-chart-map-box): migrate and lint

* feat(legacy-plugin-chart-histogram): migrate and lint

* docs: update storybooks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants