Lifecycle Use Cases for Aggregate Persistence

The table summarizes the user tasks to persist aggregates for different lifecycle use cases.

Lifecycle use cases focus on operations against single or multiple aggregate persistence targets, and don't describe operations for single or multiple-node deployments. User tasks are the same for both single-node deployments and multiple node deployments with the only difference is related to a clustered deployment. In a clustered deployment, you must connect to the controller Oracle BI Server. A rolling restart of the subordinate servers is performed in the background. See Run the Aggregate Specification Script.

Number Use Case Description

1

Creating aggregates for a single aggregate persistence target

To only create aggregates, modify the aggregate creation script to remove the delete aggregates statement at the beginning. Then, use nqcmd to run the script.

2

Deleting aggregates for a single aggregate persistence target

To delete aggregates, use nqcmd to run the delete aggregates statement directly, as follows:

Delete aggregates [list of fully qualified physical fact table names];

For example:

Delete aggregates;

or

Delete aggregates "src".."INCR"."fact_1", "src".."INCR"."fact_2";

3

Refreshing aggregates for a single aggregate persistence target

Use nqcmd to run the aggregate creation script, which contains statements to first delete, then create the aggregates.

Alternatively, you can manually delete the aggregates as described in use case 2, then create aggregates as shown in use case 1. This manual method is useful for situations where you want to delete all aggregates, but the aggregate creation script only specifies certain aggregates to be deleted.

4

Creating aggregates for multiple redundant aggregate persistence targets

To create aggregate clones on multiple targets, modify the aggregate creation script to copy the create aggregates statements as many times as you've targets.

For example, say you've a script containing the following create aggregates statement:

set variable LOGLEVEL=7 : create aggregates
"myfactaggr"
for "FACT_1"("MEASURE_1")
at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail")
using connection pool "tgt1"."cp"
in "tgt1".."double1";

You would then copy the block, paste it below the first block, and modify the connection pool and schema information for your second target. For example:

set variable LOGLEVEL=7 : create aggregates
"myfactaggr"
for "FACT_1"("MEASURE_1")
at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail")
using connection pool "tgt2"."cp"
in "tgt2".."double2";

After you've copied and modified the block for all your targets, save the script. Then, use nqcmd to run the aggregate creation script.

5

Deleting aggregates for multiple aggregate persistence targets

To delete aggregates on multiple targets, use nqcmd to run the delete aggregates statement directly for the affected fact tables. For example:

set variable LOGLEVEL=7 : delete aggregates
"tgt1".."double1"."myfactaggr";
set variable LOGLEVEL=7 : delete aggregates
"tgt2".."double2"."myfactaggr";

6

Refreshing aggregates for multiple redundant aggregate persistence targets

See Use Double Buffering to Refresh Highly Available Aggregates.

7

Refreshing aggregates for multiple partitioned aggregate persistence targets

In some cases, you might have different aggregates partitioned across multiple targets. This approach maximizes memory use, but doesn't provide highly available aggregates. To refresh partitioned aggregates, use one of the following methods as appropriate for your deployment:

  • Run the Aggregate Persistence Wizard multiple times against the different targets to generate a set of aggregate creation scripts, then run the scripts.

  • If you're running Oracle Analytics Server on the Oracle Exalytics Machine, run Oracle BI Summary Advisor and specify multiple targets in the Targets screen. Then, run the aggregate creation script.