SSAS - how to perform partial cube processing without losing data

I have cube where measure groups are partitioned into 2 partition for different time frame as below:

  1. latest 2 years data ( PRT_DATA_2YEARS )

  2. older data than 2 years ( PRT_DATA_REST )

By processing 1st partition ( with any of processing option ), How can I make sure to process/refresh only last 2 years of data? Meaning only latest 2 years of data will be updated and rest of the data will be intact.

Example: lets say actual data on database got updates for all years. and till now cube has not reflected those changes because it hasn't processed yet. Now we run cube processing job, that will update or fetch updated data only for latest 2 years in the cube. And rest of the data will be intact. There will not be any change in the cube data which is older than 2 years.

Request you to please help to resolve this.

Any suggestions/hints/trick are welcomed.


2 answers

  • answered 2020-01-18 22:23 GregGalloway

    I would recommend you change from sliding windows partitions. For example, yesterday when you processed the “latest 2 years” partition it contained January 18, 2018-January 17, 2020. (Or I’m not sure if it’s full year boundaries, but the point is the same.) If you reprocess that partition then you will lose January 18, 2018 data and will this have to reprocess the older partition too.

    Instead switch to 5 partitions: 2016, 2017, 2018, 2019, and 2020. Then you should be able to reprocess the 2020 partition only and not have to reprocess the prior partitions. Basically you can achieve incremental processing. When you are ready to stop reporting on 2016 data then drop that partition and create the 2021 partition.

  • answered 2020-01-18 22:23 Hadi

    First, make sure that all partitions storage method is defined as MOLAP (not ROLAP or HOLAP), then just process one partition and the others will not be affected. But make sure that you did not process the dimensions related to the other partitions (if reprocessing is needed try to use ProcessAdd method).