Documentation
Data modeling
Reference
Hierarchies

Hierarchies

You can use the hierarchies parameter within cubes to define hierarchies. You can think about a hierarchy as a means to group dimensions together and organize them into levels of granularity, allowing users to drill down or roll up for analysis.

Hierarchies display is subject to support in visualization tools. Check APIs & Integrations for details. You can also preview hierarchies in Playground.

Any hierarchy should have the following parameters: name and levels.

Parameters

name

The name parameter serves as the identifier of a hierarchy. It must be unique among all members within a cube and follow the naming conventions.

YAML
JavaScript
cubes:  - name: users  sql_table: users    # ...    hierarchies:  - name: location  title: User Location  levels:  - state  - city

title

You can use the title parameter to set the human-readable name of a hierarchy:

YAML
JavaScript
cubes:  - name: users  sql_table: users    # ...    hierarchies:  - name: location  title: User Location  levels:  - state  - city

levels

The levels parameter is used to define the levels of the hierarchy. You can do so by listing the dimensions included in the hierarchy, from less granular to more granular ones:

YAML
JavaScript
cubes:  - name: users  sql_table: users    dimensions:  - name: state  sql: state  type: string    - name: city  sql: city  type: string    hierarchies:  - name: location  title: User Location  levels:  - state  - city

You can include the same dimension in multiple hierarchies. It is also possible to include a dimension from a joined cube into a hierarchy:

YAML
JavaScript
cubes:  - name: users  sql_table: users    joins:  - name: orders  sql: "{CUBE.id} = {orders.user_id}"  relationship: one_to_many    dimensions:  - name: state  sql: state  type: string    - name: city  sql: city  type: string    - name: status  sql: status  type: string    hierarchies:  - name: details  title: User Details  levels:  - status  - state  - city    - name: statuses  title: User & Order Statuses  levels:  - status  - orders.status

public

The public parameter is used to manage the visibility of a hierarchy. Valid values for public are true and false. When set to false, this hierarchy cannot be queried through the API. Defaults to true.

YAML
JavaScript
cubes:  - name: users  sql_table: users    # ...    hierarchies:  - name: location  title: User Location  levels:  - state  - city  public: false