Leo Yeh's Blog

SAS Viya (127)

教學目標

初步了解如何透過 Python 和 R 授權存取 SAS Viya 分析平台中已被管理的資料之基本概念。

重點概念

首先 SAS Cloud Analaytic Service (CAS) 雲端分析服務為在 SAS Viya 分析平台的高效能處理資料管理和分析的軟體和硬體,簡稱為 CAS 伺服器,並且我們能夠透過 SAS Viya 分析平台進行資料管理,CAS 伺服器能夠多種資料來源載入資料至記憶體中,而當刪除記憶體中的資料表時,其不會影響資料來源中的資料檔案,所以 CAS 伺服器僅會將需要使用的資料自動載入記憶體中,以利後續進行高效能處理,此外 CAS 伺服器具有以下特點,分別為:

  1. 支援開放源始碼 Python 和 R 授權存取資料。
  2. 針對資料統一 UTF-8 編碼格式。
  3. 針對資料身份驗證和存取控管。
  4. 針對資料進行安全傳輸和加密儲存。
  5. 在多台伺服器記憶體中進行高效能處理資料。

接著 CAS 伺服器主要支援 Python 支援 3.4.0 以上版本和 R 支援 3.1.0 以上版本,並且我們主要皆能夠使用 SAS Scripting Wrapper for Analytics Transfer (SWAT) 介面連接至 CAS 伺服器,以及對於熟悉開放源始碼 Python 和 R 的資料科學家將能夠透過 Python 和 R 所對應的 SWAT 套件函式庫授權存取 SAS Viya 分析平台中已被管理的資料。此外 CAS 伺服器僅支援 UTF-8 統一編碼格式,所以我們必須將讀取至 CAS 伺服器中資料轉碼為 UTF-8 編碼格式,預設 CAS Session 設定為 UTF-8 能夠避免資料轉碼問題。至於所有在 CAS 伺服器中的資料皆能夠透過 CAS 資料館進行所有操作,同時 CAS 資料館針對多種資料來源,像是資料庫、檔案系統目錄和記憶體中檔案的存取,以及針對 CAS 資料館進行關聯以管理資料的身份驗證、存取控管、安全傳輸和加密儲存,當然 CAS 伺服器中的所有資料皆會被載入至記憶體中進行高效能的處理。

再來在 SAS Viya 分析平台中的資料,主要是儲存至 CAS 伺服器記憶體中的資料表,若載入至 Python 或 R 程式語言中使用則為 CASTable 物件,我們除了能夠透過 SWAT 套件函式庫授權針對 CASTable 物件進行資料操作和資料探索,更能夠將 CASTable 物件轉換為 Python 和 R 的 DataFrame 物件,以利 Python 和 R 的資料科學家能夠將 DataFrame 物件繼續用於訓練 Python 和 R 所提供最新的機器學習模型,至於要如何讓 Python 和 R 的資料科學家能夠透過 SWAT 套件函式庫授權存取 SAS Viya 分析平台中已被管理的資料,請參考下指令對照表。

Python R
載入 SWAT 套件 import swat library(swat)
連線 CAS 伺服器 conn = swat.CAS([hostname], [port], None, [access_token]) conn = CAS([hostname], [port], password=[access_token])
列出 CAS Session 資訊 conn.session.listSessions() cas.session.listSessions(conn)
變更 CAS Session 逾時時間 conn.session.timeout(time=43200) cas.session.timeout(conn, time=43200)
載入資料至 CAS 伺服器中 castbl = conn.read_csv([file_path], casout = dict(name=”[table_name]”, replace=True)) castbl = cas.read.csv(conn, file=[file_path], casOut=list(name=”[table_name]”,replace=TRUE))
列出 CAS 伺服器中的資料表資訊 print(conn.table.tableInfo()) print(cas.table.tableInfo(conn))
轉換 CASTable 物件為 DataFrame 物件 df = castbl.to_frame() df = to.data.frame(to.casDataFrame(castbl))
轉換 CAS 資料館中的資料表為 DataFrame 物件 df = conn.CASTable(caslib=[caslib_name],name=[table_name]).to_frame() df = to.data.frame(to.casDataFrame(defCasTable(conn, caslib=[caslib_name], tablename=[table_name])))

最後我們更能夠透過 SAS Viya 分析平台為企業組織落實資料治理,而 SAS 資料治理框架主要提供了全面的功能,其將能夠符合各種規模企業組織結構,並且建立和維持有效的資料治理計劃,以利能夠為企業組織中的所有使用者提供可被信任,即時性和高品質的資料,帶來更高的商業價值,至於更多有關 SAS 資料治理框架的詳細資訊,請參考官方白皮書

總結我們將能夠以 SAS Viya 分析平台將資料載入至 CAS 伺服器中進行資料管理,並且透過 Python 和 R 授權存取 CAS 伺服器中的資料,以利用於訓練 Python 和 R 所提供最新的機器學習模型,以及透過 SAS Viya 分析平台協助企業組織達到資料治理的願景。

相關資源

⬅️ Go back