Create a shared dimension

Create a shared dimension for aggregated data that you want to use consistently across multiple cubes in the same semantic model. For example, a shared time dimension with annotations like Year, Month, and Week can be linked to several cubes, ensuring uniform time-based analysis.

Complete the following steps to add a table or view as a shared dimension of a cube:

  1. Log into the Pentaho User Console (PUC).

  2. Open the Semantic Model Editor by taking one of the following actions:

    • If you are using the Modern Design of PUC, in the menu on the left side of the page, click Semantic Model Editor.

    • If you are using the Classic Design of PUC, click File > Semantic Model Editor.

    The Semantic Model Editor opens.

  3. Open the semantic model to which you are adding a shared dimension by completing the following sub steps:

    1. In the Semantic Models list, navigate to the model you want to open by searching or scrolling through the list.

    2. Click Open. The model opens in the canvas.

  4. In the Data Source tab, navigate to the table or view that you want to use as a shared dimension.

  5. (Optional) To preview data in the table or view, click the Preview icon next to the table or view. The Preview Data panel opens. You can take one or more of the following additional actions while previewing the data:

    • Hover over a column header to see metadata information for that column.

    • Click a column header to sort the table by the data in that column.

    • Click the Preview icon again to close the Preview Data panel.

    Note: You can preview one table or view at a time. By default, the maximum number of rows shown is 100. The administrator can change the maximum value by editing the row-limit property in the application.properties file, located in: \Pentaho\server\pentaho-server\pentaho-solutions\system\semantic-model-editor. The administrator must restart the Server for the new row value maximum to take effect.

  6. Drag and hold the table or view over a blank area of the canvas until the Do you want to: dialog opens and then drop the table or view onto the Use as Shared Dimension option. A shared dimension is created with one hierarchy that has one level, and the Shared Dimension Editor window opens with the top position of the Dimension tree selected.

  7. Edit options for the shared dimension by completing the following sub steps:

    1. In the Dimension Name section, enter a unique Name.

    2. In the Dimension Type section, select one of the following options for the Type of dimension you want to use:

      Option
      Description

      StandardDimension

      A dimension used for basic analysis. StandardDimension is the default value.

      TimeDimension

      A dimension used for time-based analysis. A time dimension might have annotations like Year, Month, and Week.

  8. (Optional) Expand the Optional Information section, and then select a value for Visible to specify whether the shared dimension element is visible in the Pentaho Analyzer design environment. Elements that are not visible cannot be accessed directly in Pentaho Analyzer to use in reports. However, hidden elements can still be used to build expressions and conditions that are internally evaluated by the Mondrian engine for reporting. The default value is true.

  9. (Optional) Expand the Describe Dimension section and edit one or more of the following options:

    Option
    Description

    Caption

    String of text that is displayed instead of the shared dimension's name. You can use captions to provide a user-friendly label for reports or for localization so that the shared dimension's name appears in the local language.

    Description

    Description of the cube.

  10. In the Dimension tree, select the hierarchy that was created when you added the dimension.

    Note: You can add more than one hierarchy to a dimension.

  11. Edit the options for the hierarchy by completing the following sub steps:

    1. In the Hierarchy Name section, enter a unique Name.

      Note: All hierarchies in a shared dimension must have a unique name. An empty name is considered unique and can be used only once for a hierarchy in the shared dimension.

    2. In the Mandatory Data section, enter information for the following options:

      Option
      Description

      Source Table*

      Table used as the source of data for the hierarchy.

      Alias

      Unique text string used as an alias for the table in queries. You can assign an alias to a table used in multiple hierarchies to ensure that SQL queries work correctly. By default, the table name is used in queries.

      Hierarchy Key

      Unique text string that connects the table or view produced by the hierarchy to the cube’s fact table, which enables accurate joins between dimension data and fact data during query execution.

      Has All*

      Value indicating whether the hierarchy has an “all” member. The "all" member is the parent of all other hierarchy members, representing the total. The default value is true.

      *Required field

    3. (Optional) Expand the Optional Information section and edit one or more of the following options:

      Option
      Description

      Visible

      Value indicating whether the hierarchy element is visible in the Pentaho Analyzer design environment. Elements that are not visible cannot be accessed directly in Pentaho Analyzer to use in reports. However, hidden elements can still be used to build expressions and conditions that are internally evaluated by the Mondrian engine for reporting. The default value is true.

      All Member Name

      Name of the “all” member if the hierarchy has an “all” member. Default value is All hierarchyName. For example, All Store.

      All Member Caption

      A string of text that is displayed instead of the "all” member’s name. You can use captions to provide a user-friendly label for reports or for localization so that the "all” member’s name appears in the local language.

      All Level Name

      Name of the “all” level. The “all” level is the topmost level in a hierarchy and contains only the “all” member, which represents the total aggregation of all members in the hierarchy below it.

      Default Member

      Default member of the hierarchy.

      Member Reader Class

      Name of the custom reader class. The custom reader class must implement the mondrian.rolap.MemberReader interface. 

      A custom reader class is a user-defined Java class that extends Mondrian’s default behavior for reading members of a dimension so that you can customize how dimension members are retrieved and displayed in OLAP queries.

      Origin

      A bit mask that determines the source of the hierarchy:

      • MD_ORIGIN_USER_DEFINED identifies levels in a user defined hierarchy (0x0000001).

      • MD_ORIGIN_ATTRIBUTE identifies levels in an attribute hierarchy (0x0000002).

      • MD_ORIGIN_INTERNAL identifies levels in attribute hierarchies that are not enabled (0x0000004).

      • MD_ORIGIN_KEY_ATTRIBUTE identifies levels in a key attribute hierarchy (0x0000008).

      The default value is MD_ORIGIN_USER_DEFINED. For Measure the default value is MD_ORIGIN_ATTRIBUTE & MD_ORIGIN_INTERNAL (0x0000006).

      Display Folder

      Folder in which to list the hierarchy for users.

      Unique Key Level Name

      Name of the level within the hierarchy.

      The Unique Key Level Name is used to indicate that the given level taken together with all higher levels in the hierarchy acts as a unique alternate key, ensuring that for any unique combination of those level values there is exactly one combination of values for all levels below it.

    4. (Optional) Expand the Describe Hierarchy section and edit one or more of the following options:

      Option
      Description

      Caption

      String of text that is displayed instead of the hierarchy’s name. You can use captions to provide a user-friendly label for hierarchies or for localization so that the hierarchy’s name appears in the local language.

      Description

      Description of the hierarchy.

    5. In the Dimension tree, select the level of the hierarchy that was created when you added the shared dimension. For example, the default level is named “Level1”.

      Note: You can add more than one level to a shared dimension.

  12. Edit the options for the level by completing the following sub steps:

    1. In the Level Name section, enter a unique Name.

      Note: All levels in a hierarchy must have a unique name. An empty name is considered unique and can be used only once for a level in the shared dimension.

    2. In the Level Source section, select a value for one or more of the following options:

      Option
      Description

      Source Table

      Table that is the source for the level.

      Column

      Column of the source table that you want to use for the level. If a column is not selected, a KeyExpression must be defined in the Advanced mode instead or an error occurs when you try to save the model. For details, see Advanced mode.

    3. In the Relevant Information section, edit one or more of the following options:

      Option
      Description

      Name Column

      Column of the table that contains the user identifier of the level.

      Note: Instead of selecting a specific column, you can define a NameExpression in the Level element of a SQL expression to use as the user identifier. For details, see Advanced mode.

      Ordinal Column

      Column of the table that contains the member ordinals for the level.

      Note: If the Ordinal Column is not specified, the key column is used for ordering. Instead of selecting a specific column, you can define an OrdinalExpression in the Level element of a SQL expression to use for ordering. For details, see Advanced mode

    4. (Optional) Expand the Optional Information section and edit one or more of the following options:

      Option
      Description

      Visible

      Value indicating whether the level element is visible in the Pentaho Analyzer design environment. Elements that are not visible cannot be accessed directly in Pentaho Analyzer to use in reports. However, hidden elements can still be used to build expressions and conditions that are internally evaluated by the Mondrian engine for reporting. The default value is true.

      Approximate Row Count

      Estimated number of members in the level. Setting an approximate row count can improve performance.

      Null Parent Value

      Value that identifies null parents in a parent-child hierarchy. Typical values are NULL and 0.

      Key Column Type

      The type of data in the key column for the level. Types of data include STRING, NUMERIC, INTEGER, BOOLEAN, DATE, TIME, and TIMESTAMP.

      When generating SQL statements, Mondrian encloses values for String columns in quotation marks but leaves values for Integer and Numeric columns un-quoted. Date, Time, and Timestamp values are quoted according to the SQL dialect. For a SQL-compliant dialect, the values appear prefixed by their type name, for example, DATE '2006-06-01'.

      Internal Type

      The Java type that Mondrian uses to store the level's key column. Types include INT, LONG, OBJECT, and STRING.

      The Internal Type value also determines the JDBC method that Mondrian calls to retrieve the column. For example, if the Java type is INT, Mondrian calls ResultSet.getInt(int).

      Usually, the Internal Type attribute is not needed, because Mondrian chooses a type based on the type of database column.

      Unique Members

      Value that indicates whether members are unique across all parents in the level. For example, zip codes are unique across all states. Members of the first level are always unique. The default value is false.

      Level Type

      Value that indicates whether the level is a regular or a time-related level. The level type is important for time-related functions such as YTD (year-to-date). The default value is Regular.

      Hide Member If

      Value that indicates when a member of the level is hidden.

      • Never: Member is never hidden.

      • IfBlankName: Member is hidden if its name is null or empty.

      • IfParentsName: Member is hidden if its name matches the parent’s name.

      The default value is Never.

      Formatter Class

      Formatter class name for the member labels displayed. The class must implement the mondrian.olap.MemberFormatter interface.

      A formatter class is a user-defined Java class for customizing how values are displayed so that you can format data beyond default settings, such as applying custom date formats, currency symbols, or localized labels.

      Caption Column

      The name of the column that holds the caption for members.

      Note: Instead of selecting a specific column, you can define a CaptionExpression in the Level element of a SQL expression to use as the caption. For details, see Advanced mode.

      Parent Column

      Parent in the transitive closure of a parent-child hierarchy.

      Note: Instead of selecting a specific column, you can define a ParentExpression in the Level element of a SQL expression to use as the parent. For details, see Advanced mode.

    5. (Optional) Expand the Describe Level section and edit one or more of the following fields:

      Option
      Description

      Caption

      String of text that is displayed instead of the level’s name. You can use captions to provide a user-friendly label for reports or for localization so that the level’s name appears in the local language.

      Description

      Description of the level.

  13. Click Apply. The shared dimension is created and added as a new node on the Canvas, in the semantic model.

  14. Click Save to save changes to the model.

Last updated

Was this helpful?