简体   繁体   中英

Delta refresh of SSAS Cube

I have a scenario where an SSAS cube's data needs to be refreshed. We want to avoid using a full refresh that takes an hour, and do a 'delta' refresh. The delta refresh should 1) Update fact records that have changed 2) Insert fact records that are new 3) Delete fact records that no longer exist

Consider a fact table with three dimensions: Company, Security, FiscalYear and two measures: Qty, Amount

Scenario: In the fact table, a record with Company A, Security A, FiscalYear A has the measure Qty changed from 2 to 20. Previously the cube correctly showed the Qty to be 2. After the update,

If we do a Full refresh, it correctly shows 20. But in order to get this, we had to suffer a full hour of cube processing.

We tried adding a timestamp column to the fact table, split the cube into Current and Old partitions, full refreshed the Current Partition and Merged into Old partition as seems to be the popular suggestion. When we browse the cube, it shows 22, which is incorrect

We tried an Incremental refresh of the cube, same issue. It shows 22, also incorrect.

So what I am trying to ascertain here, is whether there is no way to process a cube so it only takes the changes (and by that I mean Updates, Inserts AND deletes, not just Inserts!) and applies them to the data inside an SSAS cube?

Any help would be greatly appreciated!

Thanks!

No, there is no way to do this. The only control you have over processing is the granularity of what you process. For instance, if you know that data over a certain age will never change, you can put data over that age in a partition, and not include it in your processing.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM