Aggregate Settings
AtScale supports the following global-level settings for aggregates.
aggregate.batch.cube.gracePeriodOverrides.enabled
- Default:
false
- Restart: No
Allow specifying grace period overrides when building an aggregate batch for a model. For more information, see Rebuilding Aggregates Using the REST API.
Enabling this functionality can potentially cause your system to become strained by expensive aggregate rebuilds.
aggregate.batch.gracePeriodOverrides.enabled
- Default:
false
- Restart: No
Allow specifying grace period overrides when building an aggregate batch. Requires aggregate.batch.cube.gracePeriodOverrides.enabled
to be enabled on the models you want to run incremental builds for. For more information, see Rebuilding Aggregates Using the REST API.
Enabling this functionality can potentially cause your system to become strained by expensive aggregate rebuilds.
aggregates.batch.max.failures
- Default:
0
- Restart: No
Max number of failures for a batch build, before the whole batch fails.
aggregates.batch.retry.maxAttemptsPerAggregate
- Default:
3
- Restart: No
The maximum number of reattempts to build a single aggregate during a single batch build. This number cannot exceed the value of AGGREGATES.BATCH.RETRY.MAXATTEMPTSPERBATCH
.
aggregates.batch.retry.maxAttemptsPerBatch
- Default:
5
- Restart: No
The maximum number of reattempts to build aggregates during a single batch build.
The following example illustrates how this setting interacts with aggregates.batch.retry.maxAttemptsPerAggregate
:
Step in the build process | Restarts for Aggregate A | Restarts for Aggregate B | Restarts for Aggregate C | Total restarts for the batch |
---|---|---|---|---|
A batch build of the aggregates in a model starts. | 0 | 0 | 0 | 0 |
The build for Agg A fails and restarts. | 1 | 0 | 0 | 1 |
The build for Agg A again fails and restarts. | 2 | 0 | 0 | 2 |
The build for Agg B fails and restarts. | 2 | 1 | 0 | 3 |
The build for Agg C fails and restarts. | 2 | 1 | 1 | 4 |
The build for Agg C again fails and restarts. | 2 | 1 | 2 | 5 |
The build for Agg C again. The batch build fails as a whole because the max number of retries has been reached. | 2 | 1 | 1 | 5 |
Moreover, if the value of AGGREGATES.BATCH.RETRY.MAXATTEMPTSPERAGGREGATE
is reached before the value of
AGGREGATES.BATCH.RETRY.MAXATTEMPTSPERBATCH
during a batch aggregate build, the build fails and ends.
Whenever a new build starts, the counters for both settings are reset to 0. To use the example in the table above, when a new batch build starts, the counter for the number of restarts for each aggregate table is set to 0. The counter for the total number of restarts for the batch is also reset to 0.
aggregates.create.buildFromExisting
- Default:
true
- Restart: No
Enables or disables all features relating to building aggregates from other aggregates, as opposed to base tables.
The AtScale engine continuously assesses the quality of the aggregate-table definitions that it has generated. If it determines that a new definition is needed, by default the first instance of that definition is built from a query against raw data, even if that definition is based on a current aggregate-table definition.
Use this setting to allow the first instance of a new definition to be built from the data that is already in an instance of another definition. Allowing the first instance to be built in this way speeds up the build process.
For example, suppose that the engine decides to supersede the aggregate-table definition AggDef1 by creating the new definition AggDef2, which is based on AggDef1. If this setting is set to True, the build of the first instance of AggDef2 will include data from the current instance of AggDef1. If the instance requires data that is not in the current instance of AggDef1, the engine queries raw data to gather it.
Non-incremental aggregates tables can be built only from non-incremental aggregate tables, while incremental aggregate tables can be built only from incremental aggregate tables.
aggregates.create.compression.threshold
- Default:
3.0
- Restart: No
Specify the compression factor that aggregates proposed by the engine must meet or exceed. This factor is a measure of the quality of a proposed aggregate. It is calculated as the number of rows in the fact table divided by the estimated number of rows in a proposed aggregate.
aggregates.create.firstTime.buildFromExisting
- Default:
true
- Restart: No
Set to True
to allow only the first build of a new aggregate table to be created from data that is in an existing aggregate table. This option does not affect rebuilds, which are still created from unaggregated data.
aggregates.create.higherOrder.enabled
- Default:
true
- Restart: No
If set to true
allows the Aggregate System to build aggregates on a higher level if the compression score at the lowest level is not met.
aggregates.create.includeHigherLevels.enabled
- Default:
true
- Restart: No
Set this to True
to enable the addition of higher levels to system aggs (without causing additional joins). For example, if an aggregate has the Day level, AtScale automatically adds Month and Year.
aggregates.create.iris.nojourn.enabled
- Default:
false
- Restart: No
Only applies to InterSystems Iris data warehouses, version 2022.2 or newer. Whether to use %NOJOURN
parameter when creating aggregate tables.
aggregate.create.joins.allowPreventIncremental.enabled
- Default:
true
- Restart: No
Whether or not to consider joining to a dataset that is not safe for incremental update if it would prevent this aggregate from otherwise being an incremental aggregate.
aggregates.create.joins.compression
- Default:
100.0
- Restart: No
Specify the minimum compression ratio for any proposed join. This ratio is calculated as the cardinality of the join key in the fact table (or in the dimension table if that is not available) to the cardinality of the grouped dimension values (i.e. #(Key Cardinality) / #(Dim Table grouped by Dim Value)
). Joins for which the compression ratio is below this minimum will not be used.