Assume
a user in the Asia department needs to create an SPD Server table
on the departmental server
asiacpu. This
task requires data to be extracted from an SPD Server table named
alldata. The user knows that the
alldata table resides in the domain 'world.' The user submits the following
SAS code on a desktop SPD Server client:
LIBNAME worldlib sasspds 'world'
server=namecpu.spdsname;
LIBNAME asialib sasspds 'asia'
server=namecpu.spdsname;
data asialib.mydata;
set worldlib.alldata;
where region='Asia';
if country='Japan' then
subreg=1;
run;
The submitted
code extracts records from an SPD Server table named
alldata that resides in the domain 'world.' The 'world' domain
is stored on machine
worldcpu in the directory
/spds
. Because the
alldata table resides on
worldcpu, and SPD Server
processes certain SAS WHERE clauses, the search for the value 'Asia'
is performed on
worldcpu.
The SAS
program runs on the Asia user's desktop machine. The desktop machine
scans each row in the
alldata table, looking
for the string 'Japan'. If the string is found, the desktop client
then forwards the row to the machine where the output table resides,
which is
asiacpu in this example.
Disk space
for the output table
mydata is allocated
in the
/spds
directory on
asiacpu. The processing work, transferring data received
from the user's desktop machine to the SPD Server table, is performed
by
asiacpu as well.
The processing
that was required to create the output SPD Server table was distributed
across three machines. However, the user's desktop machine requires
no permanent disk space, because SAS WHERE clauses execute on the
machine that stores the source table. Only the selected rows that
matched the submitted WHERE clause are sent over the network to the
desktop client. This strategy significantly reduces network traffic,
as well as the time that is needed to complete a SAS program.