1. 為什麼要進行效能優化
在使用 FineBI 時,可能會出現以下情況影響使用。
存取儀表板時載入時間很長。
頻繁存取大數據量儀表板佔用了過多的伺服器記憶體而導致記憶體上限溢位。
過多的使用者併發存取的時候伺服器承受壓力過大導致伺服器當機。
頻繁地出現請求逾時。
更新時間長、更新報錯、更新卡住。
若出現以上現象,說明需要進行效能優化來提高 BI 的使用體驗。
2. 影響效能的因素
當系統出現效能問題時,首先應分析是什麼原因導致緩慢再分析如何改進。
2.1 伺服器效能
FineBI 作為純 Java 軟體,整合至伺服器的 BI 會繼承伺服器的資源。伺服器的虛擬記憶體、連結池的設定等等往往會導致很多效能問題。
2.2 資料準備
在製作自助資料集時,左右合併 有笛卡爾積時可能會出現資料膨脹進而導致更新失敗或者更新耗時長的問題。
SQL 資料集的預覽速度影響更新速度,可能導致取數預覽緩慢,引起更新卡住等問題。
上傳的資料中,存在長正文欄位,導致效能下降,嚴重的可能引起當機 。
2.3 製作分析主題
在製作儀表板時,若製作的圖表層級過多或者分組過多,或者單張儀表板製作組件數超過 30 個,就會引起儀表板展示速度緩慢。
3. 如何進行效能優化
3.1 伺服器效能優化
優化方法 | 文檔 |
---|---|
設定合理的伺服器配置 | 確認 FineBI 專案伺服器配置 |
配置當機風險參數 | 修改 FineBI 配置參數 |
若已經出現問題,需檢查問題原因並優化 | BI當機問題排查步驟 |
3.2 資料準備優化
3.2.1 資料格式
規範資料處理方式,左右合併 N:N 場景需要控制使用,注意避免產生大數據量 N:N 聯動。
3.2.2 資料處理
規範資料處理方式,左右合併 N:N 場景需要控制使用,注意避免產生大數據量 N:N 聯動 。
3.2.3 資料更新
避免出現大量的單表定時更新,並且更新時間比較分散,儘量使用 全局更新
更新時將同一時間的任務合併,放在一起更新,減少自助資料集重複更新。
控制更新頻率,減少白天使用系統時進行更新,或者白天使用系統時配置資源池參數。
3.2.4 資料使用
直連資料需檢查資料庫效能,保證資料庫取數速度。
謹慎使用實時資料:直連資料
3.3 儀表板優化
1)資料類型
大數據量時,建議將直連資料集切換為抽取資料
直連資料的資料庫執行速度慢,可優化 SQL 語句或者參考 直連資料中 SQL 參數使用 減少資料量。
2)資料計算
①查看製作的儀表板是否進行了大量的計算,例如使用了去重計數、表頭過濾、公式過濾等操作,可減少計算、尋求其他替代計算方式或者將儀表板計算行動到自助資料集中進行。
若對圖表大數據分組有要求,可進行 圖表大數據 GCC 升級
② DEF函式儘量不使用 earlier 函式計算,之後 BI 會上架 window 函式,代替earlier函式的使用場景。
③ 上百萬資料量,DEF函式儘量避免多層巢狀,防止導致效能過慢。
3)組件數量
除過濾組件外,其他組件數量建議不超過30。
過濾組件的條件數量建議不超過30。單個過濾組件,可能會有多個條件。
例如where 城市 = "無錫" or (城市 = "南京" and 城市 = "蘇州"),雖然可能前端只有一個過濾組件,但對應的過濾條件是3個。