SAS Programming Professionals,
Did you know that when using SAS/CONNECT, you can have a program running on a server “reach back” and process data directly from a SAS data set on your client machine (workstation)?
The aptly-named INHERITLIB option allows a remotely-running SAS program to process data from your workstation or network as if it were local to the remote server. Using the INHERITLIB option obviates the need for you to use PROC UPLOAD to send your data to the remote server for processing. This can be very handy when you do not want to have multiple copies of a data set spread across your various computing platforms.
The INHERITLIB option can be coded on either the RSUBMIT or the SIGNON statement. Here is an example:
libname pclib "C:\PRODDATA";
proc summary nway data=pclib.shoeaud(where=(region="Canada"));
class region product subsidiary;
var sales returns;
output out=sumshoes sum=;
In this example, we are allocating the “C:\proddata” directory (on a Windows workstation) to the “PCLIB” libref in our local SAS session. Thereafter, we RSUBMIT a simple PROC SUMMARY that will run on our Linux server. The RSUBMIT statement specifies that the remote session is to “inherit” the PCLIB libref. So, when the SUMMARY procedure executes on the remote Linux server, it “reaches back” to the workstation and drags the relevant observations across the network to the waiting SUMMARY procedure running on the Linux server. Pretty neat, eh?
Of course, you need to weigh the additional network traffic associated with remote servers processing local data against any gains realized by using the INHERITLIB option. But, you already knew that; didn’t you?
Best of luck in all your SAS endeavors!
(aka Michael A. Raithel)
Excerpt from the book: Did You Know That? Essential Hacks for Clever SAS Programmers
I plan to post each and every one of the hacks in the book to social media on a weekly basis. Please pass them along to colleagues who you know would benefit.