Skip to main content
Version: v1

使用 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 進行連接的參數。

1_pg_sas_connect_pg

輸入以下參數進行連線設定。

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: 填入 canner
  • password : 填入 Personal Access Token (建立方式請參考 Personal Access Token  文件)
  • database: 填入 Canner Workspace 中的 SQL Name (e.g. wire_protocol_test_84077 )。SQL Name 位置位於 Workspace 中 Config 設定內容中。 1_oracle_dblink

當連線完成後,我們可以在 Log 日誌中看到以下連線成功訊息。

2_pg_sas_connect_successfully

步驟 2: 讀取 Canner Enterprise 中的資料​

在 PROC SQL 中使用 Canner Enterprise 的 SQL 語法,讀取在 Canner Enterprise 中此 Workspace 這張 Table lineitem_56783 的資料。

3_pg_sas_apply_proc_sql

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 資料的結果。

4_pg_sas_view_result

回到 Canner Enterprise 中,針對同樣的 Table 做測試,確認兩邊資料呈現一致,驗證資料成功連接。

5_pg_sas_check_canner_result

SQL Functions 支援列表​

FunctionsSupported
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✅
AVGPartial Support
1. Unsupport interval type.
SUMPartial Support
1. Unsupport interval and money type.
2. bigint addition overflow.
COT❌
LENGTHC❌
LOG 10❌
LOG 2❌
REPEAT❌
STRIP❌
TIME❌
TIMEPART❌