數據處理大致可以分成兩大類:聯機事務處理OLTP(on-line transaction processing),、聯機分析處理OLAP(On-Line Analytical Processing); OLTP是傳統(tǒng)的關系型數據庫的主要應用,,主要是基本的、日常的事務處理,,例如銀行交易,。 通俗的講,就是對數據的增刪改查等操作,。 OLAP是數據倉庫系統(tǒng)的主要應用,,支持復雜的分析操作,側重決策支持,,并且提供直觀易懂的查詢結果,。是對數據按不同維度的聚合,維度的上鉆,,下卷等,。 OLAP可以分為ROLAP,MOLAP和HOLAP ROLAP: 使用關系型數據庫或者擴展的關系型數據庫來管理數據倉庫數據,,而OLAP中間件支持其余的功能,。ROLAP包含了每個后端關系型數據庫的優(yōu)化,聚合,,維度操作邏輯的實現,,附件的工具以及服務等。所以ROLAP比MOLAP有更好的可伸縮性,。 比較典型的ROLAP有mondrian, Presto(facebook),。目前阿里的DRDS也可以看作是ROLAP的框架 MOLAP: 通過基于數據立方體的多位存儲引擎,支持數據的多位視圖。即通過將多維視圖直接映射到數據立方體上,,使用數據立方體能夠將預計算的匯總數據快速索引,。 比較典型的MOLAP框架有kylin(apache), Lylin(ebay)、pinot(linkedin)和druid 也就是說MOLAP是空間換時間,,即把所有的分析情況都物化為物理表或者視圖,,查詢的時候直接從相應的物化表中獲取數據, 而ROLAP則通過按維度分庫,,分表等方式,,實現單一維度下的快速查詢,通過分布式框架,,并行完成分析任務,,來實現數據的分析功能。MOLAP 實現較簡單,,但當分析的維度很多時,,數據量呈指數增長,而ROLAP在技術實現上要求更高,,但擴展性也較好,。 HOLAP: 混合OLAP結合ROLAP和MOLAP,得益于ROLAP較大的可伸縮性和MOLAP的快速查詢,。
|