Edit the Mondrian Properties File

mondrian.properties is in pentaho/server/pentaho-server/pentaho-solutions/system/mondrian.

Edit this file to tune Mondrian for your environment.

Note: This guidance targets Pentaho Analyzer performance. For all settings, see http://mondrian.pentaho.com/documentation/configuration.phparrow-up-right.

Performance settings

Push as much work to the database as possible.

This matters most for high-cardinality dimensions.

It avoids large, sparse Cartesian products in memory.

  • mondrian.expCache.enable=true

    Improves summary calculations, like ranks and running sums.

  • mondrian.native.crossjoin.enable=true

    Enables database pushdown for cross joins.

    Prevents large in-memory cross joins.

  • mondrian.native.filter.enable=true

    Pushes NOT IN and exclude filters to the database.

  • mondrian.native.nonempty.enable=false

    Optimizes SQL generation for Analyzer-generated MDX.

    Keeps NON EMPTY cross joins in the database.

  • mondrian.olap.maxConstraints=1000

    Used with mondrian.native.ExpandNonNative.

    Increase this as your database allows.

  • mondrian.native.ExpandNonNative=true

    Pushes down more cross joins.

    Materializes inputs into IN lists when needed.

  • mondrian.olap.elements.NeedDimensionPrefix=true

    Analyzer generates dimension-qualified members.

    Mondrian can skip cross-dimension member searches.

Usability settings

These settings reduce user-facing failures and confusing results.

  • mondrian.result.limit=5000000

    Caps the largest cross join Mondrian will process in memory.

    This limit avoids long server hangs when pushdown fails.

    Analyzer can warn users when this limit is reached.

  • mondrian.olap.case.sensitive=true

    Preserves casing for equals filters.

    Example: John Doe matches only John Doe.

  • mondrian.olap.ignoreInvalidMembers=true

    Keeps saved reports running when members disappear after ETL.

  • mondrian.olap.ignoreInvalidMembersDuringQuery=true

    Use this with mondrian.olap.ignoreInvalidMembers.

  • mondrian.olap.iterationLimit=5000000

    Limits aggregate evaluation work.

    This is similar to mondrian.result.limit.

  • mondrian.olap.compareSiblingsByOrderKey=true

    Enables A–Z and Z–A member sorting.

    This fixes a Mondrian sorting issue.

  • mondrian.olap.NullDenominatorProducesNull=true

    Controls divide-by-null behavior.

    Example: Booked Deals / Quota.

    When true, divide-by-null returns null.

    NON EMPTY can then filter those rows out.

    When false, divide-by-null can return infinity.

Last updated

Was this helpful?