Types of Aggregate Tables in AtScale
There are two types of aggregate table that the AtScale engine can use: System-Defined aggregate tables and User-Defined aggregate tables. System-Defined tables are further divided into Demand-Defined and Prediction-Defined. User-Defined tables are further divided into manual and hinted.
System-Defined Aggregates
The AtScale engine is able to create two different types of aggregates, Demand-Defined and Prediction-Defined.
Demand-Defined
This type of aggregate is created by the AtScale engine according to various criteria, such as the history of queries against a model and statistics about the use of existing Demand-Defined aggregates.
For more about this type of Demand-Defined aggregates, see When the AtScale Engine Creates Demand-Defined Aggregates.
Prediction-Defined
The AtScale engine creates these aggregates because, after examining models immediately after those models are deployed, it anticipates that the aggregates will be useful for some queries. The purpose of creating these aggregates is to improve the performance of queries issued by client BI software faster than is possible with the creation of Demand-Defined aggregates alone.
There are three different varieties of Prediction-Defined aggregates and they are Defined by the AtScale engine when a catalog is deployed. When a catalog is redeployed, the engine revises the definitions of these aggregates, according to the changes that were made in the corresponding models.
-
An all-member aggregate table is Defined per fact dataset in a model, if you enable the AtScale engine to define aggregates of this type.
It contains all of the metrics from the fact dataset, and contains none of the related dimensions.
-
A dimension-only aggregate is specifically useful for filters in BI client software, such as Tableau and Microsoft Excel.
The compression ratio for a proposed dimension-only aggregate, defined as the number of rows in the full dimension dataset divided by the number of rows in the proposed aggregate for a level in the dimensional hierarchy, must be equal to or greater than a ratio that you can configure. You must enable the AtScale engine to define aggregates of this type.
-
A super aggregate is defined per fact dataset in a model, if you allow the AtScale engine to define aggregates of this type.
It contains all keys in a fact dataset. It also contains all degenerate dimensions for which a fact dataset contains values at all levels in the dimensional hierarchies.
-
This type of Prediction-Defined aggregate is useful during the rebuilding of aggregate instances for a model, as they can be used for rebuilding other aggregates and for avoiding the need to run queries to rebuild instances against fact tables in the connected data warehouse.
-
The AtScale engine can also use super aggregates to build new Demand-Defined aggregates.
For example, if a query runs against columns A, B, and C, and a super aggregate contains columns A, B, C, D, and E, then a Demand-Defined aggregate based on the query can be built directly from data in the super aggregate, again avoiding a query directly against the fact table to populate the Demand-Defined aggregate.
-
For more information, see Settings for Prediction-Defined Aggregates.
User-Defined Aggregates
There are two different types of User-Defined aggregate tables:
- Manual: These are aggregate tables that you define for certain use cases that System-Defined aggregates do not cover. For more about User-Defined aggregates, see When to Define Your Own Aggregate Tables
- Hinted: These are a type of aggregate table that you can allow the AtScale engine to define on a query data set. For more information, see About Hinted Aggregate Tables.