OLTP、OLAP与HTAP
OLTP
On-Line Transaction Processing聯機事務處理過程(OLTP)
也稱為面向交易的處理過程,其基本特征是前臺接收的用戶數據可以立即傳送到計算中心進行處理,并在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一。
這樣做的最大優點是可以即時地處理輸入的數據,及時地回答。也稱為實時系統(Real time System)。衡量聯機事務處理結果的一個重要指標是系統性能,具體體現為實時請求-響應時間(Response Time),即用戶在終端上輸入數據之后,到計算機對這個請求給出答復所需要的時間。OLTP是由前臺、應用、數據庫共同完成的,處理快慢以及處理程度取決于數據庫引擎、服務器、應用引擎。
OLTP 數據庫旨在使事務應用程序僅寫入所需的數據,以便盡快處理單個事務。
?
OLTP特征
支持大量并發用戶定期添加和修改數據。
反映隨時變化的單位狀態,但不保存其歷史記錄。
包含大量數據,其中包括用于驗證事務的大量數據。
結構復雜。
可以進行優化以對事務活動做出響應。
提供用于支持單位日常運營的技術基礎結構。
個別事務能夠很快地完成,并且只需訪問相對較少的數據。OLTP 旨在處理同時輸入的成百上千的事務。
實時性要求高。
數據量不是很大。
交易一般是確定的,所以OLTP是對確定性的數據進行存取。(比如存取款都有一個特定的金額)
并發性要求高并且嚴格的要求事務的完整、安全性。(比如這種情況:有可能你和你的家人同時在不同的銀行取同一個帳號的款)。
?
OLAP
聯機分析處理OLAP是一種軟件技術,它使分析人員能夠迅速、一致、交互地從各個方面觀察信息,以達到深入理解數據的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。其中F是快速性(Fast),指系統能在數秒內對用戶的多數分析要求做出反應;A是可分析性(Analysis),指用戶無需編程就可以定義新的專門計算,將其作為分析的一部 分,并以用戶所希望的方式給出報告;M是多維性(Multi—dimensional),指提供對數據分析的多維視圖和分析;I是信息性(Information),指能及時獲得信息,并且管理大容量信息。
OLAP展現在用戶面前的是一幅幅多維視圖。
?
維(Dimension):是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維(時間維、地理維等)。
維的層次(Level):人們觀察數據的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面(時間維:日期、月份、季度、年)。
維的成員(Member):維的一個取值,是數據項在某維中位置的描述。(“某年某月某日”是在時間維上位置的描述)。
度量(Measure):多維數組的取值。(2000年1月,上海,筆記本電腦,0000)。
OLAP的基本多維分析操作有鉆取(Drill-up和Drill-down)、切片(Slice)和切塊(Dice)、以及旋轉(Pivot)等。
鉆取:是改變維的層次,變換分析的粒度。它包括向下鉆取(Drill-down)和向上鉆取(Drill-up)/上卷(Roll-up)。Drill-up是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;而Drill-down則相反,它從匯總數據深入到細節數據進行觀察或增加新維。
切片和切塊:是在一部分維上選定值后,關心度量數據在剩余維上的分布。如果剩余的維只有兩個,則是切片;如果有三個或以上,則是切塊。
旋轉:是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。
?
數據倉庫與OLAP的關系是互補的,現代OLAP系統一般以數據倉庫作為基礎,即從數據倉庫中抽取詳細數據的一個子集并經過必要的聚集存儲到OLAP存儲器中供前端分析工具讀取。
OLAP系統按照其存儲器的數據存儲格式可以分為關系OLAP(RelationalOLAP,簡稱ROLAP)、多維OLAP(MultidimensionalOLAP,簡稱MOLAP)和混合型OLAP(HybridOLAP,簡稱HOLAP)三種類型。
ROLAP
ROLAP將分析用的多維數據存儲在關系數據庫中并根據應用的需要有選擇的定義一批實視圖作為表也存儲在關系數據庫中。不必要將每一個SQL查詢都作為實視圖保存,只定義那些應用頻率比較高、計算工作量比較大的查詢作為實視圖。對每個針對OLAP服務器的查詢,優先利用已經計算好的實視圖來生成查詢結果以提高查詢效率。同時用作ROLAP存儲器的RDBMS也針對OLAP作相應的優化,比如并行存儲、并行查詢、并行數據管理、基于成本的查詢優化、位圖索引、SQL的OLAP擴展(cube,rollup)等等。
MOLAP
MOLAP將OLAP分析所用到的多維數據物理上存儲為多維數組的形式,形成“立方體”的結構。維的屬性值被映射成多維數組的下標值或下標的范圍,而總結數據作為多維數組的值存儲在數組的單元中。由于MOLAP采用了新的存儲結構,從物理層實現起,因此又稱為物理OLAP(PhysicalOLAP);而ROLAP主要通過一些軟件工具或中間軟件實現,物理層仍采用關系數據庫的存儲結構,因此稱為虛擬OLAP(VirtualOLAP)。
HOLAP
由于MOLAP和ROLAP有著各自的優點和缺點(如下表所示),且它們的結構迥然不同,這給分析人員設計OLAP結構提出了難題。為此一個新的OLAP結構——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP兩種結構的優點結合起來。迄今為止,對HOLAP還沒有一個正式的定義。但很明顯,HOLAP結構不應該是MOLAP與ROLAP結構的簡單組合,而是這兩種結構技術優點的有機結合,能滿足用戶各種復雜的分析請求。
?
OLTP與OLAP對比
?
HTAP
數據庫系統一般可以按照負載類型分成操作型數據庫(Operational Support System)和決策型數據庫(Decision Support System)。操作型數據庫主要用于應對日常流水類業務,主要是面向消費者類的業務;決策型數據庫主要應對的是企業報表類,可視化等統計類業務,主要面向企業類的業務。
針對兩類系統的數據管理和系統設計方式都有很大差異。 ?(1)對OLTP的數據模型采用基本的約束E-R圖模型,而OLAP的數據模型則需要采用特殊的“星型模型”,數據立方等數據倉庫相關的技術。 ?(2)對OLTP的數據存儲通常采用行式組織,而OLAP采用列式組織。 ?(3)OLTP的業務通常對實時要求比OLAP高很多。 ?(4)傳統的數據庫,為了同時支持兩類業務。通常采用兩個數據源, 分別對兩套系統進行優化設計。
OLTP的數據定期會通過etl(提取,轉換,加載)工具把數據同步導入OLAP系統中。這就涉及到數據源滯后的問題。 OLAP的數據滯后,導致分析出來的結果時效性不夠,對決策支持類系統的要求不夠。比如說,雙11期間,用戶購物的行為和推薦系統的推薦結果之間的時間差越短,越有可能提高銷量。
HTAP是混合 OLTP 和 OLAP 業務同時處理的系統,2014年Garnter公司給出了嚴格的定義:混合事務/分析處理(HTAP)是一種新興的應用體系結構,它打破了事務處理和分析之間的“墻”。它支持更多的信息和“實時業務”的決策。
直接在單一數據源上不加區分的處理TP和AP的方案,目前還不能有效實現。
當前的方案是進行一個折中。采用快照的方式,分開處理OLTP和OLAP請求。讓OLAP的請求在OLTP的最新的一致性快照上執行。同時對外暴露一套接口,從而從邏輯來看是一套系統。雖然內部是分開處理OLTP和OLAP的。
這種折衷方案,重要的一點,就是保證快照是盡可能的保持“新”,快照不能太過滯后OLTP的數據。這就需要系統頻繁的做快照操作。
目前兩種流行的方案,一個是采用linux的系統快照能力,提供HTAP服務的方案,比如Hyper數據庫系統。另一種是類似hana的方案,定期生成增量數據,然后合并到AP系統。如下圖。
總結
以上是生活随笔為你收集整理的OLTP、OLAP与HTAP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎么编写对称图案_如何使用o
- 下一篇: The transaction log