Hi
I have just started working on SAS. At my organization all data is on Oracle DB and I have to create analytics on that. The tables have around 9 million rows and 50 columns each. Mostly I have to use 7 such tables. Before any reporting, I was trying to pull the data into SAS LASR metadata. My SAS VA installation is on single server. From what I know, I followed below steps:
1) Load the tables once through SAS VA Data Import functionality.
2) Created autoload scripts to unload and reload the tables using unix cronjob. Two .sas scripts for unload and then reload is executed nightly through cronjob.
This thing works.
However:
The tables get updated every minute. For any reporting, loading the entire table again and again in SAS takes time and memory. I was looking for help/suggestions to make it more effective. I have thought of below option. Could you please guide on this and/or suggest any other better solution:
Create PL/SQL procedure having all the required joins and store the result in a seperate table on Oracle DB itself. The script will also update the table based on modified date. only records updated would get modified and entire table need not be re-populated. Then pull this final table data into SAS LASR. Again, in this method too, the final table would contain huge volume of data. Is there any way to NOT purge the existing table on SAS LASR but only insert new entries ? Would Proc Merge help ? Is there any way to identify updated rows and then update it in SAS LASR?
I suggest that the way to do updates and appends in LASR memory is with some custom SAS code. PROC IMSTAT is designed to do this:
I suspect you would need to figure out in advance in Oracle what rows have been updated and which rows have been appended. You can then load separate update and append tables into LASR memory and use IMSTAT to apply these to your main table.
Hello,
I understand your dilema. As SAS Data Builder generates automatic code, this option would not be probably your best option, only for the initial load of the big table.
For incresing performance during the updates (inserts, as you mention), I would recommend an external process. Some options I can think about:
I hope this may help you a bit.
Best regards,
Juan
I suggest that the way to do updates and appends in LASR memory is with some custom SAS code. PROC IMSTAT is designed to do this:
I suspect you would need to figure out in advance in Oracle what rows have been updated and which rows have been appended. You can then load separate update and append tables into LASR memory and use IMSTAT to apply these to your main table.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
See how to use one filter for multiple data sources by mapping your data from SAS’ Alexandria McCall.
Find more tutorials on the SAS Users YouTube channel.