TiDB-入門簡介


簡介

TiDB 是一款同時支持在線事務處理與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式數據庫產品。它兼容 MySQL 5.7 協議和 MySQL 生態等重要特性。並提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案。TiDB 適合高可用、強一致要求較高、數據規模較大等各種應用場景。

架構

主要包括三個核心組件:TiDB ServerPD ServerTiKV Server。此外,還有用於解決復雜OLAP需求的TiSpark組件和簡化雲上部署管理的TiDB Operator組件。
architecture

職責

TiDB Server

SQL 層,對外暴露 MySQL 協議的連接 endpoint,負責接受客戶端的連接,執行 SQL 解析和優化,最終生成分布式執行計划。TiDB 層本身是無狀態的,實踐中可以啟動多個 TiDB 實例,通過負載均衡組件(如 LVS、HAProxy 或 F5)對外提供統一的接入地址,客戶端的連接可以均勻地分攤在多個 TiDB 實例上以達到負載均衡的效果。TiDB Server 本身並不存儲數據,只是解析 SQL,將實際的數據讀取請求轉發給底層的存儲節點 TiKV(或 TiFlash)

Placement Driver (PD)

整個 TiDB 集群的元信息管理模塊。

  • 負責存儲每個 TiKV 節點實時的數據分布情況和集群的整體拓撲結構,提供 TiDB Dashboard 管控界面,並為分布式事務分配事務 ID。
  • PD 不僅存儲元信息,同時還會根據 TiKV 節點實時上報的數據分布狀態,下發數據調度命令給具體的 TiKV 節點。
  • PD 由至少 3 個節點構成,擁有高可用的能力。PD 通過 Raft 協議保證數據的安全性。Raft 的 leader server 負責處理所有操作,其余的 PD server 僅用於保證高可用。建議部署奇數個 PD 節點。

存儲節點

TiKV Server

負責存儲數據,從外部看 TiKV 是一個分布式的提供事務的 Key-Value 存儲引擎。存儲數據的基本單位是 Region,每個 Region 負責存儲一個 Key Range(從 StartKey 到 EndKey 的左閉右開區間)的數據,每個 TiKV 節點會負責多個 Region。TiKV 的 API 在 KV 鍵值對層面提供對分布式事務的原生支持,默認提供了 SI (Snapshot Isolation) 的隔離級別,這也是 TiDB 在 SQL 層面支持分布式事務的核心。TiDB 的 SQL 層做完 SQL 解析后,會將 SQL 的執行計划轉換為對 TiKV API 的實際調用。所以,數據都存儲在 TiKV 中。另外,TiKV 中的數據都會自動維護多副本(默認為三副本),天然支持高可用和自動故障轉移。TiKV 使用 Raft 協議做復制,保持數據的一致性和容災。副本以 Region 為單位進行管理,不同節點上的多個 Region 構成一個 Raft Group,互為副本。數據在多個 TiKV 之間的負載均衡由 PD 調度,這里也是以 Region 為單位進行調度。

TiSpark

TiFlash 是一類特殊的存儲節點。和普通 TiKV 節點不一樣的是,在 TiFlash 內部,數據是以列式的形式進行存儲,主要的功能是為分析型的場景加速。它作為 TiDB 中解決用戶復雜 OLAP 需求的主要組件,將 Spark SQL 直接運行在 TiDB 存儲層上,同時融合 TiKV 分布式集群的優勢,並融入大數據社區生態。

TiDB Operator

提供在主流雲基礎設施(Kubernetes)上部署管理 TiDB 集群的能力。它結合雲原生社區的容器編排最佳實踐與 TiDB 的專業運維知識,集成一鍵部署、多集群混部、自動運維、故障自愈等能力,極大地降低了用戶使用和管理 TiDB 的門檻與成本。

核心特性

  • 方便靈活水平方式擴縮容
  • 雲原生分布式數據庫
  • 兼容MySQL 5.7協議


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM