sas存储系统
A. 网络存储技术的网络存储技术
直连式存储(DAS):这是一种直接与主机系统相连接的存储设备,如作为服务器的计算机内部硬件驱动。到目前为止,DAS 仍是计算机系统中最常用的数据存储方法。
DAS即直连方式存储,英文全称是Direct Attached Storage。中文翻译成“直接附加存储”。顾名思义,在这种方式中,存储设备是通过电缆(通常是SCSI接口电缆)直接到服务器的。I/O(输入/输出)请求直接发送到存储设备。DAS,也可称为SAS(Server-Attached Storage,服务器附加存储)。它依赖于服务器,其本身是硬件的堆叠,不带有任何存储操作系统。 1) 服务器在地理分布上很分散,通过SAN(存储区域网络)或NAS(网络直接存储)在它们之间进行互连非常困难时(商店或银行的分支便是一个典型的例子);
2) 存储系统必须被直接连接到应用服务器(如Microsoft Cluster Server或某些数据库使用的“原始分区”)上时;
3) 包括许多数据库应用和应用服务器在内的应用,它们需要直接连接到存储器上,群件应用和一些邮件服务也包括在内。
典型DAS结构如图所示:
对于多个服务器或多台PC的环境,使用DAS方式设备的初始费用可能比较低,可是这种连接方式下,每台PC或服务器单独拥有自己的存储磁盘,容量的再分配困难;对于整个环境下的存储系统管理,工作烦琐而重复,没有集中管理解决方案。所以整体的拥有成本(TCO)较高。目前DAS基本被NAS所代替。下面是DAS与NAS的比较。
网络存储设备(NAS):NAS 是一种采用直接与网络介质相连的特殊设备实现数据存储的机制。由于这些设备都分配有 IP 地址,所以客户机通过充当数据网关的服务器可以对其进行存取访问,甚至在某些情况下,不需要任何中间介质客户机也可以直接访问这些设备。 同普通电脑类似,NAS产品也都具有自己的处理器(CPU)系统,来协调控制整个系统的正常运行。其采用的处理器也常常与台式机或服务器的CPU大体相同。目前主要有以下几类。
(1)Intel系列处理器
(4)AMD系列处理器
(5)PA-RISC型处理器
(6)PowerPC处理器
(7)MIPS处理器
一般针对中小型公司使用NAS产品采用AMD的处理器或Intel PIII/PIV等处理器。而大规模应用的NAS产品则使用Intel Xeon处理器、或者RISC型处理器等。但是也不能一概而论,视具体应用和厂商规划而定。 预制操作系统是指NAS产品出厂时随机带的操作系统或者管理软件。目前NAS产品一般带有以下几种系统软件。
精简的WINDOWS2000系统
这类系统只是保留了WINDOWS2000 SERVER系统核心网络中最重要的部分,能够驱动NAS产品正常工作。我们可以把它理解为WINDOWS2000的“精简版”。
FreeBSD嵌入式系统
FreeBSD是类UNIX系统,在网络应用方面具备极其优异的性能。
Linux嵌入式系统
Linux系统类似于UNIX操组系统,但相比之下具有界面友好、内核升级迅速等特点。常常用来作为电器等产品的嵌入式控制系统。 网络管理,是指网络管理员通过网络管理程序对网络上的资源进行集中化管理的操作,包括配置管理、性能和记账管理、问题管理、操作管理和变化管理等。一台设备所支持的管理程度反映了该设备的可管理性及可操作性。
一般的网络满足SNMP MIB I / MIB II统计管理功能。常见的网络管理方式有以下几种:
(1)SNMP管理技术
(2)RMON管理技术
(3)基于WEB的网络管理
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。
SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。
目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。
通过将SNMP嵌入数据通信设备,如交换机或集线器中,就可以从一个中心站管理这些设备,并以图形方式查看信息。目前可获取的很多管理应用程序通常可在大多数当前使用的操作系统下运行,如Windows3.11、Windows95 、Windows NT和不同版本UNIX的等。
一个被管理的设备有一个管理代理,它负责向管理站请求信息和动作,代理还可以借助于陷阱为管理站提供站动提供的信息,因此,一些关键的网络设备(如集线器、路由器、交换机等)提供这一管理代理,又称SNMP代理,以便通过SNMP管理站进行管理。 网络协议即网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。
一台计算机只有在遵守网络协议的前提下,才能在网络上与其他计算机进行正常的通信。网络协议通常被分为几个层次,每层完成自己单独的功能。通信双方只有在共同的层次间才能相互联系。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。
TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。
IPX/SPX是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP(Sequenced Packet Protocol:顺序包协议)协议,它们都是由novell公司开发出来应用于局域网的一种高速协议。它和TCP/IP的一个显着不同就是它不使用ip地址,而是使用网卡的物理地址即(MAC)地址。在实际使用中,它基本不需要什么设置,装上就可以使用了。由于其在网络普及初期发挥了巨大的作用,所以得到了很多厂商的支持,包括microsoft等,到现在很多软件和硬件也均支持这种协议。
NetBEUI即NetBios Enhanced User Interface ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。总之NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,局域网的计算机最好也安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。 网络文件系统是基于网络的分布式文件系统,其文件系统树的各节点可以存在于不同的联网计算机甚至不同的系统平台上,可以用来提供跨平台的信息存储与共享。
当今最主要的两大网络文件系统是Sun提出的NFS(Network File System)以及由微软、EMC和NetApp提出的CIFS(Common Internet File System),前者主要用于各种Unix平台,后者则主要用于Windows平台,我们熟悉的“网上邻居”的文件共享方式就是基于CIFS系统的。其他着名的网络文件系统还有Novell公司的NCP(网络控制协议)、Apple公司的AFP以及卡内基-梅隆大学的Coda等,NAS的主要功能之一便是通过各种网络文件系统提供存储服务。 IBM Tivoli是IBM公司推出的备份软件,与Veritas的NetBackup和Legato的NetWorker相比,Tivoli Storage Manager更多的适用于IBM主机为主的系统平台,其强大的网络备份功能可以胜任大规模的海量存储系统的备份需要。
此外,CA公司原来的备份软件ARCServe,在低端市场具有相当广泛的影响力。其新一代备份产品--BrightStor,定位直指中高端市场,也具有不错的性能。
选购备份软件时,应该根据不同的用户需要选择合适的产品,理想的网络备份软件系统应该具备以下功能: 网站浏览器支持是指能否够通过WEB(就是WWW,俗称互联网)手段对NAS产品进行管理,以及管理时使用的浏览器类型。绝大部分的NAS产品都支持WEB管理,这样的好处是管理方便,用户在任何地方只要能够上网就可以轻松的管理NAS设备。
目前NAS产品支持的常用浏览器有微软的IE(Internet Explorer)浏览器以及网景公司的Netscape浏览器。 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
网络安全实际上包括两部分:网络的安全和主机系统的安全。网络安全主要通过设置防火墙来实现,也可以考虑在路由器上设置一些数据包过滤的方法防止来自Internet上的黑客的攻击。至于系统的安全则需根据不同的操作系统来修改相关的系统文件,合理设置用户权限和文件属性。
NAS产品的网络安全应具有以下四个方面的特征:
保密性:信息不泄露给非授权用户、实体或过程,或供其利用的特性。
完整性: 数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修
改、不被破坏和丢失的特性。
可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例
如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;
可控性:对信息的传播及内容具有控制能力。 NAS是英文“Network Attached Storage”的缩写, 中文意思是“网络附加存储”。按字面简单说就是连接在网络上, 具备资料存储功能的装置,因此也称为“网络存储器”或者“网络磁盘阵列”。
从结构上讲,NAS是功能单一的精简型电脑,因此在架构上不像个人电脑那么复杂,在外观上就像家电产品,只需电源与简单的控制钮, 结构图如下:
NAS是一种专业的网络文件存储及文件备份设备,它是基于LAN(局域网)的,按照TCP/IP协议进行通信,以文件的I/O(输入/输出)方式进行数据传输。在LAN环境下,NAS已经完全可以实现异构平台之间的数据级共享,比如NT、UNIX等平台的共享。
一个NAS系统包括处理器,文件服务管理模块和多个硬盘驱动器(用于数据的存储)。 NAS 可以应用在任何的网络环境当中。主服务器和客户端可以非常方便地在NAS上存取任意格式的文件,包括SMB格式(Windows)NFS格式(Unix, Linux)和CIFS(Common Internet File System)格式等等。典型的NAS的网络结构如下图所示:
存储网络(SAN):SAN 是指存储设备相互连接且与一台服务器或一个服务器群相连的网络。其中的服务器用作 SAN 的接入点。在有些配置中,SAN 也与网络相连。SAN 中将特殊交换机当作连接设备。它们看起来很像常规的以太网络交换机,是 SAN 中的连通点。SAN 使得在各自网络上实现相互通信成为可能,同时并带来了很多有利条件。
SAN英文全称:Storage Area Network,即存储区域网络。它是一种通过光纤集线器、光纤路由器、光纤交换机等连接设备将磁盘阵列、磁带等存储设备与相关服务器连接起来的高速专用子网。
SAN由三个基本的组件构成:接口(如SCSI、光纤通道、ESCON等)、连接设备(交换设备、网关、路由器、集线器等)和通信控制协议(如IP和SCSI等)。这三个组件再加上附加的存储设备和独立的SAN服务器,就构成一个SAN系统。SAN提供一个专用的、高可靠性的基于光通道的存储网络,SAN允许独立地增加它们的存储容量,也使得管理及集中控制(特别是对于全部存储设备都集群在一起的时候)更加简化。而且,光纤接口提供了10 km的连接长度,这使得物理上分离的远距离存储变得更容易.
B. sas 和nas区别
sas 和nas区别是:SAN系统是存储区域网络,NAS系统是网络附加存储。
如果您需要长期存储和保护数据,这两者都可能是不错的选择。 SAN和NAS系统都是使用RAID的冗余存储系统。
冗余存储系统能够在一个或多个组件发生故障后恢复,使其比其他类型的存储更稳定。 SAN和NAS解决方案对于那些需要存储大量数据并需要能够稳定可靠地访问这些数据的人非常有用。
SAN与NAS存储的基本区别是:
SAN存储设备通过光纤连接,而NAS存储设备通过TCP/IP连接。由于这个原因,SAN通常用于高级解决方案,而NAS解决方案更易于家庭用户或小型企业使用。
为了通过SAN连接,设备必须能够使用SCSI光纤通道。相比之下,NAS比较简单,任何东西都可以通过以太网连接到NAS解决方案。
SAN存储设备访问数据块,而NAS存储设备访问单个文件。根据性能需求,这两种选择都可能更可取,这完全取决于数据和系统的体系结构。
对于数据和资源密集型的高级应用程序,块数据可能更为可取。但是对于一般存储的数据来说,NAS可能更直接,并可以带来更好的性能。
C. SAS是什么
一、SAS系统简介
SAS是一个庞大的系统,它目前的版本可以在多种操作系统中运行。当前在国内被广泛使用的最新版本是8.2版,功能很强大,我深有体会。
据说9.0版已在国外面世,已经有一些有关它的抢先报道在网络上广为流传,说它如何如何美妙,令人不禁充满期待。
SAS8.2的完整版本包含以下数十个模块。
BASE,GRAPH,ETS,FSP,AF,OR,IML,SHARE,QC,STAT,INSIGHT,ANALYST,ASSIST, CONNECT,CPE,LAB,EIS,WAREHOUSE,PC File Formats,GIS,SPECTRAVIEW, SHARE*NET, R/3,OnlineTutor: SAS Programming,MDDB Server,IT Service Vision Client, IntrNet Compute Services,Enterprise Reporter,MDDB Server common procts,Enterprise Miner,AppDev Studio,Integration Technologies等。
所谓模块,我的理解是将功能相近的程序、代码等集中起来组成相对独立的部分,就称之为模块,类似于办公软件系统office中包含的word、excel、access等。各模块具有相对独立的功能范围,我们常用的模块有base,graph,stat,insight,assist,analyst模块等,分别执行基本数据处理、绘图、统计分析、数据探索、可视化数据处理等功能。其余模块我用得很少,知道得也很少,所以也就不多说了。
SAS系统的长处,体现于它的编程操作功能的无比强大。SAS一直以来也是注重于其编程语言的发展,对于可视化方式的菜单操作投入较少,其较早的版本仅有很少的菜单操作功能,使用起来也是非常的别扭。这很可能就是在windows人机交互式操作系统占统治地位的今天,SAS较少被人问津的原因之一。
到了最新的几个版本,SAS也对可视化操作方法投入了一定的关注。从8.0版以后,出现了几个功能强大的可视化操作的模块,如insight模块和analyst模块等,其菜单操作的方便程度以及人机界面的亲和性绝不亚于SPSS等着名的可视化统计分析软件。
然而要想完全发挥SAS系统强大的功能,充分利用其提供的丰富资源,掌握SAS的编程操作是必要的,也只有这样才能体现出SAS在各个方面的杰出才能。
二、SAS系统基本操作及基本概念
哪位要是连软件的安装和打开都要我啰嗦的话,我劝您还是买一套洪恩的《开天辟地》好好热热身先。
SAS 8.2的界面中间是三个并排(或层叠)的窗口,那个叫做Program Editor的窗口(窗口标签为Editor)就是用来输入SAS语句的,编程操作的所有内容都是在该窗口内完成的,各位还是要跟它先多熟悉一下。
(一)数据集(dataset)和库
统计学的操作都是针对数据的,SAS中容纳数据的文件称为数据集,数据集又包含在不同的库(暂且理解为数据库吧)中。SAS中的库分为永久性和临时性两种。顾名思义,存在于永久库中的数据集是永久存在的(只要你不去删除它),临时库中的数据集则在你退出SAS后自动被删除。至于SAS中库的概念,最简单的理解就是一个目录,一个存放数据集的目录。
数据集的结构完全等同于我们一般所理解的数据表,由字段和记录所构成,在统计学中我们习惯将字段称为变量,在后面的内容中字段和变量我们就理解为同一种东西吧!建立数据集的方法很多,编程操作中有专门的数据读入方法来建立数据集,但需要将数据现场录入,费时费力。如果数据量大,我劝各位还是先以其它方法将数据集建好,否则程序语句的绝大部分会浪费在数据的输入上。
What are 其它方法?各位是不是去参考一下别的书籍或资料。要不您是不是可以等一等,我准备若干年后出一本SAS操作大全。
(二)SAS程序概述
和其它计算机语言一样,SAS语言(称为SCL语言,SAS Component Language)也有其专有的词汇(即关键字)和语法。关键字、名字、特殊字符和运算符等按照语法规则排列组成SAS语句,而执行完整功能的若干个SAS语句就构成了SAS程序。
SAS程序包括多个步骤和一些控制语句,一般情况下均包括数据步和过程步,一个或多个、数据步或过程步,它们之间任何形式的组合均可成为一段SAS程序,只要能完成一个完整的功能。通常情况下SAS程序还包括一些全程语句,用以控制贯穿整个SAS程序的某些选项、变量或程序运行的环境。
SAS程序的语句一般以关键字开始,以一个分号结束,一条语句可占多行(SAS每看到一个分号,就将其以前、上一个分号以后的所有东东当作一条语句来处理,而不管他们处在多少个不同的行中)。SAS语句对字母的大小写不敏感,你可以根据个人习惯决定字母的大写或小写。
1. 库名(库标记)的定义
为了保存宝贵的数据和方便操作起见,我习惯于指定自己的库名及其路径(目录),因为SAS系统中已有的永久库(SASUSER)无论库名还是其对应的路径都太过繁琐,使用太不方便。程序中用到的数据,都可以永久的保存于该路径下,保证以后可以重复使用。指定库名的语句为全程语句,其格式如下:
Libname 库名 ‘路径’;
例如我们指定的库名为“a”,路径为:“e:\data\”,SAS语句如下:
libname a ‘e:\data\’;
2. 数据步
SAS的数据步以data语句开始,用于创建和处理数据集。Data语句以关键字“data”开始,格式如下:
data 数据集名;
例如:data a.case; 将创建在库a中名为case的SAS数据集,语句执行后你可在与库a对应的目录下看到刚刚建立的数据集文件case。
Data语句所指定的数据集,一般都是以“库名.数据集名”的格式出现的,也可以单独的“数据集名”出现,此时的数据集系统默认为是临时库中的数据集,退出系统后将会被删除。
data语句有两个重要的功能,标志数据步的开始和命名将要创建的SAS数据集。
除data语句外,数据步一般情况下还包括infile语句、input语句以及datalines语句等。在不同的数据输入方式下对于它们的使用方式也不一样。
SAS程序有两种常见的数据输入方式,即从外部文件读入和直接输入两种方式。
(1)外部文件读入方式
数据若已经包含在某个外部文件(文本文件或数据文件)中,可用此方法输入数据到数据集文件中。
在以上介绍的data语句后,写入以下语句:
infile ‘外部文件的所在位置及名称’ 选项;
input 变量名1变量名2 …变量名n;
infile语句用于从外部文件读入数据,必须出现在input语句之前。它的功能是指定一个包含原始数据的外部文件。
input语句用于向系统表明如何读入每一条数据记录。它的主要功能有:读入由语句指定的数据列,为相应的数据域定义变量名,确定变量的读入模式。
例如:
libname a ‘e:\data\’;
data a.student;
infile ‘e:\data\student.txt’;
input name height weight;
以上程序将目录“e:\data\”下的文本文件“student.txt”中的数据输入数据集student中,该数据集存放于目录“e:\data\”下。
(2)直接输入方式
数据量较少或操作者意志力坚强的情况下采用此种输入方式,在data语句之后写入如下语句:
input变量名1变量名2 …变量名n;
datalines;(在以前的版本下为cards,新版本下两者可通用)
… … … …(数据行)
… … … …(数据行)
… … … …(数据行)
;
datalines语句用于直接输入数据,标志着数据块的开始。
注意:这里的数据行中数据之间以空格分隔,当然也可以其它东东如逗号等来分隔,这里大家先以空格来分隔好了。因为不同的分隔方式下input语句要采取相应的控制选项,这些我们以后再讨论,这里我们还是省省力气吧。另外数据行输完后不能像其它语句那样直接在后面加上分号,而要另起一行输入分号,这样SAS才认为这是在输入原始数据而不是在搞别的什么。
例如:
libname a ‘e:\data\’;
data a.student;
input name $ height weight;(name后面的$符号表示变量name为字符型变量)
datalines;
Linda 171 51
Mary 168 50
Selinna 169 49
;
以上程序将直接建立数据集文件student,该数据集文件存放于目录“e:\data\”下。
3. 过程步
SAS程序的过程步表示一个处理过程,如排序、T检验、方差分析等等。过程步以关键字proc开始,后面紧跟着过程名,用以区分不同的程序步,并以关键字run结束。
一般的格式如下:
proc 过程名 选项列表;
……(其它语句);
……(其它语句);
run;
SAS程序中涉及的过程多达数百种,实现统计功能时常用的过程也有数十种之多,现将最为常用的过程名称及其所能实现的功能列入下表(表1.1),以便各位提前热热身。
表1.1 常用的过程名称及其功能
过程名
功 能
Sort
将指定的数据集按指定变量排序
Print
将数据集中的数据列表输出
tabulate
将数据按照指定的分类变量以表格的形式分类汇总
Means
对指定的数值变量进行简单的统计描述
Freq
对指定的分类变量进行简单的统计描述
Ttest
对指定的变量做t检验
Anova
对指定的变量做方差分析
npar1way
对指定的变量做非参数检验
Reg
对指定的变量做回归分析
Corr
对指定的变量做相关分析
Discrim
对指定的变量做判别分析
Cluster
对指定的变量做聚类分析
Chart
绘出低分辨率的统计图
4. 几个常用的重要过程
在进入一般统计学功能实现的内容之前,有关数据预处理和执行重要公共功能的过程大家有必要预先掌握,这里选出几个常用的和重要的过程进行讨论。
(1)对SAS文件进行操作的datasets过程
datasets过程是对数据文件进行管理操作的工具,利用它我们可以实现以下功能:
将SAS文件从一个库中拷入另一个库中;
对SAS文件进行重命名;
修复损坏的SAS文件;
删除SAS文件;
列出某一SAS库中所有的SAS文件;
列出一个SAS数据集的属性,如最后修改时间、数据是否压缩、数据是否索引等;
对SAS文件进行设置密码的操作;
向SAS数据集添加记录;
对SAS数据集的属性以及数据集内变量的属性进行修改;
创建或删除SAS数据集的索引;
创建并管理SAS数据集的核查文件;
创建或删除SAS数据集的完整性规则。
datasets过程的一般格式如下:
proc datasets <选项列表>;
age 当前文件名 相关文件名列表</选项列表>;
append base=数据集名 <data=数据集名 其它选项>;
audit 文件名<(操作密码)>; initiate;<其它代码;>
change 旧文件名1=新文件名1 <…旧文件名n=新文件名n> <选项列表>;
contents <data=数据集名> <其它选项>;
out=库标记 <其它选项>;
exclude 文件名 <其它选项>;(该语句只能在语句后出现,不能和select语句同时出现)
select 文件名 <其它选项>;(该语句只能在语句后出现,不能和exclude语句同时出现)
delete 文件名 <其它选项>;
exchange文件名1=交换文件名1 <…文件名n=交换文件名n> <选项列表>;
modify 文件名 <选项列表>;
<modify语句之从属语句>;
repair文件名 <选项列表>;
save文件名 <选项列表>;
run;
是不是太繁琐了,我都有些不耐烦了。不过我还是得写,已经写了嘛!不忍心浪费掉,最起码可以用来充充数,扩大一下篇幅。至于各位,嫌烦的可以略过此部分,想用的时候再来温习也不迟。下面我就不厌其烦地向各位介绍一下各选项及各条语句的含义和用法。
proc datasets语句后各选项的含义及用法见下表(表1.2)。
表1.2 proc datasets语句后各选项的含义及用法
选项
含义及用法
alter=转换保护密码
SAS文件设置有转换操作密码时用以验证操作的合法性,密码正确时代码才会被执行
details/nodetails
控制有关SAS文件的详细信息显示与否,前者为显示,后者不显示,默认值为后者
force
此选项具有两个功能:(1)在过程步的语句存在错误时仍然强制程序的执行;(2)在append语句中,两个数据集的变量不完全相同时仍然强制append语句的执行。
gennum=
控制对衍生数据集的处理方式,等号后可为all, hist, revert或某一整数
kill
此选项表示删除待处理的库中的所有文件,应慎用
library=库标记
用以指定所要处理的库
memtype=成员类型
指定处理所针对的库成员类型(文件类型),默认值为all(所有类型)
nolist
在日志文件中禁止对所处理文件目录的显示
nowarn
在语句中指定的文件不存在等情况下,禁止显示出错信息,强制程序继续执行
pw=操作密码
SAS文件设置操作密码时验证操作的合法性(包括读、写保护以及转换保护的文件)
read=读保护密码
SAS文件设置读保护密码时验证操作的合法性
age语句用于批量地重命名文件,按照当前文件和相关文件的排列顺序,依次将后一个文件名重命名给前一个文件,结果是最后一个文件被删除,当前文件名被废弃。
对此语句我所了解的就这么多,而且还是通过试验得出的结论,但总感觉还是理解的不对,哪位若有高见还请不吝赐教。
append语句执行向数据集添加记录的功能,选项“base=数据集名”用以指定要添加记录的数据集,“data=数据集名”则指定所要添加的记录所在的数据集,此选项若省略则默认为当前数据集(最近一次操作的数据集)。
audit语句用于对文件的核查,生成核查文件并对其进行管理;change语句以新文件名替换旧文件名;contents语句用于显示指定数据集或当前数据集的各种属性;语句用于将当前库中相应的文件拷贝到指定的库中,选项“out=库标记”用来指定文件要拷贝到的目标库;delete语句用于删除指定的文件;exchange语句的功能是将等号前后两个文件的文件名进行互换;modify语句用于修改文件各方面的属性;repair语句用于对指定的文件(受到过某种损坏)进行修复,使其恢复到可以使用的状态;save语句的功能是将其指定的文件保留,当前库中的其他所有文件则被删除。
(2)对数据文件中记录进行排序的sort过程
sort过程的功能是对指定数据集中的记录按照指定的变量进行排序。由于诸多过程有对数据集记录进行排序的需要,比如过程步中存在by语句(用以将数据文件分割为若干部分)的情况下,就需要按照by语句后的变量对数据先行排序,所以sort过程非常有用,而且非常常用。
sort过程的一般格式如下:
proc sort 选项列表;
by <descending> 变量名1 <变量名2 … 变量名n>;
run;
proc sort语句后各选项含义及其用法见下表(表1.3)。
表1.3 proc sort语句后各选项含义及其用法
选项
含义及用法
data=数据集名
用以指定sort过程所要处理的数据集,若省略则默认为最近建立或处理的数据集
date
此选项指定在不改变文件创建日期和修改日期的条件下对文件进行排序操作
out=数据集名
将排序后文件以指定的文件名存储,原文件不进行任何修改,若无此选项则将原文件覆盖
sortseq=排序依据
指定对字符型变量排序时依据的标准
reverse/equals/noequals
指定输出数据中的排序方式,三者分别表示将字符变量的次序翻转显示,在排序变量的各水平内部次序保持不变,在排序变量的各水平内部允许次序的改变
nopkey/noprecs
指定重复变量的消除方式,前者表示除去排序变量值重复的记录,后者表示除去所有变量值重复的记录
sortsize=
用以指定可用最大内存的大小,等号后为表示内存大小的数值及单位,比如10m
force
用以强制执行重复排序(对已建立索引的文件排序)过程
tagsort
指定在临时文件中仅存储排序变量和记录编号,以减少对磁盘空间的使用
by语句即用以指定排序所要依据的变量,变量可为数值型也可为字符型,其后可指定多个变量,sort过程在按照靠前的变量进行排序的情况下再按照靠后的变量进行排序。by语句中每个变量前可用descending/ascending选项来指定按照其排序的方式(降序或升序),默认状态为升序。
(3)将数据文件输出显示的print过程
print过程的功能是将SAS数据集的记录以一定的方式显示到输出设备(显示屏),可以显示其全部的变量或部分变量。利用此过程,你可以创建从简单列表到可进行数据汇总的各种报告的各种不同的表单。
print过程的一般格式如下:
proc print 选项列表;
by <descending> 变量名1 <变量名2 … 变量名n 其他选项>;
pageby 变量名;
sumby 变量名;
id 变量名;
sum变量名;
var变量名;
run;
proc print语句后可跟的选项含义及其用法见下表(表1.4)
表1.4 proc print语句后选项含义及其用法
选项
含义及用法
contents=文本
用以指定html内容文件中指向输出的链接的标识文本,等号后可为任何文本
data=数据集名
指定所要处理的数据集,等号后为数据集文件名
double
指定在相邻的记录间插入一空行
n=字符串
在报告的末尾或by变量各水平分组的末尾显示显示记录的数目,并以等号后的字符串对其进行标识
noobs
禁止记录编号在报告中的显示
obs=列标题
用以指定记录编号所在列的列标题
round
对未进行格式化的数值变量进行四舍五入,统一格式化为带两位小数的十进制数值
rows=page
规定页面格式,目前’page’是此选项唯一可用的值,表示在每一页中只显示一条记录的一行变量值,即一行中显示尽可能多的记录数
width=列宽度
指定列的宽度,可取的值有’full’,’minimum’,’uniform’,’uniformby’等,
heading=方向
取值可为v(vertical)或h(horizontal),表示列标题显示的方向(横向或纵向)
label
指定以变量标识作为相应的列标题,否则以变量名作为列标题
split=字符
首先此选项指定以变量标识作为列标题,以指定的字符作为列标题换行的标志
style=类型元素
指定报告中特定位置所要应用的类型元素(涉及很多内容,详细内容略)
by语句在所有过程中的用法都相同,即将数据集分割为若干小数据集分别进行处理。pageby语句用来控制换页时变量的显示方式,对于其后所指定的变量,相同的值不会显示在不同的页中,该变量某一值的记录在一页的剩余部分显示不下时,则从该值的第一条记录开始换行显示。sumby语句的作用和pageby语句相似,只不过是将换页的动作换为求和,对指定变量的每一值计算var变量的总计值。id语句的作用是用指定的变量值代替记录编号对每一条记录进行标识。sum语句用于指定报告中要进行求和操作的变量,var语句用于指定要在报告中显示的变量。
以上过程作用较为普遍,使用频率较高,有必要预先了解,以便于后面所讨论内容的顺利进行。
为节省篇幅,这里不进行实例演示。内容过于枯燥,可能的错误也难免,还请各位多多包涵。
SAS程序操作的大概情况就草草的这样介绍一下吧,说得太多的话我怕各位没有耐心看下去。更多的内容我想还是留在实际的例子中来介绍,这样大家可以好好的切身体会一下,然后就会印象深刻,实际运用起来也就得心应手了。