"The dataset is too large. Some fields can't be expanded" — Cell count limit with large datasets and multiple measures

Answered
FERNANDO GUZMAN asked 5 days ago

Description:

We are using Flexmonster version 2.9.43 embedded in a JavaScript web application with a JSON inline data source.

Issue: When loading a report with a large dataset and a layout that has multiple row dimensions and several active measures, Flexmonster displays the following message and prevents expanding nodes:

"The dataset is too large. Some fields can't be expanded. Please narrow down the dataset."

 

Steps to reproduce:

  1. Load a JSON data source with approximately 30,000–40,000 rows.
  2. Configure a pivot layout with:
  • Multiple row dimension fields in a nested hierarchy
  • One of those dimensions having high cardinality (e.g. a unique ID field with ~30,000+ distinct values)
  • 8 or more active measures
  • 1 column dimension with ~15–20 distinct values
  • expandAll: true and drillAll: true in the slice

    3. Load the report — the error message appears and nodes cannot be expanded

Analysis: Even at the leaf cell level alone, before any subtotals are counted, the total number of cells required already exceeds what appears to be Flexmonster's internal rendering limit:

~30,000+ unique values (high-cardinality row dimension) × ~18 column values × 8 active measures

= ~4–5 million leaf cells

 

Questions for Flexmonster support:

  1. What is the exact cell materialization limit in v2.9.43, and is it documented anywhere?
  2. Is there a configuration option or API to raise or disable this limit?
  3. Is there an event or callback that fires when this limit is reached, so the application can intercept it and show a custom message?
  4. Has this limit been raised in a more recent version of Flexmonster? If so, which version?
  5. Is there a recommended pattern for handling layouts with high-cardinality dimensions and many measures without hitting this limit?

Environment:

 

  • Flexmonster version: 2.9.43
  • Data source type: JSON (inline array)
  • Framework: JavaScript (AngularJS)
  • Browser: Chrome / Edge (latest)

 

1 answer

Public
Maksym Diachenko Maksym Diachenko Flexmonster 4 days ago

Hello,

Thank you for writing to us.

Expanding all nodes with a high-cardinality dimension in rows and many measures is a heavy operation, so hitting this message is expected in your scenario.

To answer your questions:

  1. There is no cell count limit - the message is triggered by a time-based cutoff of 9 seconds. It exists to prevent the browser's "page unresponsive" warning or an out-of-memory crash while performing expands.
  2. Flexmonster provides a way to raise this limit. It is controlled by the expandExecutionTimeout option. You can increase it, but keep in mind users will have to wait longer for expands to complete.
  3. No event or callback fires when this limit is reached. However, you can override the default pop-up message through the localization to show a custom message instead. Please refer to our localization guide for more details: https://www.flexmonster.com/doc/localizing-component/
  4. This limit was not changed in more recent versions.
  5. We recommend narrowing the dataset with filters before expanding. High-cardinality dimensions combined with many active measures are a known weak spot for expandAll.

Please let us know if our answer was helpful.

Best regards,
Maksym

Please sign in or register to submit your answer