Configuring Pentaho Analyzer for Large Data Warehouses
Analyzer has some low-level configuration options that will improve performance when working with large data warehouses and high-cardinality dimensions:
- filter.members.max.count=500
- filter.dialog.apply.report.context=false
- filter.dialog.useTopCount=true
- report.request.service.result.expire.time.seconds=30
- report.request.service.result.cleanup.time.seconds=300
These analyzer.properties settings are explained in more detail below.
filter.members.max.count
Controls the maximum number of values to show in the filter dialogue, such as include/exclude filters and date range dropdowns.
filter.dialog.apply.report.context
If set to true, when showing available members in the filter dialog, Analyzer will limit those members to the existing filters or measures on the report. This means that when retrieving the list of members, Analyzer will perform the join in the fact table and then apply dimension filters. For a high-cardinality dimension, this may significantly reduce the list of members loaded into memory.
filter.dialog.useTopCount
If both this and mondrian.native.topcount.enable in mondrian.properties are set to true, when showing the first set of members in the filter dialogue, Analyzer will only show that set of members sorted within hierarchy. For high-cardinality dimensions, this is required to avoid loading all members into memory. However, if a user uses the Find box in the filter dialogue or if you have filter.dialog.apply.report.context set to true, then the TopCount will not be used.
report.request.service.result.expire.time.seconds
Report results are released after this amount of time has passed.
Analyzer report requests are processed asynchronously and immediately cleaned up after the first download. While this is efficient because clients usually don't need to download a report more than once, it causes issues with popup blockers that will block the first download and re-submit the download after prompting the user. If you expire the request after 30 seconds, you will work around the popup blocker issues while also enabling people to refresh the browser to re-download a report. This only applies to PDF, Excel or CSV downloads.
report.request.service.result.cleanup.time.seconds
Report result cleanup occurs after this amount of time.