《深入解析sas:数据处理、分析优化与商业应用》一1.2 启动SAS软件-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《深入解析sas:数据处理、分析优化与商业应用》一1.2 启动SAS软件

简介:

本节书摘来自华章出版社《深入解析sas:数据处理、分析优化与商业应用》一书中的第1章,第1.2节,作者 夏坤庄 徐唯 潘红莲 林建伟,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 启动SAS软件

SAS有多种运行模式:SAS窗口环境模式、非交互式模式、批处理模式及交互式行模式,下面会一一介绍。除了上面提到的4种模式外,SAS还可运行在对象服务器模式里, SAS元数据服务器、工作区服务器、存储过程服务器和OLAP服务器都是属于这种模式。关于这些服务器,在本书第四篇会进行讨论。

1.2.1 SAS窗口环境模式

SAS窗口环境是SAS提供的一种交互式图形界面,是在Windows环境下使用SAS编辑或提交SAS程序语句最方便也是最常用的模式。在SAS窗口环境中,用户可以通过程序编辑器编辑并提交SAS语句,程序语句的执行状态、执行时间等日志信息及put语句的输出会显示在日志窗口,同时还会提供在线帮助等。本章下一节会使用Windows环境下的窗口环境作为示例,详细介绍SAS窗口环境的各个窗口功能及其使用。
在Windows环境下启动SAS窗口环境和启动其他Windows应用程序一样有多种方式,可通过“开始”菜单里的快捷方式、命令行等方式进行。在安装SAS软件时,SAS软件安装程序会提示选择要安装的SAS语言版本。如果当前操作环境下安装了多种语言的SAS,英文的SAS可以通过“开始”“程序”SASSAS 9.4 (English) 启动。启动所有语言(包括英文)的SAS软件时,其快捷方式位于“开始”“程序”SASAdditional Languages中。例如,启动Windows操作环境下简体中文SAS软件的快捷方式为:“开始”“程序”SASAdditional LanguagesSAS 9.4 (Chinese (Simplified)),如图1.1所示。
此外,还可以使用命令行方式启动SAS窗口环境。在下面给出的Windows和UNIX操作环境下的命令后,都可以指定其他系统选项来定制要启动的SAS会话。例如,选项-NODATE表示在该SAS会话中产生的输出页面里不显示日期,选项-CONFIG指定SAS配置文件,以在启动时加载配置文件中更多的系统选项等。
Windows环境

C:\>"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe"

UNIX环境

#/opt/SASHome/SASFoundation/9.4/sas -dms

UNIX环境下的命令行若不加选项-DMS,则会进入SAS的显示管理系统。当使用Windows机器通过Telnet远程登录SAS软件所在的UNIX主机时,如果需要使用SAS窗口环境,可以在该Windows机器上启动X-Windows软件,例如Exceed、XMing、Cygwin等,并设置当前Telnet会话的DISPLAY环境变量到该Windows机器上。这样,所启动的SAS窗口环境会重定向到该Windows操作系统。当启动SAS的显示管理系统时,在该Windows环境下会弹出类似的SAS窗口环境。在初次使用X-Windows窗口时会有些不习惯,有些操作与Windows环境下的SAS窗口稍有差异,但大部分都很类似。
image

在UNIX环境下,更多使用的是非交互模式或批处理模式,或者其他的工具。例如,可使用Windows环境下的客户端程序SAS Enterprise Guide将SAS代码提交到UNIX服务器上。

1.2.2 非交互模式

很多情况下,SAS程序保存在外部操作系统文件中,这时可以在不启动SAS窗口环境的情况下非交互式地提交该文件。使用非交互模式执行保存在外部文件中的SAS程序语句时,SAS会打开该文件,执行该文件中的程序,并将日志和输出根据操作环境写入指定文件中。当该文件中的SAS程序执行完成时,SAS自动退出。下面是非交互模式下使用SAS执行外部文件中的SAS程序语句示例。
在Windows环境下的示例如下:

C:\>"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -sysin 
C:\sas\code\test.sas –log C:\sas\logs\test.log -print 
C:\sas\lst/test.lst

在UNIX环境下的示例如下:

#/opt/SASHome/SASFoundation/9.4/sas –sysin /opt/sas/code/test.sas –log /opt/sas
    /logs/test.log -print /opt/sas/lst/test.lst

选项“-sysin”指定SAS程序语句所在的文件。当要执行的SAS程序语句文件紧接着sas命令时,该选项可省略。“-log”指定输出日志文件,“-print”指定执行输出文件。

1.2.3 批处理模式

在支持批处理或后台执行的操作环境下,SAS还可运行在批处理模式中。用户可以将上面的一个或多个非交互模式中的命令写入批处理脚本,并保存在批处理.bat(Windows环境下)或.sh(UNIX环境)文件中,然后提交该批处理文件执行。当以批处理模式提交SAS作业时,会生成两个文件,它们分别包含该作业执行的SAS日志和输出。
下面给出UNIX下的.sh文件内容,该批处理文件提交了两个SAS程序执行test.sas和test2.sas。Windows环境下类似,但必须使用相应的脚本语法。

#!/bin/sh
cd /opt/sas
/opt/SASHome/SASFoundation/9.4/sas   /opt/sas/code/test.sas  -log  /opt/sas
    /logs/test.log  -print /opt/sas/lst/test.lst  &
wait
Sleep 15
/opt/SASHome/SASFoundation/9.4/sas   /opt/sas/code/test2.sas  -log  /opt/sas
    /logs/test2.log  -print /opt/sas/lst/test2.lst  &
wait

当使用调度软件或操作系统调度命令对SAS作业进行预定执行时,通常使用该模式。这样可以让执行时间较长的SAS作业在晚间或其他预定时间执行,或根据业务需要定期自动执行。下面给出了在Windows和UNIX环境下使用操作系统计划或预定功能批处理执行的示例。在SAS商业智能解决方案中这种模式也经常使用,SAS智能平台也提供了与第三方调度软件和操作系统调度服务的集成。
1.?Windows环境
使用Windows提供的任务计划程序,依次选择“开始”“所有程序”“附件”“系统工具”“任务计划程序”,并指定任务要执行的操作脚本为上面提到的批处理文件。如图1.2所示为在Windows“任务计划程序”中预定为在每天00:30:00执行的SAS作业,所设定操作的启动程序为包含SAS命令的.bat文件。
2.?UNIX环境
使用crontab命令预定上面提到的批处理文件。下面的crontab文件内容给出了预定在每天凌晨00:30:00执行批处理文件sasjob.sh中的作业。

30 00 * * * /bin/ksh /opt/sas/scheduler/sasjob.sh > /opt/sas/scheduler/sasjob.log 2>&1

image

1.2.4 交互式行模式

该模式在UNIX操作系统中可用,是一种较少使用的模式。但作为SAS支持的启动模式,在这里也简单地介绍一下。在交互行模式下,顺序地输入程序语句,所输入的DATA步或PROC步当遇到RUN、QUIT、分号、另一个DATA步或PROC步,或者ENDSAS语句时会提交执行。同时随着DATA步或PROC步的提交,这些程序语句的日志和输出(如果有输出的)也会立即显示。可使用NODMS或NODMSEXP系统选项启动交互式行命令模式的SAS会话。使用NODMS选项的命令示例如下:

#/opt/SASHome/SASFoundation/9.4/sas –nodms

后面还可以接其他系统选项或使用-CONFIG选项指定SAS配置文件。按EOF键(Ctrl+D组合键)或提交ENDSAS语句将结束交互式行命令模式的SAS会话。示例如下:
5? endsas;

1.2.5 配置文件和AUTOEXEC文件

使用上述任何一种模式启动SAS时,都可以通过定义配置文件和AUTOEXEC文件来定制SAS会话。在这两个文件中可以指定系统选项和任何时候启动SAS会话时自动执行的SAS语句。SAS系统选项控制SAS会话的许多方面,包括输出目的地、程序执行效率及SAS文件和逻辑库的属性等。
SAS配置文件的名称为sasv9.cfg,AUTOEXEC文件的名称为auoexec.sas,这些文件通常都位于SAS的安装根目录下。在多语言安装环境中,SAS根目录下的nls目录中还包括各种语言适用的SAS配置文件所在目录,例如en是英文、zh是简体中文、zt是繁体中文。启动SAS时如果不指定配置文件,在Windows操作环境下,SAS会去查找SAS安装根目录下的sasv9.cfg文件。通过Windows“开始”菜单启动各种语言的SAS软件时,SAS会自动调用对应语言的配置文件。而在UNIX操作环境中,SAS启动时所使用的配置文件是在启动SAS的文件中指定的。
有时,也会需要定制SAS启动时的配置文件。一个比较实际的例子就是,在很多商业项目中,不希望SAS使用其默认的临时逻辑库(逻辑库的知识会在后面介绍)WORK,而是希望将临时逻辑库WORK建立在一个高速存储系统中,以提高SAS对某些常用操作的效率,这时就可以在配置文件中指定临时WORK的物理位置。
在Windows环境下使用定制的配置文件sasv9_custom.cfg的示例如下。在该示例中,假定该文件位于目录C:Program FilesSASHomeSASFoundation9.4下(在UNIX环境下类似)。

C:\> "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -config  
"C:\Program Files\SASHome\SASFoundation\9.4\sasv9_custom.cfg"

系统选项AUTOEXEC用于指定AUTOEXEC文件。AUTOEXEC文件包含启动SAS或其他SAS进程时自动执行的SAS语句,例如该文件可包含一些定义在SAS会话中的经常使用的SAS逻辑库的LIBNAME语句。
SAS启动时,如果没有指定AUTOEXEC或NOAUTOEXEC选项,SAS会在当前目录、用户目录和SAS安装根目录下查找AUTOEXEC文件。可以在启动SAS的命令行里指定AUTOEXEC选项,还可以通过SASV9_OPTIONS环境变量将该选项放入配置文件里。
在Windows环境下通过命令行指定autoexec文件autoexec_custom.sas的示例如下。在该示例中,假定该文件位于目录C:Program FilesSASHomeSASFoundation9.4下(在UNIX环境下类似)。

C:\> "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -AUTOEXEC  
    "C:\Program Files\SASHome\SASFoundation\9.4\autoexec_custom.sas"

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: