SAS SHARE功能
其提供一个多用户访问的数据服务器,允许多个用户同时读写同一个数据文件
除了提供本地数据共享给用户外,也可以通过远端路径共享其它数据给用户,而无需构架SAS CONNECT进行SIGN ON
通过SAS ACCESS配合,SAS SHARE提供了一个访问不同数据源的统一的数据接口,起桥梁作用,如图
通过使用SAS/SHARE*NET模块,你可以使用非SAS客户端发送请求给SAS SHARE server 以为的其它不同的客户端来访问SAS数据
可以使用如下方式访问SAS数据集
使用SAS/SHARE*NET Driver for JDBC, 允许你读写SAS数据.
使用SAS SQL Library for C,通过API你可以读写SAS数据.
使用ShareProvider连接到SAS/SHARE*NET server以查看更新数据.
SAS/SHARE Server
客户端
简单使用
指定通讯方式
options comamid=tcp;
启动服务器,并赋值ID
%let
TCPSEC=_NONE_;
options
comamid=tcp;
proc
server
tbufno=
12
id=shr1 AUTHENTICATE=OPTIONAL log=all;
run
;
需要注意,此时ID代表的是一个服务,必须先在OS中定义好,如WIN环境下,需该当C:/WINDOWS/system32/drivers/etc/services文件,并增加如下行
share1 5060/tcp #
预定义数据库
有如下方法
1、 在PROC SERVER使用LIBNAME语句,如libname mylib '/payroll/div2/emp';
2、在服务器管理会话中,使用PROC OPERATE过程,如
proc operate server=share1;
allocate library mylib '/payroll/dev2/emp';
启动服务器
PROC SERVER <ID=>
serverid <ALLOC|NOALLOC>
<AUTHENTICATE=OPT|REQ>
<LOG= value><DTF= SAS-datetime-format>;
<AUTHENTICATE=OPT|REQ>
<LOG= value><DTF= SAS-datetime-format>;
你可以使用
选项
NOALLOC
限制用户分配库
通过AUTHENTICATE= 指定是否需要验证
proc server id=share1 log=(message bytecount active
elapsedtime);
proc server id=share1 log=all;
指定日期格式
proc server id=share1 alloc log=cpu dtformat=time11.2;
proc server id=share1 noalloc log=io dtformat=_NODTS_;
An example of a datetime format is 18JAN1999:14:02.39.186.
控制管理员访问服务器
缺省,用户可以发送管理员请求到服务器,通过如下指定,则需要通过密码来访问
proc server id=share1 oapw=blue31;
这样,当你通过PROC OPERATE来访问时,必须也使用同样的OAPW选项
proc operate id=share1 sapw=blue31;
使用口令访问服务器
proc server id=share1 uapw=hotwings;
run;
这样,在使用时,需如下
libname invoice server=share1 sapw=hotwings;
通过指定如下宏,将使2者进行交互时不使用安全认证
%let TCPSEC=_NONE_;
管理服务器
1 proc operate serverid=share1;
2 display user _all_;
3 stop user maria;
4 display user maria;
5 quiesce user 1;
6 display user 1;
7 start user maria;
8 quit;
使用数据
通过LIBNAME使用
libname
mylib server=shr1;
通过PROC SQL使用
proc
sql
;
connect
to
remote(server=shr1);
select
*
from
connection
to
remote
(
select
*
from
dd);
quit
;
访问远端数据
%let
host=127.0.0.1;
libname
mylib server=host.shr1;