To digitally transform the business, AI must be real-time. For AI to be real-time, we need real-time analytics.[1]
Hybrid transaction/analytical processing (HTAP) is an emerging application architecture that "breaks the wall" between transaction processing and analytics. It enables more informed and "in business real time" decision making.
——Defined by Gartner
背景篇-引言
自 StoneDB 開源的第一天,石原子科技就說要做真正的 HTAP,那么究竟石原子科技對 HTAP是怎么理解的?解讀一門技術,就要從其發展背景入手,本篇文章中石原子科技將從 OLTP 和 OLAP 最近的發展介紹及各自遇到的問題為基礎,引出 HTAP 相關概念。
OLTP:特點、適用場景、遇到的問題、最新進展
對事務型數據進行處理稱為聯機事務處理 (On Line Transaction Processing, OLTP)。OLTP 系統其主要的使用場景為記錄日常運營中與業務系統之間的交互記錄,并且支持以該數據進行查詢分析以獲得分析結果。
事務數據是指一種信息,用于跟蹤與組織活動相關的交互,常為:業務事務。例如:從客戶收到的付款、對供應商進行的付款、從庫存移動的產品、接受的訂單或交付的服務。表示事務本身的事務事件通常包含時間維度、數值等。
事務通常需要原子性和一致性。原子性意味著整個事務始終作為一個工作單元成功或失敗,永遠不會處于半完成狀態。如果無法完成某個事務,數據庫系統必須回退任何已完成的該事務的一部分工作,從而能夠保證整個工作要么完成,要么失敗。一致性意味著事務始終讓數據處于最終有效狀態,如果已將某個事務的一部分提交到數據庫,那么該源事務中所有其他作用域內操作也將處于最終有效狀態并提交到數據庫中。事務型數據庫可以使用各種鎖定策略(如悲觀鎖定)支持事務的強一致性,以確保所有用戶和進程的所有數據在業務的上下文中具有強一致性。
事務型數據最常見的部署體系結構是三層體系結構。在該體系結構中,事務型數據在數據存儲層被使用。三層體系結構通常包含:表示層、業務邏輯層和數據存儲層。
適用場景
如果業務系統對數據完整性和實時性有約束要求,同時在業務的處理過程中需要保證數據的嚴格完整性,而且更改后的數據需要嚴格的持久性,此時OLTP 會是你的首要選擇。因為,OLTP 系統設計用于高效地處理和存儲事務,以及查詢事務數據。
面臨挑戰
實現和使用 OLTP 系統可能會帶來一些挑戰:
(1)OLTP 系統不是特別適合用于處理大量數據場景的復雜查詢。在大數據量復雜查詢場景下, OLTP 系統會消耗大量的計算資源和存儲資源,所以執行上可能較慢。而且如果此時其它事務也正在對某些復雜查詢的數據進行操作,往往會觸發系統中的鎖機制,這會導致整個系統性能的下降。
(2)在 OLTP 系統中,數據庫對象的命名約定通常簡潔而精煉,這對業務用戶專業素養要求較高。OLTP 系統中增強的規范化與簡潔的命名約定共同使得業務用戶在沒有 DBA 或數據開發者幫助的情況下難以執行查詢。
(3)歷史記錄以及在任何一個表中存儲太多數據都會導致查詢性能變慢。常見的解決方案是在 OLTP 系統中維護一個相關時間范圍(例如當前統計年度)并將歷史數據卸載到其他系統,例如:數據倉庫。
OLAP:特點、適用場景、遇到的問題、最新進展
聯機分析處理(英語:Online analytical processing),簡稱 OLAP,用來快速解決多維分析問題的一種方法。OLAP 是更廣泛的商業智能范疇的一部分,它還包括關系數據庫、報告編寫和數據挖掘。
企業用來存儲其所有事務和記錄的數據庫稱為聯機事務處理 (OLTP) 數據庫。它們通常包含對組織有價值的大量信息。OLTP 的數據庫不是為分析而設計的。因此,從這些數據庫中檢索答案從時間和工作量角度而言成本高昂。OLAP 系統設計用來以高性能方式從數據中提取商業智能信息。這是因為 OLAP 數據庫針對高頻讀取和低頻寫入進行了優化。
適用場景
需要快速執行復雜的分析和即席查詢,且不能對 OLTP 系統產生負面影響;
為業務用戶提供一種簡單的方式來基于數據生成報表;
提供大量聚合,這些聚合將使用戶能夠快速獲得響應結果。OLAP 適用于大量數據且查詢多為聚合計算的場景下。OLAP 系統針對高頻讀取應用場景(例如分析和商業智能)進行了優化。
面臨挑戰
OLAP 系統中的數據更新較少,具體取決于業務需求,這意味著 OLAP 系統更適用于戰略級業務決策,而非適用于立即對更改做出響應。另外,還需要規劃一定級別的數據清理和業務流程來使 OLAP 系統中的數據保持最新。