SAS Viya (72)

教學目標

初步了解 SAS Viya 中 SAS Visual Analytics 報表效能調效的基本概念。

重點概念

首先 SAS 官方網站所提供的 SAS Viya 管理任務清單中建議每週需要監控每個使用者的工作負載的效能,並且嘗試優化最長的執行時間流程,針對這項目建議我們主要能夠在 SAS Environment Manager 中查看相關報表,像是應用程序活動報表、伺服器活動報表和其它活動報表,以利要尋找最近過去繁重工作量的跡象,以及尋找需要很長時間才能執行的報表。

接著我們需要考慮資料模型的設計、資料儲存的位置,資料傳送的效能,此時我們需要思考更多資料預處理的前置步驟,像是資料先匯整完成之後再進行傳送至 CAS 伺服器。而當資料匯整完成之後傳送至 CAS 伺服器,下一步就要查找需要很長時間才能打開的報表,此時可以查看有關每個報表在 SAS Visual Analytics 中打開所需時間的診斷資訊,我們主要在 SAS Visual Analytics Designer 中按下「Ctrl + Alt + q」使用查詢診斷工具進行報表開啟查詢診斷分析,此外按下「Ctrl + Alt + p」使用報表診斷工具查看效能摘要分析,請注意 SAS Report Viewer 中不提供這診斷工具,以及若是 SAS 應用程式或解決方案使用 SQL 查詢處理傳送到資料庫中,則應該使用資料庫管理員工具查看資料查詢效能。

再來 SAS Visual Analytics 可以針對在單一報表中物件顯示的資料量進行限制,這些限制主要在於提高效能,並且最大限度地降低網頁瀏覽器或報表資料服務崩潰的風險。若超出這些限制,報表物件的行為會有所不同,此時查詢診斷工具中若沒有產生相關日誌時,則我們應該將報表資料服務的 com.sas.bidata 元件進行啟用,報表資料服務的日誌將包含列出屬性和預期限制,它還將包含可能提供問題所在位置的其他錯誤,像是若出現「com.sas.cas.CASException: The analytic server action stopped because the number of elements in the result set exceeds the specified limit (50000)」的異常狀況訊息,則此異常代表已經超出 MaxRowsLookup 屬性值或 categoryCardinalityServerLimit 屬性值,此時我們就能夠嘗試調大 MaxRowsLookup 屬性值或 categoryCardinalityServerLimit 屬性值解決異常問題,至於若要啟用詳細的日誌內容,請執行以下步驟:

  1. 以管理員身份登錄「SAS Environment Manager」網站界面 。
  2. 點選「設定」->「所有服務」->「Report Data Service」。
  3. 編輯「logging.level」->「com.sas.bidata」將等級別設定為「DEBUG」。
  4. 按下「儲存」鈕進行儲存。
  5. 等待 30 秒讓設定值生效。

最後具有複雜過濾器,多個資料來源,每頁多個物件以及復雜計算的更複雜報表皆會需要更長時間才能正常顯示,因此在設計報告時需要特別注意這一點。此外報表中不同物件也會有不同的高基數臨界值設定,像是交叉資料表預設若伺服器傳回超過 40,000 列,則顯示錯誤訊息,以及我們也可以使用覆寫系統資料限制選項來指定物件的不同系統資料限制。

相關資源