HTAP 简介
2019獨角獸企業重金招聘Python工程師標準>>>
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)是一種新興的應用體系結構,它打破了事務處理和分析之間的“墻”。它支持更多的信息和“實時業務”的決策。
HTAP系統,主要有一下幾點好處:
數據不需要從操作型數據庫導入到決策類系統;
操作事務,實時地對分析業務可見;
上鉆下取等分析操作,時刻操作最新的數據;
減少對副本的要求。
總結:HTAP大白話理解:如何在OLTP單一數據系統上,提供OLAP操作。
現有技術
在單一系統中,同時應對OLTP和OLAP兩類業務,目前表現最好的方案是基于多版本的事務并發系統。MVCC的特點是寫不會阻塞讀操作,讀也不會阻塞寫操作,是屬于讀優化的數據庫系統。但MVCC的兩個缺點導致這類系統不太適合HTAP。(1)當分析查詢要掃描讀取的數據的版本過多,掃描舊版本所花費的時間很長,嚴重拖累性能。(2)MVCC的垃圾回收機制很浪費計算資源,拖累性能。
State-of-Arts
直接在單一數據源上不加區分的處理TP和AP的方案,目前還不能有效實現。
當前的方案是進行一個折中。采用快照的方式,分開處理OLTP和OLAP請求。讓OLAP的請求在OLTP的最新的一致性快照上執行。同時對外暴露一套接口,從而從邏輯來看是一套系統。雖然內部是分開處理OLTP和OLAP的。
這種折衷方案,重要的一點,就是保證快照是盡可能的保持“新”,快照不能太過滯后OLTP的數據。這就需要系統頻繁的做快照操作。
目前兩種流行的方案,一個是采用linux的系統快照能力,提供HTAP服務的方案,比如Hyper數據庫系統。另一種是類似HANA的方案,定期生成增量數據,然后合并到AP系統。如下圖。
?
轉載于:https://my.oschina.net/weiweiblog/blog/3029409
總結
- 上一篇: 半波对称振子方向图_HFSS:对称振子天
- 下一篇: 百度输入法输入汉字却显示英文