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 |
2 |
Deleting aggregates for a single aggregate persistence target |
To delete aggregates, use 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 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 |
5 |
Deleting aggregates for multiple aggregate persistence targets |
To delete aggregates on multiple targets, use 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:
|