主頁 > 資料庫 > 什么是真正的HTAP?(二)挑戰篇

什么是真正的HTAP?(二)挑戰篇

2022-08-16 08:37:44 資料庫

上一篇文章中,我們從技術和商業角度分析了 HTAP 系統緣起的背景,本篇文章中,我們將從 HTAP 定義及其相關核心技術等方面來討論:構建一個 HTAP 所面臨的核心問題和挑戰有哪些?
file

HTAP 涉及技術和對產品的影響

HTAP 是將 TP 和 AP 進行高度融合的產物, 而非簡單的 TP 和 AP 相加:TP+AP ≠ HTAP,有的資料庫讓 TP 系統通過簡單的資料同步方式(比如 Binlog等),將資料同步到 AP 系統,然后再由 AP 系統進行處理資料,雖然該種方式從用戶的角度來看似乎是獲得了同時處理 TP 和 AP 的能力,但是從本質上來看,這并不能稱為真正的 HTAP 產品,國內有一些資料庫廠商宣傳 HTAP 概念很起勁,但是自身可能還真不滿足 HTAP 的定義,下面我們就 HTAP 所涉及到的幾個核心問題來探討一下,一個真正的 HTAP 產品需要具備哪些能力,
我們將從以下維度進行探討:

  1. 架構選擇(Architecture choice)
  2. 資料匯入及查詢處理引擎 (Ingestion and query processing egnines)
  3. 存盤方案 (Storage options)
  4. 資料組織方案 (Data organization)
  5. 事務語意(Transaction semantics)
  6. 資料的時效性(Recency of data being read by OLAP)
  7. 索引支持(Indexing supports)
  8. AP 負載和 TP 負載的相互干擾(Workload interference)

當系統接收到一個查詢負載的時候,查詢處理模塊需要識別出該查詢負載中的 TP 負載和 AP 負載,并能夠依據相應的策略(這里可以是基于規則或者是基于查詢代價),將相應的負載轉發至相應的處理引擎,

1. 架構的選擇
Single system(即 One system) 還是 Seperate system 的選擇當前更多是基于工程上的難度,目前不少產品均是在原有的 TP 系統之上,疊加了一個 AP 系統并使用某種資料同步工具將TP系統中的資料同步至AP系統中,Seperate system 雖然有其優點,但這種方案存在著許多不容忽視的問題,比如無法保證對事務的支持能力、資料的時效性,以及復雜的系統架構等(下文會有詳細的解釋),相比之下,One system 不僅架構簡潔,對于事務的支持能力和資料的時效性等方面都能提供更好的保證,但是,One system 架構的技術難度相對較大,工程上也具有一定的難度,同時還需要考慮 TP 和 AP 負載間的相互干擾等問題,StoneDB 目前就是采用 One System 的架構設計,我們深知此架構的優勢和難度,

2. 查詢處理及資料匯入引擎

該維度對產品有兩個方面的描述,由于 HTAP 所面臨的業務場景通常存著需要對海量資料進行分析處理需求,而在分析場景下,為了加速分析,通常的做法是將需要進行分析的資料,以列存的方式進行組織,這樣可以利用列存的優勢加速分析,因此,需要將適用于 TP 場景的行存型別資料轉為適用于 AP 場景的列存資料,對于一個 HTAP 資料庫首先需要解決的問題是高速的資料載入,這里又包括兩個方面:

- 全量資料的載入方案,保證海量資料快速準確匯入,

- 增量資料的更新方案,保證資料的時效性,

在資料加載完成后,另外一個維度是查詢處理,查詢處理部分屬于整個 HTAP 資料庫的核心模塊,其最重要的能力是能夠同時完成 TP 負載和 AP 負載的處理,
索引已成為 TP 系統的標配,通過設定索引可以大大提高資料庫的檢索速度,改善資料庫性能,而 AP 系統中的更新操作通常為批量更新,在更新時首先需要定位到待更新的資料,考慮到 AP 系統的資料組織和存盤模型,如何能夠通過設定索引快速定位到需要更新的資料(尤其是在以列存且資料多為壓縮形式的情況下)也是需要解決的一個難題,

3. 存盤方案

隨著存盤技術的進步,存盤介質和方式以及單位價格都發生了翻天覆地的變化,一個清晰的事實是:高速存盤介質正在廣泛地應用到資料庫領域,對于 HTAP 資料庫來說,TP 部分和 AP 部分的存盤方案選擇涉及到架構、性能、成本和業務場景等多方因素的影響,

4. 資料組織方案

選擇列存盤加行存盤(DSM + NSM),還是 PAX (Partition Attributes Across)方案或者是其它方案,資料組織方案的選擇不僅會極大的影響系統性能,還會影響資料的存盤成本,而系統的整體性價比也是我們挑選產品的重要指標之一

5. 事務語意

需要具有支持完整的事務語意的能力,即無論是 TP 部分還是 AP 部分都需要對事務進行完整的支持,現有的很多 HTAP 解決方案,AP 系統中所處理的資料均是同步自 TP 系統中已提交的資料,這類解決方案存在以下幾個問題:首先,對應長事務場景下,如何保證 AP 系統可以獲得最新版本的資料值得我們仔細考慮,再者,通過以同步日志的方式,資料的時效性和一致性需要認真考慮,最后,為了解決上述問題,會影響到事務的執行效率,導致系統吞吐量的下降,

6. 資料的時效性

需要保證 AP 系統所處理的資料均為當前最新版本的資料,當前的很多系統是在 TP 資料提交完成后,通過同步日志的方式將 TP 部分的變更同步到 AP 部分,這種方式無法保證資料的時效性,因而不能稱之為真正的 HTAP 系統,

7.索引的支持

索引已成為 TP 系統的標配,通過設定索引可以大大提高資料庫的檢索速度,改善資料庫性能,而 AP 系統中的更新操作通常為批量更新,在更新時首先需要定位到待更新的資料,考慮到 AP 系統的資料組織和存盤模型,如何能夠通過設定索引快速定位到需要更新的資料(尤其是在以列存且資料多為壓縮形式的情況下)也是需要解決的一個難題,

8. 不同型別負載間的相互干擾

系統需要能夠保證 AP 負載對 TP 負載無影響或者使得兩種型別負載間的影響最小化
上述討論了一個真正的 HTAP 系統應該具備的幾點核心能力,當然這些只是我們認為的核心能力,其它的相關問題這里就不在展開,后續我們會陸續給出上述 HTAP 核心能力的詳細解讀,
file

從不同維度對現有 HTAP 產品/解決方案進行分類

現有的 HTAP 產品圖譜分類的主要方法:

  1. 架構方式;
  2. 存盤范式(Cloud/Shared Disk);
  3. 擴展方式(Scale out/Scale up);
  4. 查詢陳述句標準;
  5. 并發策略(MVCC);
  6. 資料/表的組織方式;
  7. 索引(LSM, ART, B-tree, lock-free Bw-Tree),

下表從功能/許可證/是否開源等各個維度,對當前 HTAP 市場中的標桿產品進行了綜合分析,如需獲取更多資訊,請訪問我們的官網:https://stonedb.io/
file
其它方面:多模能力等屬于非必要,這里暫不考慮,
file
file
file
這里我們將 ClickHouse 放進來,主要是考慮其在 AP 處理方面的優異能力,可以作為我們 HTAP 產品在 AP 方面的一個標桿,

file

HTAP所面臨的核心挑戰

綜上,我們可以總結出 HTAP 面臨的挑戰有:

  1. 真正的 HTAP,而非 TP 與 AP 的疊加
  2. 架構的選擇
  3. 資料組織方案選擇,存盤方案選擇
  4. 查詢優化:如何依據負載型別和查詢代價選擇合適的執行引擎
  5. 資料的時效性:如何能夠減少 TP 和 AP 之間的資料移動,高效實時地將 TP 資料更新同步到 AP 資料中
  6. 負載隔離:如何有效地消除或者最小化 TP 和 AP 負載之間的相互干擾
  7. 資源管理:如何能夠高效的管理 TP 和 AP 負載之間的資源使用
  8. 實時分析的能力
  9. 事務語意支持

以上是對HTAP資料庫的部分挑戰梳理,在下一篇文章中,我們將對這些核心問題和挑戰展開更加深度的討論并給出選擇一款 HTAP 產品的建議,
StoneDB 是國內首款基于 MySQL 的一體化實時 HTAP 開源資料庫,內核引擎完全自研,我們將在開源資料庫領域持續耕耘,不斷與各個開源資料庫社區、企業合作共建,共創國產開源資料庫良好生態,

StoneDB 在6月29日已宣布正式開源,如果您感興趣,可以通過下方鏈接查看 StoneDB 原始碼、閱讀檔案,期待您的貢獻!

StoneDB 開源倉庫

https://github.com/stoneatom/stonedb

作者李浩

StoneDB 首席架構師、StoneDB PMC

曾在華為、愛奇藝、北大方正從事資料庫內核核心架構設計,超過10年資料庫內核開發經驗,擅長查詢引擎,執行引擎,大規模并行處理等技術,擁有數十項資料庫發明專利,著有《PostgreSQL查詢引擎原始碼技術探析》,

編輯 &校對:李明康、王學姣、高日耀、

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/501956.html

標籤:其他

上一篇:手把手教你分析MySQL查詢性能瓶頸,包教包會

下一篇:開源公開課丨ChunJun資料傳輸模塊介紹

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more