使用 SAS
在此篇文章,我們將告訴您如何從 SAS 連線到 Canner Enterprise 中取得資料。
總覽
在 SAS 中,Canner Enterprise 支援以下兩種功能。第一種為 SQL Pass-Through Facility,透過此功能可以在 PROC SQL 中使用 Canner Enterprise 的 SQL 語法來取得資料。第二種為 SQL Functions,透過此功能,PROC SQL 會將 SAS 所使用的聚合函數例如 MIN, MAX, COUNT 等傳送到 Canner Enterprise 中執行。目前 Canner Enterprise 針對 SQL Functions 支援程度請參考文章最下方的支援列表。
使用 SQL Pass-Through Facility
我們在此示範使用 SQL Pass-Through Facility 的功能。
步驟 1: 在 SAS 中進行與 Canner Enterprise 的連線設定
首先,我們在 SAS 中新增一個 Program File,填入與 Canner Enterprise 進行連接的參數。
輸入以下參數進行連線設定。
libname A1
postgres server='testing-aws-standalone.dev.apps.cannerflow.com'
port=7432
user=canner
password='Mzc3ZTg4MzgtOGM2Zi00NWRmLTgwMWQtMzYwNGMxMzBhNWFiX1Rlc3RfU0FTOlpmTkdjTWVRUXFwbUhXV3N6ZlduSFdnc0dWb0s1MlUx'
database=wire_protocol_test_84077;
libname
: 建立資料館路徑postgres server
: 填入Canner Enterprise 的 Host 或是 IP 位址port
: 填入7432
user
: 填入 cannerpassword
: 填入 Personal Access Token (建立方式請參考 Personal Access Token 文件)database
: 填入 Canner Workspace 中的 SQL Name (e.g.wire_protocol_test_84077
)。SQL Name 位置位於 Workspace 中 Config 設定內容中。
當連線完成後,我們可以在 Log 日誌中看到以下連線成功訊息。
步驟 2: 讀取 Canner Enterprise 中的資料
在 PROC SQL 中使用 Canner Enterprise 的 SQL 語法,讀取在 Canner Enterprise 中此 Workspace 這張 Table lineitem_56783
的資料。
proc sql noerrorstop;
connect using A1;
Select * From connection to A1 (Select * From lineitem_56783 Limit 10);
quit;
SAS 提供 CONNECT TO
以及 CONNECT USING
兩種語法,在此我們以第二種作為範例,詳細其他語法使用方式請參考 SAS 產品文件的介紹。
完成: 測試連接結果
當成功讀取後,會在 SAS 畫面呈現讀取 Canner Enterprise 資料的結果。
回到 Canner Enterprise 中,針對同樣的 Table 做測試,確認兩邊資料呈現一致,驗證資料成功連接。
SQL Functions 支援列表
Functions | Supported |
---|---|
ABS | ✅ |
ARCOS | ✅ |
ARSIN | ✅ |
ATAN | ✅ |
CEIL | ✅ |
COALESCE | ✅ |
COMPRESS | ✅ |
COS | ✅ |
COUNT | ✅ |
EXP | ✅ |
FLOOR | ✅ |
INDEX | ✅ |
LENGTH | ✅ |
LENGTHN | ✅ |
LOG | ✅ |
LOWCASE | ✅ |
MAX | ✅ |
MIN | ✅ |
MOD | ✅ |
SIGN | ✅ |
SIN | ✅ |
SQRT | ✅ |
STD | ✅ |
SUBSTR | ✅ |
TAN | ✅ |
TRANWRD | ✅ |
TRIMN | ✅ |
UPCASE | ✅ |
VAR | ✅ |
ATAN2 | ✅ |
DATE | ✅ |
DATEPART | ✅ |
DATETIME | ✅ |
ROUND | ✅ |
TODAY | ✅ |
TRANSLATE | ✅ |
AVG | Partial Support 1. Unsupport interval type. |
SUM | Partial Support 1. Unsupport interval and money type. 2. bigint addition overflow. |
COT | ❌ |
LENGTHC | ❌ |
LOG 10 | ❌ |
LOG 2 | ❌ |
REPEAT | ❌ |
STRIP | ❌ |
TIME | ❌ |
TIMEPART | ❌ |