1. 程式人生 > >大資料環境下的多維分析技術

大資料環境下的多維分析技術

引言

之前我們有一篇文章《一文讀懂多維分析技術(OLAP)的進化過程》為大家介紹了多維分析技術(即聯機分析處理(On-Line Analytical Processing),簡稱OLAP)的前世今生及發展方向。正是由於多維分析技術在業務分析系統的核心功能中的不可替代性,隨著商業智慧系統的深入應用,分析系統的資料量呈指數級增長,原有依賴硬碟IO處理效能(包括傳統資料庫、多維立方體檔案)的多維分析技術遭遇到效能瓶頸。與此同時,隨著伺服器記憶體價格的下降,一種新的基於記憶體的OLAP技術架構出現了。這種新架構既能夠保證類似於MOLAP方式的高效能,也能基於更大的資料量進行分析,還不用定期將資料庫裡的資料重新整理到OLAP伺服器來防止資料過期。這種新的體系架構當之無愧地成為大資料環境下搭建多維分析功能的流行選擇,而

IBM Cognos的Dynamic Cubes就是它的代表作。

動態立方體(Dynamic Cubes)作為一種新的技術架構最先應用在Cognos的10.2.0版本。下面我們以Cognos的11.0版本來看看怎樣對動態立方體進行效能調優。

影響因素

動態立方體是以原有ROLAP技術為基礎,使用伺服器記憶體作快取的一種新型技術架構。它的響應效能的影響因素包括。

資料倉庫(資料集市):由於DynamicCubes的事實表資料都儲存在資料倉庫中,因此,有時資料倉庫的效能好壞會影響前端多維分析查詢的響應速度。在資料倉庫的多維資料模型中,需要注意:

  • 維表中的連線事實表的代理鍵的資料型別應該採用integer型別
  • 維表中的各個層級的層級鍵的資料型別應該採用integer型別

2.資料庫:提高資料庫的查詢效能,有助於提高最終多維分析展現的響應速度。

  • 有時候多維分析的效能嚴重依賴於資料庫執行大資料量多工查詢任務的效能
  • 資料庫基於的硬體資源(記憶體、CPU及IO)應該考慮到大資料量並行查詢的效能,因此基於物理機的資料庫效能當然比基於虛擬機器的更優
  • 儘量少用或者不用檢視,因為檢視的資料不是物理存在的
  • 最好採用分析型的MPP資料庫,因為多維分析都是針對大資料量的彙總查詢
  • 採用列儲存技術的資料庫對於大量併發並聯查詢效能更優
  • 要確保查詢效能最優化,可以通過資料庫的效能分析監控、執行計劃分析等工具
  • 索引的設計,對於非MPP資料庫,索引的設計對於查詢效能影響很大

動態立方體效能調優

1.由於動態立方體使用機器記憶體和CPU進行效能增強,所以在對應用伺服器的硬體進行評估時應該為將來的效能擴充套件留一定的預留空間。硬體評估可以通過Cognos提供的建模工具Cube Designer裡的“評估硬體需求”功能初步估算。如下圖所示。

cognos

2.在多維立方體模型設計時,使用模型驗證功能,可以知道影響效能的問題所在。可能的問題有:連線欄位型別、星形模型與雪花模型、過濾器的使用、檢視的使用等等。如下圖所示。

cognos

3.評估模型的複雜度。如果多維模型的維度和度量很多,資料量也很大,可以通過設計聚合表或者聚合記憶體來提升查詢效能。動態立方體會通過聚合感知技術找到最合適的聚合資料集進行查詢以提高查詢效能。如下圖所示。

cognos

4.JVM設定。動態立方體使用Java虛擬機器作為記憶體管理的容器載體,所以Cognos也提供了一些JVM堆設定來優化資料查詢效能。你可以在Cognos Administration介面上找到Query Service服務進行引數調整。如下圖所示。

cognos

5.您還可以通過Cognos的Dynamic Query Analyzer (DQA)工具來對動態立方體的查詢效能進行評估並得到優化建議。在進行評估之前,記得將Dynamic Cubes的工作日誌開啟,如下圖所示。

cognos

結束語

如需瞭解更多,請猛擊以下連結,發現驚喜!