Assume that 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;
This 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 forwards the row to the machine on which 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 also performed by
asiacpu.
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
match the submitted WHERE clause are sent over the network to the
desktop client. This strategy significantly reduces both network traffic
and the time that is needed to complete a SAS program.