1.OLTP與OLAP的基本概念與主要區別
1.1 OLTP是什么
OLTP的全稱是On-line Transaction Processing,中文名稱是聯機事務處理。其特點是會有高並發且數據量級不大的查詢,是主要用於管理事務(transaction-oriented)的系統。此類系統專注於short on-line-tansactions 如INSERT, UPDATE, DELETE操作。通常存在此類系統中的數據都是以實體對象模型來存儲數據,並滿足3NF(數據庫第三范式)。
1.2 OLAP是什么
OLAP的全稱是 On-line Analytical Processing,中文名稱是聯機分析處理。其特點是查詢頻率較OLTP系統更低,但通常會涉及到非常復雜的聚合計算。 OLAP系統以維度模型來存儲歷史數據,其主要存儲描述性的數據並且在結構上都是同質的。
1.3 OLAP與OLTP的主要聯系和區別
既然OLTP中存放了大量的細節數據,為什么不直接在OLTP上進行分析處理呢?
由於OLTP主要是為了操作數據而設計(操作系統),用於處理已知的任務和負載:常見的優化在於主碼索引和散列,檢索特定的記錄。去優化某一些特定的查詢語句。
而OLAP則是為了分析數據而設計(數據倉庫),其查詢的方式往往是復雜且未知的,通常會涉及大量數據在匯總后的計算,這種需要基於多維視圖的數據操作在OLTP上執行的時候性能將是非常差的,並且是也是極其危險的。
但是OLAP系統數據來源與各種OLTP數據庫。因為OLTP系統存儲的數據往往是異質的,所以OLAP系統需要把各種來源於OLTP的異質數據通過轉換(ETL)做到同質並且合並。
如下是OLTP與OLAP的區別:

2.1 OLAP分類:ROLAP,MOLAP,HOLAP 根據存儲數據方式不同划分
(1)ROLAP RelationalOLAP 關系OLAP—數據存儲在RDMS中
這是一種通過在RDMS后端服務和客戶前端之間建立中間層的OLAP實現方式。通過RDMS來存儲和管理數據倉庫數據,而通過OLAP中間件來實現多維數據上的操作映射為標准關系操作。其優點在於可以利用RMDS中本身固有的一些功能,例如: 本質上來講 “slicing and dicing”的操作等同於在SQL語句中添加“WHERE”子句。
(2)MOLAP MultidimensionalOLAP 多維OLAP—數據存儲在multidimensional cube中
這些服務器通過基於數據的多維存儲引擎,支持數據的多維視圖。能夠將多維視圖直接映射到數據立方體數組結構。其數據都存在多維數據立方體(multidimensional cube)中,以專有的格式存儲。使用數據立方體的優點是能夠對預計算的匯總數據進行快速索引,尤其是對"slicing and dicing"有着非常優秀的支持。
(3)HOLAP HybridOLAP 混合型OLAP 尚無明確定義-根據不同場景變化
HOLAP結合了ROLAP和MOALP技術,從而繼承了ROLAP的伸縮性強和MOLAP快速計算的優點。例如HOLAP利用多維數據集技術來提高性能,而當需要詳細數據時,HOALP可以從多維數據“鑽取”到底層的RDMS中去獲取數據。
2.2 OLAP的基本操作
在多維數據模型中,數據組織在多維空間,每維包含由概念分層定義的多個抽象層。這種組織為用戶從不同角度觀察數據提供了靈活性。
上卷:roll-up drill-up
通過一個維的概念分層向上攀升或者通過維歸約在數據立方體上進行聚集。比如城市統計數據維度到省級統計數據維度。
下鑽:drill-down
下鑽是上卷的逆操作,由不太詳細的數據到更詳細的數據。下鑽可以通過沿維的概念分層向下或引入附加的維來實現。
切片和切塊:slice and dice
切片(slice)1是在給定的立方體的一個維上進行選擇,從而定義一個子立方體。切塊(dice)操作通過兩個或多個維上進行選擇,定義一個子立方體。
轉軸:pivot
是一種目視操作,就像是一個二維表的行列轉換,兩個維度的互換。
鑽過:drill-across
其執行會涉及多個事實表的查詢
鑽透:drill-through
下鑽透過多維數據立方直達RDMS表。
2.3 OLAP的12准則
OLAP的概念最早是由關系數據庫之父E.F.Codd於1993年提出的,他同時提出了關於OLAP的12條准則:
准則1: OLAP模型必須提供多維概念視圖 Multidimensional conceptual view OLAP
在分析中,企業天然就是一個多維模型,例如,利潤可以按區域,產品,時間,或方案(如實際,預算或預測)等多種維度進行查看。多維數據模型能讓用戶更直接和方便的操作數據,包括“slicing and dicing”
准則2: 透明性 Transparency
當OLAP以用戶習慣的方式提供電子表格或圖形顯示時,這對用戶應該是透明的。OLAP應該是開發系統架構的一部分,這個架構能按用戶的需要嵌入到任何地方,而不會對主機工具的功能產生副作用。用戶不應該接觸到提供給OLAP工具的數據源,這些數據可能是同構的或是異構的。
准則3:存取能力 Accessibility
OLAP工具應該有能力利用自有的邏輯結構訪問並接入不同結構就(heterogeneous)的數據源,並且進行必要的轉換以提供給用戶一個連貫的展示。讓OLAP的用戶不需要關心物理數據的來源。
准則4:穩定的報表能力 Consistent reporting performance
OLAP工具的性能不應該因維度增加而受到明顯的影響
准則5:客戶/服務器體系結構 Client/server architecture
OLAP工具的服務器端應該足夠的智能讓多客戶的以最小的代價連接。OLAP服務應該有能力映射和持久化不同數據庫的數據。
准則6:維的等同性准則 Generic dimensionality
每個數據維度應該具有等同的結構和操作能力,不應該有所區別。
准則7:動態稀疏矩陣處理 Dynamic sparse matrix handling
OLAP服務器的物理結構應能處理最優稀疏矩陣
准則8: 多用戶支持能力 Multi-user support
OLAP應提供並發獲取和更新訪問,同時保證數據服務完整性和安全性的能力
准則9:非受限的跨維操作 Unrestricted cross-dimensional operations
計算設備必需允許跨數據維度的計算和數據操作,不能限制任何數據單元間的關系。
准則10直觀的數據操縱 Intuitive data manipulation
合並路徑中固有的數據操作,例如向下鑽取或縮小,應通過對分析模型單元的直接操作來完成,而不需要使用菜單或跨用戶界面多次來回操作。
准則11:靈活的報表生成 Flexible reporting
報表設備應該能以用戶需要的任何方式展現信息
准則12:不受限的維與聚集層級 Unlimited dimensions and aggregation levels
數據維度數量應該是無限的,用戶在每個通用維度上定義的聚集聚合層次應該是無限的。