[Feature Idea] Playground CSV Data Export, Column Builder, and Drag to Reorder

I’ve found myself working with the Playground/QueryBuilder in interactive scenarios/quick & dirty data exploration recently, including the attached screenshot which I’ve provided as an example (my wife is an academic, and needs some self-service data infrastructure to explore several million rows of eye tracker data).

The Playground could be a really useful tool for interactive data exploration, if enhanced in a few minor ways.

  • For the Table view, like what is shown in the screenshot, it would be great to be able to export a CSV of whatever the current view is so that users can analyze the data in their local tool of choice.
  • Adding calculated columns in particular can be messy, when building them using the Cube Schema. For ad-hoc analyses in particular, it would be great to have some UI component to let me pick from existing measures + dimensions (with some awareness of the capabilities of those fields, as they’ve already been defined in the schema), and put together simple calculated columns without having to manually edit the schema. In the example shown, there are a few columns that exist only to show the deltas between other measures, and it feels silly that I had to manually write schema code for something so basic. Excel and ag-grid both have nice UX examples on how this could be accomplished with a simple expression editor, or a more visual tool.
  • I saw some recently-merged PRs relating to reordering UI elements, but haven’t looked further into the scope of those. As of today, having pulled the latest production version of the Playground, there’s no good way to reorder dimensions or measures in the Playground. I often want to change groupings and have to clear out what’s already shown and start over on that set of members, which is clunky at best.

I’d contribute to the project on these items but don’t have the bandwidth to make a real commitment at the moment. Thanks in advance for considering these improvements.

:wave: @clonardo thanks for the post!

For the first item on your list, I believe this GitHub issue is relevant. Feel free to upvote and add your comments on the issue.

For the next two items, could you open two separate issues on GitHub? Feel free to ping me on the issue :bowing_man: