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程序操作的大概情況就草草的這樣介紹一下吧,說得太多的話我怕各位沒有耐心看下去。更多的內容我想還是留在實際的例子中來介紹,這樣大家可以好好的切身體會一下,然後就會印象深刻,實際運用起來也就得心應手了。