Hi everyone,
We have SAS 9.4 M6 installed on Linux servers with two compute servers:
– One used for SAS Guide
– Another used for SAS Enterprise Miner
Our data is stored on the compute server used by SAS Guide.
We have a scoring script that requires procedures available only on the SAS Miner server (licensed there).
Is there a way to use those procedures from the Miner server without switching to it or copying the data over?
We’d like to keep working on the Guide server since all our data is there and avoid transferring files every time we need to use a Miner procedure.
Is there anyone who knows if we can use SAS Miner procedures without moving the data?
In a multi node environment it's quite common to store your data in a shared file system, or in a separate database.
If that's not feasible, maybe you can cross mount the drives between the servers? Check with your infrastructure/OS team for advice.
Thank you for the suggestion.
I think mounting the drives could be a suitable solution in our case.
I'm just a bit concerned that it might affect performance when dealing with large datasets have you seen any impact in similar situations?
In my experience most data centres only have shared server storage these days so it doesn't matter how you mount drives you will get the same performance.
Thank you @SASKiwi and @LinusH for the details.
I also received an additional suggestion from SAS Technical Support that might help others facing a similar situation specifically when there is no shared file system or mounted drives between the two compute servers but SAS/CONNECT is licensed.
Support feedback:
I am assuming your filesystems are not shared between the 2 Compute servers.
If you filesystems are not shared, it looks like you have SAS/CONNECT installed and licensed on
both Compute servers.
If you have a CONNECT Spawner setup on the Guide Compute server, you can execute
CONNECT SIGNON code to connect the Miner Compute server (CONNECT client) to the
Guide Compute server (executing CONNECT Spawner).
You could then RSUBMIT; <sas code> ENDRSUBMIT; to execute code on the remote host.
or you can use RLS (remote library services) to pull data across network to be used by
SAS code executing on the Miner Compute server.
Sample code:
/* SIGNON code */
%let rhost=a.b.c.d.sas.com 7551; /* FQDN of Guide Compute Server and TCP port used for CONNECT Spawner */
SIGNON r USER=..... PASS=.....;
RSUBMIT;
LIBNAME mytest '.....path to SAS library....';
DATA MYTEST.CARS;
SET SASHELP.CARS; /* can subset data */
ENDRSUBMIT;LIBNAME MINERLIB SLIBREF=MYTEST SERVER=r;
or for RLS, you can skip the data step code and just execute on the Miner Server
<signon code >
LIBNAME MLIB '....path to SAS library on Guide server ....' SERVER=R;PROC CONTENTS MLIB._ALL_; RUN;
SIGNOFF; /* close CONNECT Server on Guide server */
For more information on SAS/CONNECT, you can do a web search "sas 9.4 sas/connect signon" .
You can also check to see if your site is executing a CONNECT Spawner that is part of the metadata environment
on Guide Compute server by executing the below from EGUIDE:
SIGNON SERVERV=_ALL_;
This will show if any CONNECT Spawner/server is setup in the metadata.
I was thinking about CONNECT, but since you don't have EM license on the host where the data resides, I don't think your code will work in that remote session.
RLS hand is NOT meant for processing large data sets (unless they reinvented that engine totally).
In my case, I just used CONNECT and RLS to access the data on the remote server and the script was executed on the Miner host where the EM license is available and it worked fine.
I think we'll also test the mount option and go with the one that gives better performance.
Thank you.
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.