您的位置 首页 kreess

國產數據庫TiDB相關知識介紹

1、簡介 TiDB 是由PingCAP 公司研發設計的開源分佈式 HTAP (Hybrid Transactional and Analytical Processing)

1、簡介 

TiDB 是由PingCAP 公司研發設計的開源分佈式 HTAP (Hybrid Transactional and Analytical Processing) 數據庫,它結合瞭傳統的關系型和非關系型數據庫的最佳特性。TiDB 兼容 MySQL,支持無限的水平擴展,具備強一致性和高可用等特性。

並提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案

2、TiDB的組成

TiDB主要包括三個核心組件:TiDB Server,PD Server和TiKV Server。下面簡單給大傢介紹一下。

2.1 TiDB Server

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

2.2 PD Server(PD)

PD主要負責整個 TiDB 集群的元信息管理模塊。

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

2.3 TiKV Server

TiKV Server 主要負責存儲數據,從外部看 TiKV 是一個分佈式的提供事務的 Key-Value 存儲引擎。

存儲數據的基本單位是 Region,每個 Region 負責存儲一個 Key Range (從 StartKey 到EndKey 的左閉右開區間)的數據,每個 TiKV 節點會負責多個 Region 。TiKV 使用 Raft協議做復制,保持數據的一致性和容災。

3、TiDB的關鍵特性

3.1 高度兼容 MySQL

大部分情況下,不需要調整代碼就可以輕松從MySQL遷移至TiDB數據庫,分庫分表後的MySQL集群也可以通過TiDB工具進行實時遷移。

3.2 水平彈性擴展

通過簡單地增加新節點就可以實現TiDB的水平擴展,按業務需要擴展吞吐量或存儲,輕松應對高並發、海量數據場景,按需的方式也可以節約不少的成本。

3.3 分佈式事務

TiDB完全支持標準的 ACID 事務。

3.4 金融級別高可用

相比於傳統主從復制方案,基於Raft的多數派選舉協議可以提供金融級的 100% 數據強一致性保證,且在不丟失大多數副本的前提下,可以實現故障的自動恢復,不需要認為的介入處理。

3.5 一站式 HTAP 解決方案

TiDB 作為典型的 OLTP 行存數據庫,同時兼具強大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP解決方案,一份存儲同時處理OLTP & OLAP(OLAP、OLTP的介紹和比較 )無需傳統繁瑣的 ETL 過程。

3.6 雲原生 SQL 數據庫

TiDB是為雲服務而設計的數據庫,可以同 Kubernetes 容器化技術深度耦合,支持公有雲、私有雲和混合雲。使安裝部署、配置和維護變得十分簡單。

4、適用場景

4.1 千萬級以上數據存儲

針對至少有千萬行級別的大表,或者數據庫schema的占空空間有T級別的數據量比較適合TiDB;如果數據存儲規模少於500G且每秒查詢量少或並發量小則建議使用mysql。

4.2 高並發

如果你的並發量高達十萬以上,可以實用TiDB,省去瞭中間件和分庫分表的麻煩。

4.3 運維人員不足

TiDB可以自動維護數據的強一致性和高可用,大大減少瞭數據庫運維的工作。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部