天天看點

聊聊 HTAP 的前世今生

作者:墨天輪雲平台

随着現代社會大型實時分析應用的逐漸流行,關系型資料庫已經難以處理高并發的事務請求。商業層面上,當全球進入數字化時代,數字化技術滲透到各行各業,同時産生了海量資料,資料的存儲和應用是企業決策的重要依據之一,業務需要實時根據TP的落地資料進行C端快速回報,比如實時風控,交易曆史明細查詢,欺詐監測等等。技術上,由于傳統的數倉ETL鍊路長,延遲大,很難滿足業務快速多變的訴求,業務場景的變化也掀起了一股 HTAP 浪潮。

一、HTAP 誕生的背景

在二十世紀六十年代,商業部門的計算機開始用于工資單交易。聯機事務處理OLTP(On-Line Transaction Processing) 得到進一步發展,導緻 OLTP 在政府和商業部門資訊系統中的廣泛使用。OLAP (On-Line Analytical Processing) 是在 OLTP 術語上修改而建立的。在 HTAP 概念之前,業務類型大緻可以分成兩大類:聯機事務處理 OLTP、聯機分析處理 OLAP。

  • OLTP 是傳統的關系型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。
  • OLAP 是資料倉庫系統的主要應用,支援複雜的分析操作,側重決策支援,并且提供直覺的查詢結果,例如業務銷售報表。

(一)傳統 OLTP 與 OLAP 分離架構

在同一組織中,通常 OLTP 和 OLAP 系統并存,且 OLAP 資料來源于 OLTP 系統,系統架構大緻可分為 ETL 資料同步和資料庫 LOG 同步兩種,以下的兩種架構都各有優缺點。

聊聊 HTAP 的前世今生

圖:傳統OLTP與OLAP分離架構

架構一: 是指來自一個或多個 OLTP 資料庫的資料通過 GoldenGate、DSG 等ETL 工具提取、轉換、加載到 OLAP 系統中,随着大資料的到來 , 後期又出現了 Debezium 、Kafka、Flink 等流式計算引擎。使用 ETL 工具,使用者可以從多個來源收集資料并将其發送到目的地。它的缺點就是元件太多,各項成本非常高。

架構二: 這種架構是指通過資料庫自帶的日志同步功能,實時将資料同步到備庫,備庫隻讀對外提供 OLAP 的服務。相比架構一在産品的維護性,實時性以及資料的一緻性上有了質的提高。但是架構二在使用場景上相比架構一有所限制,隻能對單一同源資料庫進行同步。

(二)分析型需求崛起推動技術架構演進

雖然 OLTP 産品已經成熟,然而目前的解決方案無法滿足實時分析的需求。随着資料量的積累,分析型需求不斷湧現,這也推動了資料庫技術的變革,從 OLTP到 OLAP,進而演進到 HTAP 理念,混合事務分析處理資料庫蓬勃發展。

1990 年代以前, 日常處理相關的動态業務以 OLTP 需求為主,OLAP 并未獨立;随着資料量不斷增多、場景逐漸豐富,分析型需求開始普及,1990s MPP 架構的 OLAP 産品開始出現; 2010s,物聯網等技術的發展,使得企業對實時資料分析的需求提升,且OLAP、大資料技術棧不斷分化也給企業實際運維管理多套系統帶來挑戰,HTAP 混合事務分析處理資料庫的概念也應運而生。

聊聊 HTAP 的前世今生

圖:OLTP 到 HTAP 架構演進

2005年, Gartner 正式提出了 HTAP 這一概念,并且迅速引起了一些企業的關注,這一概念被視為是未來資料發展的重要趨勢之一。2014年,Gartner 又對 HTAP 資料庫給出了明确的定義:即需要同時支援 OLTP 和 OLAP 場景,基于創新的計算存儲架構,在同一份資料上保證事務的同時支援實時分析,省去費時的ETL過程。

随着 HTAP 概念不斷普及,業界也開始逐漸揭開HTAP的神秘面紗。HTAP 資料庫的興起是在 2010 年。2010 年 SAP HANA 推出,HANA 與上一代 SAP 系統的主要差別在于,它是一個面向列的記憶體資料庫,将 OLAP 和 OLTP 操作組合到一個系統中。是以,HANA 是一個“線上事務和分析處理”(OLTAP) 系統,也稱為混合事務/分析處理(HTAP) ,這一産品的釋出标志着 HTAP 開始應用和落地。2017年,TiDB 推出1.0版本,可以替換分庫分表MySQL做 TP 業務。自此之後,中國 HTAP 資料庫發展迅猛,HTAP 技術已成為新興資料庫的重要選項。

二、HTAP 資料庫的核心技術

根據2022年 SIGMOD 收錄的論文《HTAP Databases: What is New and What is Next》,目前HTAP的相關技術包括:事務處理 (TP) 技術、分析處理(AP)技術、資料同步 (DS) 技術、查詢優化技術、資源排程技術。這些關鍵技術被 HTAP 資料庫采用。然而,它們在各種名額上各有利弊,例如效率、可擴充性和新鮮度。

(一)事務處理 (TP) 技術

HTAP 資料庫中的 OLTP 工作負載是通過行存儲處理的,但不同的架構會導緻不同的 TP 技術。它主要由兩種類型組成:

  • MVCC+logging。 它依賴于 MVCC 協定和日志記錄技術來處理事務。具體來說,每個插入首先寫入日志和行存儲,然後附加到記憶體中的增量存儲。 更新建立具有新生命周期的行的新版本,即開始時間戳和結束時間戳,即舊版本在删除位圖中被标記為删除行。
  • 2PC+Raft+logging。它依賴于分布式架構,它通過分布式事務處理提供了高可擴充性。 ACID 事務在分布式節點上使用兩階段送出 (2PC ) 協定、基于 Raft 的共識算法和預寫日志 (WAL) 技術進行處理。

(二)分析處理(AP)技術

對于 HTAP 資料庫,OLAP 負載使用面向列的技術執行,例如壓縮資料上的聚合和單指令多資料 (SIMD) 指令 ,主要分為三種類型:

  • 記憶體中增量和列掃描: 将記憶體中的增量和列資料一起掃描,因為增量存儲可能包括尚未合并到列存儲的更新記錄。由于它已經掃描了最近可見的 delta tuples 在記憶體,是以 OLAP 的資料新鮮度很高。
  • 基于日志的增量和列掃描: 将基于日志的增量資料和列資料一起掃描以擷取傳入查詢。與第一種類似,第二種使用列存儲掃描最新的增量用于 OLAP。但是,由于讀取可能尚未合并的 delta 檔案,這樣的過程更加昂貴。是以,資料新鮮度較低,因為發送和合并 delta 檔案的高延遲。
  • 列掃描: 隻掃描列資料以獲得高效率,因為沒有讀取任何增量資料的開銷。但是當資料在行存儲中經常更新時,這種技術會導緻新鮮度低。

(三)資料同步 (DS) 技術

由于在查詢時讀取增量資料的成本很高 ,是以需要定期将增量資料合并到主列存儲 中。 各種 HTAP 資料庫有 3 種 DS 技術。

  • 記憶體中增量合并
  • 基于磁盤的增量合并
  • 從主行存儲重建

(四)查詢優化技術

查詢優化技術的三個方面,包括:

  • HTAP的列選擇 。靠曆史工作負載和統計資料來選擇從主存儲中提取的頻繁通路的列到記憶體中。是以,可以将查詢下推到記憶體中的列存儲以進行加速。缺點是可能沒有選擇新查詢的列,導緻基于行的查詢處理。
  • 混合行/列掃描。可以分解複雜的查詢以在行存儲或列存儲上執行,然後組合結果。這對于可以使用基于行的索引掃描和完整的基于列的掃描執行的 SPJ 查詢來說是典型的。
  • HTAP 的 CPU/GPU 加速。分别利用 CPU 的任務并行性和 GPU 的資料并行性來處理 OLTP 和 OLAP。然而,這些技術有利于高 OLAP 吞吐量,同時具有低 OLTP 吞吐量。

(五)資源排程技術

對于 HTAP 資料庫,資源排程是指為 OLTP 和 OLAP 工作負載配置設定資源。目前的技術可以動态控制 OLTP 和 OLAP 工作負載的執行模式,以更好地利用資源。排程技術有兩種類型:工作負載驅動的方法和新鮮度驅動的方法。前者根據兩者運作時的性能負載 來 調整 OLTP 和 OLAP 任務各自的并行度。後者定期切換 OLTP 和 OLAP 的獨占資源執行模式和資料交換時的資源共享執行模式。

聊聊 HTAP 的前世今生

表:HTAP 五種關鍵技術介紹

三、中國 HTAP 資料庫發展現狀

根據艾瑞咨詢研究室釋出的 《2022年中國資料庫研究報告》,過去,HTAP 資料庫的技術架構以擴充主行存技術,在行存基礎上加列存的方式為主,随着分布式技術不斷成熟,天然适配 HTAP 資料庫,于是開啟了分布式的架構實作,滿足了高并發需求。

截止2023年2月,墨天輪中國資料庫排行榜 共有259個資料庫參與排名。其中SQL關系型資料庫162個,占比62%。在162個關系型資料庫中,OLTP資料庫109個,占比67%,HTAP資料庫為26個,占關系型資料庫的16%。國内典型的HTAP資料庫有PingCAP的TiDB、螞蟻的OceanBase、石原子科技StoneDB、亞信AntDB等。另外“新一代HTAP + 雲”正在成為資料庫市場重要的潮流,各大雲廠商都在布局HTAP,如阿裡雲PolarDB、華為雲GaussDB、騰訊雲TDSQL等。

  • OceanBase 是一款金融級分布式關系資料庫,在存儲引擎、分布式事務、水準擴充、多副本、高可用、多活容災、HTAP 等多個方向都有關鍵技術突破和競争力。OceanBase 獨創的分布式計算引擎,能夠讓系統中多個計算節點同時運作 OLTP 類型的應用和複雜的 OLAP 類型的應用,讓資料庫使用率最大化的同時利用多個節點的計算能力,完成對 OLTP 和 OLAP 應用的支援。
聊聊 HTAP 的前世今生

圖:OceanBase 一體化混合負載解決方案

  • 2017 年 TiDB 早期版本就開始嘗試支援 HTAP 的能力,并分别在 2019 年釋出了 TiSpark, 2020 年釋出了 TiDB 4.0 ,這是一款為HTAP而設計的分布式資料庫,到了5.0版本,在TiFlash引入MPP模式與多項企業級特性的增加,使得TiDB 5.0發展為“一款具備完整的 HTAP 能力”。
聊聊 HTAP 的前世今生

圖:TiDB 資料庫 HTAP 關鍵架構

  • StoneDB 是由石原子科技公司釋出的一款支援行列混存+記憶體計算的 HTAP 資料庫, 其創新的一體化 HTAP 架構,打破傳統TP型資料庫能力邊界,為使用者提供一站式 OLTP +OLAP 解決方案。StoneDB具備超高性能、實時分析等特點,于2022年6月29日正式開源。
聊聊 HTAP 的前世今生

圖:來源于 StoneDB HTAP 架構

  • 亞信 AntDB 資料庫是一款通用的、企業級分布式關系型資料庫,融合事務處理和線上分析操作,同時支援日常流水的操作型和企業報表的決策型業務。其采用 share-nothing 架構,計算層除完成傳統資料庫的編譯優化、SQL 執行等工作外,還具備分布式任務分發、HTAP 雙引擎架構處理能力。
聊聊 HTAP 的前世今生

圖:AntDB 資料庫 HTAP 解決方案架構

随着雲基礎設施普遍應用,“分布式×雲原生”正在重構企業資料架構,成為新一代 HTAP 的技術環境。其次,技術變革帶來了新的可能性。分布式理論與雲計算、AI 算法的融合帶來了新一代的架構創新,這些都使得 HTAP 在雲端可以支援不同的雲存儲,AI 等新技術,中國 HTAP 資料庫正在打造更有競争力的創新。

四、HTAP 資料庫的挑戰與機遇

目前 HTAP 資料庫與 2014 年 HTAP 剛剛提出來時的概念和内涵大不相同。随着其不斷發展的同時,也面臨了衆多問題。例如:HTAP 工作負載的自動列選擇、自适應 HTAP 資源排程、學習型 HTAP 查詢優化器、HTAP 基準測試套件等,是當下的重要問題。

(一)HTAP 工作負載的自動列選擇

給定一個 HTAP 工作負載,從行存儲中選擇哪些列進入記憶體列存儲是一項重要任務。然而,現有方法嚴重依賴曆史統計資料來選擇列到記憶體中。例如 Oracle 21c 的 Heatmap 。此類方法通過運作所有查詢來進行推薦,是以成本高且不靈活。

(二)自适應 HTAP 資源排程

HTAP 資源排程幫助資料庫平衡工作負載隔離和資料新鮮度之間的權衡。這是通過調整 OLAP 和 OLTP 的執行模式來實作的。 OLAP 和 OLTP 工作負載的隔離執行有利于高吞吐量,但資料新鮮度較低。混合工作負載的共享執行有利于高資料新鮮度,但具有很強的工作負載幹擾。

(三)學習型 HTAP 查詢優化器

現有方法通過利用成本函數來選擇 HTAP 資料庫中行存儲和列存儲的通路路徑來優化查詢。然而,他們做出統一和獨立的假設來估計行/列大小,然後使用這些估計來衡量行存儲和列存儲的掃描成本。由于成本估計不準确,這種方法對于相關和傾斜的資料是有問題的。

(四)HTAP 基準套件

有人指出TPC-H 具有均勻分布,跨列相關性很小,對測試 OLAP 提出了一點挑戰。是以,帶有 TPC-H 的 HTAP 基準測試應該将帶有偏斜的連接配接交叉相關關系納入基準測試。

五、活動推薦

2023年4月8日,由中國DBA聯盟(ACDU)和墨天輪社群聯合主辦的第十二屆『資料技術嘉年華』(DTC 2023) 中的專題論壇 《融合創新:HTAP資料技術》 盛大開啟。此專題彙聚了騰訊雲、亞信科技 、石原子科技等中國 HTAP 資料庫的優秀廠商,一起解讀中國 HTAP 資料庫的最新觀點!

聊聊 HTAP 的前世今生

《融合創新:HTAP資料技術》專題内容介紹

為了共賞中國資料庫的精彩,我們為大家準備了資料技術嘉年華早鳥福利:現限量發放100張0元購票優惠券,憑優惠碼 DTC2023 在購票時兌換抵扣,即可0元購票(可參照下方操作指南圖操作),請大家領取後盡快使用。如有疑問請聯系墨天輪小助手(VX:modb666)!

購票連結:https://www.modb.pro/dtc2023
聊聊 HTAP 的前世今生

點選閱讀原文:https://www.modb.pro/db/615248

欲了解更多可浏覽墨天輪社群,圍繞資料人的學習成長提供一站式的全面服務,打造集新聞資訊、線上問答、活動直播、線上課程、文檔閱覽、資源下載下傳、知識分享及線上運維為一體的統一平台,持續促進資料領域的知識傳播和技術創新。

關注官方公衆号: 墨天輪、 墨天輪平台、墨天輪成長營、資料庫國産化 、資料庫資訊

繼續閱讀