Add Folders in Datasets to group Fields

Introduction
You will most probably recognize this. You open a dataset, and you need to browse through hundreds of fields to find the field you actually need. Also some field names might be very close to each other.
When using naming conventions, you might get away with a better experience. But what if you could organize the dimensions and measures in folders?

Feature suggestion
As an Analyst, I want to be able to organize my fields in groups, for easier browsabiliy.

Example folders:

  • Revenue metrics
  • Leadtime metrics
  • Operation metrics
  • etc etc

By having the ability to organize your fields in such a way, end users who can build dashboards will have a much better experience

I suggested the same directly - this would be real help in organising models

As a workaround to this, you could split it into multiple models, and join those models up again in the dataset with a relationship between them

When you have multiple models in a dataset, Holistics will group the measure/dimensions by the source model.

You could create…
model_revenue = select key, revenue from base_table
model_leadtime = select key, leadtime from base_table
model_operation = select key, operation from base_table

In model_leadtime & model_operation you could then set the attribute for field key as hidden = true to prevent the key(s) showing multiple times.

Then create the dataset with a relationship on key

When your users browse the dataset, the measures/dimensions will be grouped per the underlying model.

Ours looks something like this…

image

2 Likes

Hi David,

Thank you for your suggestion.
I think it would be a very rough workaround just for achieving those folders :slight_smile:

You would still have in the end cross-model metrics that touch multiple models.

Most people that have a data warehousing use a Star Schema, and that has one table in the center connecting to other tables. Using your approach might introduce some complexity issues with the SQL generator when you do not set your relations correctly.

What my honest opinion is, that workarounds are only fine when they don’t introduce any issues/limitations.

While the feature request is very simple, the workaround introduces a lot of work and possibly more limitations

If you’re currently surfacing a single model in your dataset with hundreds of fields, then configuring a few separate models to break this out to be honest feels like a sensible thing to do anyway.

That said, I agree being able to group them would be useful - but it’s important to think about the best way/place to do this.

Personally, I would suggest this be configured within the model, as part of the measure/dimension config.

Something like this…

  dimension sales_value {
    label: "Sales Value"
    type: "number"
    definition: @sql {{ sales_volume }} * {{ sale_price }};;
    hidden: false
    format: "[$$]#,###"
    dataset_group: "Sales"
  }

You would then want to have some settings at the dataset level to then control the behaviour, such as sort order of the groups, and sort order of the dimensions in the groups

something like

import '../models/calendar.model.aml' {
  calendar as model__calendar
}
import '../models/sales.model.aml' {
  sales as model__sales
}

Dataset daily_sales {
  label: "Daily Sales Records"
  description: ""
  data_source_name: "my_datasource"
  models: [
    model__calendar,
    model__sales
  ]
  relationships: [rel(sales.date > calendar.date, true)]
  dataset_grouping: [default | custom] #should it use the custom grouping from the dataset or standard grouping?
  dataset_group_ordering: [alpha_desc | alpha_asc | etc] #how should it order the groups
  group_dim_ordering: [alpha_desc | alpha_asc | etc] #how should it order the dims with in the group
}
5 Likes

Hi @david-ri ,

I think your example AML completely makes sense and very intuitive also. :+1:

@huy any chance that this feature gets on the roadmap somewhere soon?

Thanks for asking Abdel, I personally am very keen to get this implemented, because I feel the pain here as a user myself. I’m pushing internally to get this implemented within Q3 this year! Hope to be able to give you good news soon.

1 Like

@huy thanks you very much

Hi Huy, any updates on this?

Being able to control where a particular field appears in a presentation layer (i.e. appearing in a user-controllable model or folder) would be a massive help in organising the front-end.

Thanks!

2 Likes

Hi @Alex_H
I believe that there are several possible solutions for the same problem “Organizing fields in dataset”. It can be either supporting folder grouping in dataset (like Abdel’s suggestion), or ability to hide unnecessary fields in a particular dataset,… or all of them.
So we decided to put this request into our backlog and then spend more time researching on the solution first. I’ll let you know if we have any plan to implement it in the next few months :blush:

I suggest looking at things like how PowerBI and other do this.

IMO being able to organise the list of fields and put into folders, so that hierarchical fields can be grouped together and that implicit relationship is now very explicit to your report users can easily be seen. At the moment, without complex naming conventions, this implicit relationship is hidden and people cannot see and understand it.

Just hiding fields won’t be enough in this context to make the dataset understandable for users.

I want to bump this topic again because I believe it is quite an essential UX feature. As mentioned here, other tools have this implemented and Looker with the LookML “group label” could serve as inspiration for an AML implementation.

Totally agreed. This topic is already 8 months old, I would also like to see at least an ETA

1 Like

Thanks for raising this @Abdel and @Gabriel. I agree with you that this is quite an essential UX feature. We’re going through product roadmap exercise right now, and I’ll be sure to bring this up with the team. I’ll get back to you when we have any update on this.

1 Like

Hi @huy
Any updates on this?

Hi @Abdel,

Our team is now concentrating on developing the as-code modeling layer; thus we have decided that we will not be able to meet your request at this time. Please know that our team carefully evaluated your request, and has come to this decision based on both business direction and customer interests.

We also want to let you know that this feature request has already been added to our 23Q1 backlog. Our team will get back to you soon when there’s any new update on it.

Thank you for your patience and understanding during this time :slightly_smiling_face:

Hi @Abdel @Gabriel,

We are working on an upcoming feature Dataset View that can potentially addresses the problems discussed above. :point_down: Would you mind check it out and share us your thoughts on it?

:card_index_dividers: [Upcoming] Customizable Dataset Views - Product Releases - Holistics Community

3 Likes

Hi @Abdel @Gabriel and all,

We’ve released a new feature called Custom Dataset Views that allow analysts to:

  • Group relevant fields and models to provide better context.
  • Reorder fields and models to highlight frequently used models and fields by putting them on top.
  • Hide fields and models that are not relevant to end users.

For more details, check out Custom Dataset View | Holistics Docs or discuss on this thread.

Hi @Theodore_NT ,

I have just got around to trying this out and it’s a good first step.

For me the problematic piece of this solution is having to define the groups and ordering over and over again for specific table.

For instance, if I have a table Products then I use that in 4 different datasets, I have to define the groups/hierarchies and ordering 4 different times.

What would be great here is the ability to define a default view for each table, which can then be overridden in the dataset if required.

Is this something you are considering for this feature?

1 Like