跳至主要内容
版本:v2

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 中,點擊 Share 按鈕並切換到 PostgreSQL Wire Protocol 頁面中。 1_sas

當連線完成後,我們可以在 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

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