Atoti Server Aggregate Tables allow Atoti FRTB to query a table containing pre-aggregated data rather than having to run expensive aggregation queries on the remote database. This can improve the startup time of Atoti FRTB while also lowering compute-related costs on the database.
Atoti FRTB will need to know the name of the remote database table to use for each aggregate provider of each cube. The aggregate provider configuration can be found in the DirectQueryAggregateProviderConfig configuration class. You can use an aggregate table for one or all aggregate providers within Atoti FRTB.
Below is an example configuration for the default aggregate providers:
directquery:
aggregate-tables:
enabled: truecubes:
# IMA Cube:InternalModelApproachCube:
aggregate-providers:
# 1 of 2 Partial-Leaf AggregateProvider within the IMA CubeLEAF-Provider-0:
remote-table-name: INTERNAL_MODEL_APPROACH_CUBE_LEAF_PROVIDER_0_AGGREGATE_TABLE# 2 of 2 Partial-Leaf AggregateProvider within the IMA CubeLEAF-Provider-1:
remote-table-name: INTERNAL_MODEL_APPROACH_CUBE_LEAF_PROVIDER_1_AGGREGATE_TABLE# SA Cube:StandardisedApproachCube:
aggregate-providers:
# First and only Partial-Leaf AggregateProvider within the SA CubeLEAF-Provider-2:
remote-table-name: STANDARDISED_APPROACH_CUBE_LEAF_PROVIDER_2_AGGREGATE_TABLE
Generating Aggregate Tables
Aggregate tables can be generated at runtime using the DirectQuery REST Service. Refer to the service for full details on how to generate SQL queries to define and populate the aggregate tables.
Usage
To use aggregate tables, simply enable the aggregate-tables functionality through the enable property:
directquery:
aggregate-tables:
enabled: true
When Atoti FRTB starts, the initial aggregation queries that DirectQuery runs will not compute aggregates, but instead just read the contents of the aggregate tables. This means no computation is performed on the database at startup.