HTAP 深入探索指南
本指南介紹如何進一步探索并使用 TiDB 在線事務與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP) 功能。
注意
如果你對 TiDB HTAP 功能還不太了解,希望快速試用體驗,請參閱快速上手 HTAP。
要快速了解 TiDB 在 HTAP 場景下的體系架構與 HTAP 的適用場景,建議先觀看下面的培訓視頻(時長 15 分鐘)。注意本視頻只作為學習參考,如需了解詳細的 HTAP 相關內容,請參閱下方的文檔內容。
HTAP 適用場景
TiDB HTAP 可以滿足企業海量數據的增產需求、降低運維的風險成本、與現有的大數據棧無縫縫合,從而實現數據資產價值的實時變現。
以下是三種 HTAP 典型適用場景:
-
混合負載場景
當將 TiDB 應用于在線實時分析處理的混合負載場景時,開發人員只需要提供一個入口,TiDB 將自動根據業務類型選擇不同的處理引擎。
-
實時流處理場景
當將 TiDB 應用于實時流處理場景時,TiDB 能保證源源不斷流入系統的數據實時可查,同時可兼顧高并發數據服務與 BI 查詢。
-
數據中樞場景
當將 TiDB 應用于數據中樞場景時,TiDB 作為數據中樞可以無縫連接數據業務層和數據倉庫層,滿足不同業務的需求。
如果想了解更多關于 TiDB HTAP 場景信息,請參閱?PingCAP 官網中關于 HTAP 的博客。
HTAP 架構
在 TiDB 中,面向在線事務處理的行存儲引擎?TiKV?與面向實時分析場景的列存儲引擎?TiFlash?同時存在,自動同步,保持強一致性。
更多架構信息,請參考?TiDB HTAP 形態架構。
HTAP 環境準備
在深入探索 TiDB HTAP 功能前,請依據你的數據場景部署 TiDB 以及對應的數據分析引擎。大數據場景 (100 T) 下,推薦使用 TiFlash MPP 作為 HTAP 的主要方案,TiSpark 作為補充方案。
-
TiFlash
-
如果已經部署 TiDB 集群但尚未部署 TiFlash 節點,請參閱擴容 TiFlash 節點中的步驟在現有 TiDB 集群中添加 TiFlash 節點。
-
如果尚未部署 TiDB 集群,請使用?TiUP 部署 TiDB 集群,并在包含最小拓撲的基礎上,同時增加 TiFlash 拓撲架構。
-
在決定如何選擇 TiFlash 節點數量時,請考慮以下幾種業務場景:
- 如果業務場景以 OLTP 為主,做輕量級的 Ad hoc OLAP 計算,通常部署 1 個或幾個 TiFlash 節點就會產生明顯的加速效果。
- 當 OLTP 數據吞吐量對節點 I/O 無明顯壓力時,每個 TiFlash 節點將會使用較多資源用于計算,這樣 TiFlash 集群可實現近似線性的擴展能力。TiFlash 節點數量應根據期待的性能和響應時間調整。
- 當 OLTP 數據吞吐量較高時(例如寫入或更新超過千萬行/小時),由于網絡和物理磁盤的寫入能力有限,內部 TiKV 與 TiFlash 之間的 I/O 會成為主要瓶頸,也容易產生讀寫熱點。此時 TiFlash 節點數與 OLAP 計算量有較復雜非線性關系,需要根據具體系統狀態調整節點數量。
-
-
TiSpark
- 如果你的業務需要基于 Spark 進行分析,請部署 TiSpark。具體步驟,請參閱?TiSpark 用戶指南。
HTAP 數據準備
TiFlash 部署完成后并不會自動同步數據,你需要指定需要同步到 TiFlash 的數據表。指定后,TiDB 將創建對應的 TiFlash 副本。
- 如果 TiDB 集群中還沒有數據,請先遷移數據到 TiDB。詳情請參閱數據遷移。
- 如果 TiDB 集群中已經有從上游同步過來的數據,TiFlash 部署完成后并不會自動同步數據,而需要手動指定需要同步的表,詳情請參閱使用 TiFlash。
HTAP 數據處理
使用 TiDB 時,你只需輸入 SQL 語句進行查詢或者寫入需求。對于創建了 TiFlash 副本的表,TiDB 會依靠前端優化器自由選擇最優的執行方式。
注意
TiFlash 的 MPP 模式默認開啟。當執行 SQL 語句時,TiDB 會通過優化器自動判斷并選擇是否以 MPP 模式執行。
- 如需關閉 MPP 模式,請將系統變量?tidb_allow_mpp?的值設置為 OFF。
- 如需強制使用 TiFlash 的 MPP 模式執行查詢,請將系統變量?tidb_allow_mpp?和?tidb_enforce_mpp?的值設置為 ON。
- 如需查看 TiDB 是否選擇以 MPP 模式執行,你可以通過 EXPLAIN 語句查看具體的查詢執行計劃。如果 EXPLAIN 語句的結果中出現 ExchangeSender 和 ExchangeReceiver 算子,表明 MPP 已生效。
HTAP 性能監控
在 TiDB 的使用過程中,可以選擇以下方式監控 TiDB 集群運行情況并查看性能數據。
- TiDB Dashboard:查看集群整體運行概況,分析集群讀寫流量分布及趨勢變化,詳細了解耗時較長的 SQL 語句的執行信息。
- 監控系統 (Prometheus & Grafana):查看 TiDB 集群各組件(包括 PD、TiDB、TiKV、TiFlash、TiCDC、Node_exporter)的相關監控參數。
如需查看 TiDB 和 TiFlash 集群報警規則和處理方法,請查閱?TiDB 集群報警規則和?TiFlash 報警規則。
HTAP 故障診斷
在使用 TiDB 的過程中如果遇到問題,請參閱以下文檔:
- 分析慢查詢
- 定位消耗系統資源多的查詢
- TiDB 熱點問題處理
- TiDB 集群故障診斷
- TiFlash 常見問題
除此之外,你可以在?Github Issues?新建一個 Issue 反饋問題,或者在?AskTUG?提交你的問題。
總結
以上是生活随笔為你收集整理的HTAP 深入探索指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 防静电包装材料应用越来越广泛,这些变化你
- 下一篇: win10怎么移动软件的位置信息服务器,