Leo Yeh's Blog

SAS Viya (48)

教學目標

初步了解 SAS Viya 3.4 平台整合程式開發應用的基本概念。

重點概念

首先 SAS Viya 3.4 平台能夠讓開發者透過不同的程式語言存取 CAS,同時也提供 CAS 和 Mircoservices 的 REST 介面,並且在預設皆是以簽署加密憑證的方式與 CAS 進行溝通,也就是採用 HTTPS 安全連線。

接著 SAS Viya 3.4 針對不同程式語言有提供不同的存取介面,主要有三種,分別為 Native、SWAT 和 REST,所謂 Native 也就是僅原生支援 SAS 程式語言。所謂 SWAT 全名為 SAS Scripting Wrapper for Analytics Transfer,其主要能夠讓開放源始碼的程式能夠直接與 CAS 進行溝通,預設服務連接埠為 5570,像是 Python 、 R 和 Lua 皆有 SWAT 客戶端的函式庫,其特點在於使用二進位協定與 CAS 進行溝通,回傳格式為二進位,因此非常有效率,同時也支援多重驗證機制,像是 LDAP、Kerberos、…等。所謂 REST 全名為Representational State Transfer,其主要是以 HTTP/HTTPS 的方式與 CAS 進行溝通,回傳格式為 JSON,預設服務連接埠為 8777,其特點在於能夠彈性支援任何支援 REST 存取介面的程式語言,請參考下表。

Program Native SWAT REST
SAS O X O
Python X O O
R X O O
Lua X O O
Java X X O
Other X X O

再來針對 Python 程式語言,我們主要有三種方式與 CAS 進行溝通,分別為:

  1. Jupyter Notebook
  2. Python Command Line
  3. Batch

所謂 Jupyter Notebook 主要是以網站互動的方式讓開發者能夠以撰寫筆記的方式與 CAS 進行溝通,以利進行商業分析之應用,當然也支援目前最流行的 Anaconda 開放資料科學平台,但請注意目前 SWAT 僅支援 Linux 平台。此外我們在使用 SWAT 與 CAS 進行溝通之前必須先設定 CAS_CLIENT_SSL_CA_LIST 環境變數指定簽署加密憑證檔案。

最後 SAS Viya 3.4 平台更提供 REST 介面,也就是 REST API 能夠讓支援大部份的程式語言,以利進行整合應用。同時在 SAS Viya 3.4 平台中提供三種 REST API,分別:

  1. CAS REST API
  2. HTTP Proxy REST API
  3. Consul REST API

所謂 CAS REST API主要是讓開發者存取 CAS 和 CAS Grid,能夠取得 CAS 處理程序的狀態和啟動新的工作階段、取得作業系統相關資訊以及 CAS Grid 相關資訊,其主要是執行在 Controller 主機上,預設連接埠為 8777。所謂 HTTP Proxy 主要是讓開發者存取 SAS Microservice 的 REST API 。其主要有四種請求存取資料的方式,分別為讀取資料、插入資料、更新資料和刪除資料,並且回傳格式主要有二種,分別為 XML 或 JSON。所謂 Consul REST API 則主要是 SAS Configuration Server 的 REST API,其主要是提供 SAS Viya 服務的狀態資訊。

相關資源

⬅️ Go back