SAS Visual Analytics imposes limits on the amount of data that can be displayed in an individual report object. The limits are designed to improve performance and minimize the risk of crashing the web browser or the Report Data service. If you exceed these limits, the behavior of the report object varies. For example, a list table might render only a portion of the results, but a crosstab might not render any data.
CAUTION: Making changes to any of the cardinality properties is done at your own risk, and it is strongly recommended that you test modifications in a non-production environment first. With the exception of MaxRowsLookup, these properties impact all report objects and could lead to unsatisfactory results. For example, performance might be significantly worse, or the Report Data service might crash.
The following properties control the maximum number of rows that are returned for a given report object:
Property Name | Default Value | Pre-Defined or Supplemental | Description |
---|---|---|---|
MaxRowsLookup | Varies per report object | Pre-defined | Refer to the SAS Visual Analytics documentation for more information. This limit can be controlled either globally from SAS® Environment Manager, or on a per-report basis when you edit the report and select to Override the System Data Limit. This value is in rows. |
defaultMaxCellsProduced | 250000 | Pre-defined | Client-side limitation. This value represents the maximum number of cells generated in a result set for a report object that the client will attempt to render. |
midtierCellLimit | 800000 | Supplemental | Server-side limitation. This value represents the maximum number of cells generated in a result set for a report object that the Report Data service allows for processing. |
midtierAllocationByteLimit | 10000000 | Supplemental | Server-side limitation. This value is in bytes and represents the total amount of space to allow for a single result set. It is calculated based on the length of a single row of data multiplied by the number of rows returned. |
protobufSizeLimit | 64000000 | Supplemental | Server-side limitation. This value is in bytes, and is related to the length of all categorical data items in a single row of data in the result set. It is calculated based on this length multiplied by the number of rows returned. |
categoryCardinalityServerLimit | 50000 | Supplemental | Server-side limitation. This value represents the maximum number of rows when categories are grouped together. |
For most report objects, you can use the following methods to calculate the number of rows and cells a report object will generate:
To calculate the number of rows:
Note: For crosstabs, you must do these steps once for all categories used in the Column role, and once for all categories used in the Row role, and then multiply those two values together.
To calculate the number of cells:
All of these properties can be defined for the Report Data service in SAS Environment Manager. The MaxRowsLookup value can also be set per report by editing the Override the Server Limit option for any report object.
To set the properties, you can follow these steps:
IMPORTANT: Do not use commas in any cardinality property values.
If you sometime later delete these properties from the Report Data service, you must restart the Report Data service in order for those changes to be picked up. Otherwise, SAS Visual Analytics continues to use the previously defined values for the properties until the service is restarted.
2018-10-16 09:54:23.466 DEBUG 7097 --- [o-auto-1-exec-3] com.sas.bidata.packager.PackageResult : sasdemo(ef88449c) [5860492992037d1b] Reducing row count for transferred cell maximum.
This exception indicates that the defaultMaxCellsProduced limit has been exceeded.
2018-10-16 10:07:02.735 DEBUG 32732 --- [o-auto-1-exec-2] com.sas.bidata.error.DataErrorHandler : sasdemo(ef88449c) [14199839754f47f8] dataTruncatedToNothing
java.lang.Exception: Too much data it has been truncated.
This error is fairly generic and is trickier to diagnose. Typically, this indicates that the report object's MaxRowsLookup value has been exceeded, and that value should be increased. This might require trial and error with the various cardinality properties to overcome. Start by increasing MaxRowsLookup. If that does not resolve the problem, then increase categoryCardinalityServerLimit.
2018-10-15 12:27:08.379 DEBUG 29691 --- [o-auto-1-exec-9] com.sas.bidata.error.DataErrorHandler : sasdemo(2463ed96) [3f7c58a2fcad5eae] dataTruncated
java.lang.Exception: Too much data to normalize truncated to preserve heap space
This exception indicates that the midtierCellLimit value has been exceeded.
com.sas.cas.CASException: The analytic server action stopped because the number of elements in the result set exceeds the specified limit (50000).
This exception indicates that the MaxRowsLookup value or the categoryCardinalityServerLimit value has been exceeded.