It is been a while I have worked on Archiving solution, during the year 2008 to 2009 on BW 3.5 the standard SAP provided archiving solution SARA. After this, now got a chance to work on Archiving on SAP BW on HANA. Hope you find plenty of documents on How to for NLS archiving solution.
As usual SAP has improved the solution a lot and developed NLS with SAP SYBASE IQ as database (Columnar), when it compared to SARA to Tape Drives. Anyway this blog is not to compare these two, I would like to share my learnings, Tips & Tricks for NLS archive on SAP HANA.
Before proceed to blog, I would like to thank you to my onsite co-ordinator for all Knowledge Transfer.
Tips & Tricks:
- Before start with NLS archive, list down all the InfoProviders which are required for archive. Prioritize based on Business Requirement, User’s Priority, and Based on Volume & Size of InfoProvider.
- Get the volume, size and years of data stored in each InfoProvider from basis team. So that you can make quick decision which has to be archived and not needed.
- Archive in phases, like run till Step 50 – Verification Phase. Later schedule Step 70 – Deletion Phase (from BW).
- If InfoProviders are loaded with historical values, i.e., if daily delta brings changed data for previous years. Then such InfoProviders can’t be archived, because once it is archived to NLS it is locked for any change. It will not allow to load/change old data.
- If InfoProviders such as Sales etc, in other words larger volume cube. Find the characteristics other than Time to divide the data for archiving. Otherwise Archive jobs might take longer time and memory (remember it is on main memory in HANA – which is expensive). Many times system run out of allocated memory if Archive jobs runs in parallel.
- Schedule/take a regular backup both NLS and existing SAP BW on HANA before deletion of data. Just in worst case if system crashes (either one) you can recover from backups.
- Have a tracker which includes all list of InfoProvider and its current status along with the steps completed, sample is below it may vary based person to person/project requirement.
- Most important is schedule the archive jobs instead of manual execution. This way you save time & effort and use the system effectively.
There are two ways to do it.
I. Using Process Chains
- Goto RSPC T-Code and create a new Process Chain.
- Expand 'Data Target Administration' and Pull 'Archive Data from an InfoProvider' process to chain.
- Create Process variant in next prompt, enter required details and find the desired InfoProvider.
- On Next screen enter the time slice OR any other characteristics and select the step (here till 50)
- Final Process chain looks like below
Note: If it is request based archiving, then option "Continue Open Archiving Request(s)". Explore more on this, here in my case it is always based on time slice.
- Process Chain usage is useful when archive is done regularly and if there is a requirement to archive specific time/year data to NLS.
- If the No Of InfoProvider and time slice is limited, process chain can be created for each InfoProviders and schedule.
- If the Archive is based on time and one time activity, then it is tedious to create a chain for each InfoProvider and its time slice.
II. Using Job scheduling technique
Process Chain is not well suited for our requirement, hence have gone for Job Scheduling technique. Schedule the jobs one after the other, using the start condition as previous job completion.
- It is instant and quick as well as easy. Most important is that each job can be planned for time (when system is free) and increase/decrease the jobs based on time/system free time. For example, just 6 months data archive can be scheduled OR complete 12 months OR 8 months.
- Always flexible to change the steps of Archive OR time slice. Also there is no maintenance as in process chain.
- During the scenarios like memory full, the jobs might cancel and subsequent job will start after. Which will try to fill memory and system might shutdown/crash/slowdown the other process.
- Once scheduled, you may not have option to change due to less authorization in production.
Let’s look out on how to schedule,
- Goto RSA1 – InfoProvider and search for the desired InfoProvider and goto manage screen.
- If DAP (Data Archiving Process) already created, then there will be a new tab in manage screen named ‘Archiving’.
- Click on Archiving Request button underneath, a new pop appears to enter the details of archiving conditions.
- First thing is to select the STEP 50 as shown and goto ‘Further Restriction’ then enter the criteria.
- For the very first job, select the date and time keep at least half an hour from current time. So that you can schedule the remaining jobs. Check and Save,then click on ‘In the Background’ to schedule .
- Click on the Job Overview(next to Archiving Request) button in Manage screen of Archiving tab to see the Released Job and its details.
7. For Next Job schedule, we will enter the Released Job name as start condition. Just copy the name of the job, when you schedule the next job. This step is simple because there is only one job ‘Released’ and same will be considered as start condition.
8. For Subsequent job schedule, we would need the Job ID from the ‘Released Job’. We can get this ID by two ways. Either from Job Overview (goto released job and double click on it, further click on job details will give you Job ID) OR the moment you schedule the job, watch the footer (left bottom screen) for the job ID.
- The reason why we need this ID is, there will be two jobs in Released Status. For third job we need to specify start condition after completion of second. Here is the trick if you specify the job name, it will take the old/first job. Hence for third job schedule, just select date and time, click on check button.
- Later select the start condition as job, then it will give you pop up to select the correct job as start condition. In this screen, select the job which you noted the Job ID of 2nd job.
9. Once all jobs are scheduled, below is the released job status.
10. Once in a while check the jobs via SM37, please note jobs are started one after the other.
Start archive jobs parallel by considering the system memory availability and work efficiently when these jobs are in progress. Again these are my own experience, feel free to correct if you find any efficient way of achieving the task OR add any steps if it all required.
Feel free to share your feedback, thanks for reading the blog.