Leo Yeh's Blog

SAS Viya (128)

教學目標

了解如何透過 SAS Data Studio 準備資料工具搭配 SAS Visual Analytics 報表工具同時解決業務單位和資訊單位的痛點。

重點概念

首先 SAS Viya 分析平台中的 SAS Data Studio 應用程式用於執行簡單的自助資料準備任務,以利準備用於 SAS Visual Analytics 應用程式設計報表所需要的資料,並且我們能夠針對每個不同應用程式所需要的資料皆能夠建立對應新計畫,又稱為資料計畫,新計畫中主要包括資料表的執行轉換的所有步驟,並且我們能夠根據需求變更資料計畫中的來源資料,所以我們能夠建立一個計畫適用於相同格式的來源資料,在過去這些工作皆要由資訊人員來協助,但是現在商業分析師想要什麼樣的資料格式設計報表,皆能夠透過 SAS Data Studio 應用程式準備出任何格式的資料。此外每個資料計畫皆能夠儲存為內容檔案,並且按照資料夾結構的方式進行儲存和進行權限控管,資訊人員將能夠針對不同業務單位的商業分析師給予授權的資料進行自助式的資料準備,同時又能夠滿足資安規範和稽核法規的要求。

接著在 SAS Data Studio 應用程式中針對資料轉換,主要有四種轉換類型,讓我們能夠透過直觀式的拖拉點選進行網站界面操作方式就能夠立即完成資料轉換的需求,分別為:

  1. 欄轉換:主要包括分割、刪除空白字元、重新命名、移除、轉換欄和變更大小寫。
  2. 列轉換:主要包括唯一識別碼、篩選和轉置。
  3. 多重輸入轉換:主要包括附加和聯結。
  4. 自訂轉換:主要包括代碼和計算欄。

更重要的是我們能夠針對資料連續增加轉換,此時多個轉換將會連接為多個步驟,像是我們能夠先執行針對不同日期區間進行列轉換篩選,接著與第二個資料表格進行聯結,再來與第三個資料表格進行聯結,最後針對聯結之後的欄位進行重新命名或移除,基本上就能夠將資料縮小至一定範圍區間內的資料,並且聯結多個資料,以及針對欄位名稱進行正規化調整,以利商業分析師從資料層面最根本改善報表呈現的效能問題,而無再等待資訊人員開發 ETL 資料批次程式來改善報表呈現的效能問題。同時每次在轉換之後皆能夠立即呈現已轉換的資料結果列,此時預設為 100 筆資料,這個功能不僅能夠讓商業分析師立即看到 CAS 資料館所儲存的大數據經過轉換之後的篩選結果,針對不適當的結果立即進行調整之外,更能夠降低每個互動轉換操作時系統查詢所需的資源,以利多位商業分析師同時透過 SAS Data Studio 進行資料轉換。此外 CAS 資料館針對單一資料來源的資料表格進行聯結不特別,但是同時針對不同資料來源的資料表格皆會在記憶體內進行聯結運算,這就是 SAS Viya 分析平台最特別之處,目前 SAS Viya 分析平台官方已經支援許多資料來源,像是 Spark、Impala、Hadoop、Teradata、SAP HANA、Amazon Redshit、Google BigQuery、… 等每個資料來源將會有不同資料轉換的程式碼開發方式,但是在 SAS Data Studio 中商業分析師無需撰寫任何程式碼,就能夠透過拖拉點選的網站界面操作方式來準備資料。

再來雖然商業分析師可以不用撰寫任何程式碼,就能夠透過拖拉點選的網站界面操作方式來準備資料,但是還是有些商業分析師習慣撰寫 SAS 程式碼和 SQL 查詢語法,此時就能夠使用自訂轉換的功能,所謂自訂轉換主要有計算欄和代碼,所謂計算欄主要將能夠進行資料欄位的四則運算,像是輸入「NUM / 100」就能夠將數字轉換為百分比單位,所謂代碼主要將能夠撰寫 SAS 程式碼,分別為 DATA 步驟和 CASL,若有寫過 SAS 程式碼的商業分析師就會發現 SAS 程式碼中的 DATA 步驟相較於其它 Python 和 R 程式碼相對容易上手,同時資料處理效能更佳,所以若是熟悉 DATA 步驟的商業分析師就能夠善用此功能進行資料轉換,至於 CASL 主要是用於 SAS Viya 分析平台中 CAS 伺服器所使用的程式語言,我們僅需要知道透過 CASL 代碼將能夠進行標準 SQL 查詢操作,請參考以下 CASL 代碼。

1
2
3
4
5
6
7
loadActionSet 'fedSql';
queryCode='create table "'||_dp_outputCaslib||'"."'||_dp_outputTable||'" {options replace=true}
as select ID, count(*) as "ID_Count"
from "'||_dp_inputCaslib||'"."'|| _dp_inputTable ||'"
group by ID';
print queryCode;
ExecDirect / query=queryCode;

至於為何有許多 dp 開頭的變數名稱呢?因為每次執行計畫時,資料表格和 CAS 資料館皆可能會變更,因此為了避免錯誤,則我們必須在 CASL 代碼中使用變數取代資料表格和 CAS 資料館名稱,請參考下表。

變數名稱 說明
_dp_inputCaslib 輸入CAS 資料館名稱的變數。
_dp_inputTable 輸入資料表格名稱的變數。
_dp_outputCaslib 輸出 CAS 資料館名稱的變數。
_dp_outputTable 輸出資料表格名稱的變數。

最後商業分析師根據本身的需求自助準備所需要的資料,此時將會建立和儲存許多的資料計畫,每個資料計畫相當於一個 ETL 資料批次程式,在過去大企業中業務單位的商業分析師會根據需求和資訊單位的資訊人員討論需要撰寫的 ETL 資料批次,然後等待測試和驗證,而到系統上線至少要一週以上的時間,然而在如今業務單位需要透過強大的工具在短時間內呈現含有高價值的業務報表呈現給高階長官,此時一週的時間,對於高階長官來說非常慢等不及了,此時若透過 SAS Data Studio 準備資料工具搭配 SAS Visual Analytics 報表工具,將能夠縮短時間至半天,甚至更短的時間就能夠設計出含有高價值的業務報表呈現給高階長官。此外針對每個計畫在業務單位的商業分析師能夠很簡單的建立個別的排程工作,同時業務單位的資訊人員無需再花費大量時間幫業務單位的商業分析師開發 ETL 資料批次,排程批次和維運批次等重複性的任務,更能夠花費更多時間參與更多專案的開發工作,如此解決方案能夠達到業務單位和資訊單位彼此雙贏的局面,何樂而不為呢?您說是吧!

相關資源

⬅️ Go back