Blend Unit
The Blend Unit acts to define the dimension which used to break down the data into effective pages for processing, or partitions. Blend Unit’s partition used to process the aggregations defined in the BI Blend settings, such as Account or UD aggregations.
Each Blend Unit member’s aggregations are executed as part of a Multi-Threading process. The selection of the Dimension as the Blend Unit can impact the performance of the application. The larger the number of Blend Unit pages, the more opportunity there is for multi-threading tasks to be initiated.
Examples
-
Entity Structure as three members requires all aggregation to happen within only three members.
-
Assigning the larger Dimension as the Blend Unit, such as UD3 (200 members) as the Blend Unit, would allow multi-threading to process more aggregations on smaller datasets.
-
Larger Blend Unit members enhance performance through a more even distribution of records.
-
When a Blend Unit page completes the aggregation process the engine loops over the rows on the page and summarizes any duplicate rows, but not with duplicates created in another page.
-
Derivative rules run on each page, for a single row, in an exclusive manner for that page and do not cross pages.
-
Many members in blend unit means more smaller pages which leads to better memory management, faster aggregation performance and more parallel processing.
Performance Settings
BI Blend processing is a CPU and Memory intensive process. The number of table records is heavily impacted by the Attribute details in the records and level of aggregations defined for Cube Dimensions. In each BI Blend configuration setting, the performance can be tailored to the environment with the Performance Controls properties.
-
Max Degree of Parallelism (No SQL): Defaults to 8 processors
-
Max Degree of Parallelism (SQL): Defaults to 4 processors
-
Row Limit: Sets a maximum row limit to return to control potential server queries
-
Application Servers: Allows a named server to be dedicated for BI Blend processing.
Blend Unit Partitioning
The concept of partitioning a Blend Unit is a performance solution for large data sets aggregating within a Blend Unit. This permits multithreading of the aggregations within the Blend Unit.
Blend Unit Partitioning is accomplished by assigning the Data Source “Source ID” property to a record field. The members within this field will be used as the key to partition aggregations within the Blend Unit page. The resulting records will be not be summarized across the Source ID / Blend Unit partition. Important to note, is the use of Derivative Rules in BI Blend function within a partition and cannot not reference data found in other partitions. If required, the summarization will need to be performed in the database or in the reporting layer.
BI Blend’s assignment of a Blend Unit and aggregation generates “pages”, which are visible in the Log File. Each “Blend Unit Page” cannot exceed 2gb. If the 2gb size is exceeded, the aggregation will fail. The error message “Error Array Dimensions Exceeded Supported Range” will be presented. A solution if impacted by size constraints is to increase the size of the Blend Unit Dimension being used or reduce the number of Dimensions used in BI Blend.