書名: 金融商業數據分析:基于Python和SAS作者名: 張秋劍 張浩 周大川 常國珍本章字數: 1453字更新時間: 2021-12-01 13:52:40
2.2 訪問數據
如何利用SAS訪問多個SAS數據集?如何利用SAS訪問業務數據庫中的數百張數據表并寫出數據分析報告?
這些情況下,我們就要用到SAS邏輯庫了。
SAS數據庫分為永久數據庫和臨時數據庫。永久數據庫,顧名思義,會永久保存存放在其中的數據,直到你刪除它,例如SAS自帶的SASHELP、SASUSER數據庫。而臨時庫的文件會在每次關閉SAS軟件后自動刪除,例如WORK庫。注意,永久數據庫和臨時數據庫的差別在于退出SAS時是否保留其中的文件,而不是數據庫是否還存在。
在Windows系統中,SAS是以路徑為基礎的方式組織數據庫的。為了方便使用數據庫,我們需要為每個路徑下的數據庫或者存放SAS文件的文件夾指定一個邏輯名,例如WORK,選中WORK庫點擊右鍵查看屬性,則可以看到其所存放文件的路徑。
SAS邏輯庫的命名規則:
1)首字符必須為英文字母(A~Z,包括大寫和小寫)或下劃線(_);
2)由數字、字母和下劃線組成;
3)最多不超過8個字符;
4)不區分大小寫[1]。
在進入SAS軟件時,系統會自動指定一些邏輯庫供用戶使用。
- SASHELP:是SAS系統在運行時會用到的系統文件,對環境的設置數據都會存放在此。用戶不要修改該數據文件夾中的數據。
- SASUSER:SAS系統會設置SASUSER數據文件夾路徑。若用戶沒有設置其他路徑,SASUSER指定的路徑或文件每次都相同。該路徑下的數據文件是永久存在的。如果有SAS數據文件要存儲,用戶無須在自己的程序代碼中設置任何數據文件夾名稱,便可以使用SASUSER數據文件夾來存儲SAS數據文件。其物理位置為C:\Users\...\Documents\My SAS Files\9.3。
- WORK:SAS系統會設置WORK數據文件夾路徑。用戶操作產生的臨時SAS數據文件會放在該路徑下。當離開SAS系統時,SAS系統便會將該路徑清除,不會將數據存儲下來。
下面詳細介紹如何通過SAS邏輯庫訪問數據。
2.2.1 SAS EG實現方式
1. 連接計算機中的SAS數據文件夾
1)在“工具”菜單下選擇“分配項目邏輯庫”選項,然后在名稱欄輸入數據庫的邏輯名BANKDATA(需要符合邏輯庫的命名規則),并選擇“local-本機SAS服務器”,如圖2-6所示。

圖2-6 “分配項目邏輯庫”選項
2)選擇引擎類型為“文件系統”,并在路徑選項下單擊“瀏覽”按鈕,找到存放SAS文件的文件夾,或者直接輸入地址,比如“E:\bankdata”,單擊“下一步”按鈕鏈接到SAS文件夾,如圖2-7所示。

圖2-7 指定邏輯庫的引擎
3)在左下角的服務器列表中選擇“服務器→本地”,單擊“刷新”按鈕即可查看剛剛定義的邏輯庫。
2. SAS連接遠程數據庫
1)首先建立ODBC數據源。以Windows 7系統為例,在“控制面板→系統和安全→管理工具”路徑下選擇“數據源(ODBC)”進行配置,打開“用戶DSN”選項卡,選擇“添加”,選擇數據源的數據庫類型后,依次單擊“下一步”按鈕,按要求填寫相關信息即可。
2)同連接數據文件夾中的步驟1。
3)引擎類型選擇“數據庫系統”,并在引擎下選擇對應的數據庫接口,然后按照要求輸入服務器的地址、用戶名及密碼,如圖2-8所示。

圖2-8 引擎類型選擇“數據庫系統”
4)在左下角的服務器列表中選擇“服務器→本地”,單擊“刷新”按鈕即可查看剛剛定義的邏輯庫。
2.2.2 SAS程序實現方式
1. 連接計算機中的SAS數據文件夾
打開SAS EG軟件,在菜單欄下選擇“新建程序”,在打開的界面中輸入下面的程序代碼,然后單擊“運行”按鈕。代碼如下所示:
libname bankdata "E:\bankdata";
libname為關鍵詞,表示要建立一個邏輯數據庫;bankdata為邏輯庫名,最長為8位字符;E:\bankdata表示數據存放在此路徑下,必須用單引號或雙引號括起來。
2. SAS遠程連接數據庫
在菜單欄下選擇“新建程序”,在打開的界面中輸入下面的代碼,然后單擊“運行”按鈕。
libname bankdata db2 user=admin password = "****" datasrc=bank;
libname與bankdata的含義同上;db2表示實現DB2數據庫的訪問;user和password分別為訪問的數據庫的用戶名和密碼,密碼需要用引號引起來;datasrc為模式,表示數據庫DB2下的某個數據源,一般采用默認狀態。
- C++ Primer習題集(第5版)
- DevOps with Kubernetes
- JavaScript全程指南
- iOS 9 Game Development Essentials
- Scala Reactive Programming
- Kivy Cookbook
- Android應用開發實戰
- 深入理解BootLoader
- C陷阱與缺陷
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- C# 7.0本質論
- Mastering Machine Learning with scikit-learn
- INSTANT Apache Maven Starter
- Python編程:從入門到實踐(第2版)
- Java語言GUI程序設計