教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

TiDB的核心特性有哪些?

更新時間:2021年10月06日17時21分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

TiDB 具備如下眾多特性,其中兩大核心特性為:水平擴展與高可用。

1. 高度兼容 MySQL
大多數(shù)情況下,無需修改代碼即可從 MySQL 輕松遷移至 TiDB,分庫分表后的 MySQL 集群亦可通過 TiDB 工具進(jìn)行實時遷移。
對于用戶使用的時候,可以透明地從MySQL切換到TiDB 中,只是“新MySQL”的后端是存儲“無限的”,不再受制于Local的磁盤容量。在運維使用時也可以將TiDB當(dāng)做一個從庫掛到MySQL主從架構(gòu)中。
 
2. 分布式事務(wù)
TiDB 100% 支持標(biāo)準(zhǔn)的 ACID 事務(wù)。
 
3. 一站式 HTAP 解決方案
HTAP: Hybrid Transactional/Analytical Processing
TiDB 作為典型的 OLTP 行存數(shù)據(jù)庫,同時兼具強大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解決方案,一份存儲同時處理 OLTP & OLAP,無需傳統(tǒng)繁瑣的 ETL 過程。
 
4. 云原生 SQL 數(shù)據(jù)庫
TiDB 是為云而設(shè)計的數(shù)據(jù)庫,支持公有云、私有云和混合云,配合 TiDB Operator 項目 可實現(xiàn)自動化運維,使部署、配置和維護變得十分簡單。
 
5. 水平彈性擴展
通過簡單地增加新節(jié)點即可實現(xiàn) TiDB 的水平擴展,按需擴展吞吐或存儲,輕松應(yīng)對高并發(fā)、海量數(shù)據(jù)場景。
 
6. 真正金融級高可用
相比于傳統(tǒng)主從 (M-S) 復(fù)制方案,基于 Raft 的多數(shù)派選舉協(xié)議可以提供金融級的 100% 數(shù)據(jù)強一致性保證,且在不丟失大多數(shù)副本的前提下,可以實現(xiàn)故障的自動恢復(fù) (auto-failover),無需人工介入。

水平擴展的特點:
無限水平擴展是 TiDB 的一大特點,這里說的水平擴展包括兩方面:計算能力(TiDB)和存儲能力(TiKV)。
TiDB Server 負(fù)責(zé)處理 SQL 請求,隨著業(yè)務(wù)的增長,可以簡單的添加 TiDB Server 節(jié)點,提高整體的處理能力,提供更高的吞吐。
TiKV 負(fù)責(zé)存儲數(shù)據(jù),隨著數(shù)據(jù)量的增長,可以部署更多的 TiKV Server 節(jié)點解決數(shù)據(jù) Scale 的問題。
PD 會在 TiKV 節(jié)點之間以 Region 為單位做調(diào)度,將部分?jǐn)?shù)據(jù)遷移到新加的節(jié)點上。
所以在業(yè)務(wù)的早期,可以只部署少量的服務(wù)實例(推薦至少部署 3 個 TiKV, 3 個 PD,2 個 TiDB),隨著業(yè)務(wù)量的增長,按照需求添加 TiKV 或者 TiDB 實例。


高可用特點:

TiDB的核心特性
高可用是 TiDB 的另一大特點,TiDB/TiKV/PD 這三個組件都能容忍部分實例失效,不影響整個集群的可用性。下面分別說明這三個組件的可用性、單個實例失效后的后果以及如何恢復(fù)。
1. TiDB
TiDB 是無狀態(tài)的,推薦至少部署兩個實例,前端通過負(fù)載均衡組件對外提供服務(wù)。當(dāng)單個實例失效時,會影響正在這個實例上進(jìn)行的 Session,從應(yīng)用的角度看,會出現(xiàn)單次請求失敗的情況,重新連接后即可繼續(xù)獲得服務(wù)。單個實例失效后,可以重啟這個實例或者部署一個新的實例。
 
2. PD
PD 是一個集群,通過 Raft 協(xié)議保持?jǐn)?shù)據(jù)的一致性,單個實例失效時,如果這個實例不是 Raft 的 leader,那么服務(wù)完全不受影響;如果這個實例是 Raft 的 leader,會重新選出新的 Raft leader,自動恢復(fù)服務(wù)。PD 在選舉的過程中無法對外提供服務(wù),這個時間大約是3秒鐘。推薦至少部署三個 PD 實例,單個實例失效后,重啟這個實例或者添加新的實例。
 
3. TiKV
TiKV 是一個集群,通過 Raft 協(xié)議保持?jǐn)?shù)據(jù)的一致性(副本數(shù)量可配置,默認(rèn)保存三副本),并通過 PD 做負(fù)載均衡調(diào)度。單個節(jié)點失效時,會影響這個節(jié)點上存儲的所有 Region。對于 Region 中的 Leader 節(jié)點,會中斷服務(wù),等待重新選舉;對于 Region 中的 Follower 節(jié)點,不會影響服務(wù)。當(dāng)某個 TiKV 節(jié)點失效,并且在一段時間內(nèi)(默認(rèn) 30 分鐘)無法恢復(fù),PD 會將其上的數(shù)據(jù)遷移到其他的 TiKV 節(jié)點上。


TiDB 存儲和計算能力

TiDB的核心特性

存儲能力-TiKV-LSM

TiKV Server通常是3+的,TiDB每份數(shù)據(jù)缺省為3副本,這一點與HDFS有些相似,但是通過Raft協(xié)議進(jìn)行數(shù)據(jù)復(fù)制,TiKV Server上的數(shù)據(jù)的是以Region為單位進(jìn)行,由PD Server集群進(jìn)行統(tǒng)一調(diào)度,類似HBASE的Region調(diào)度。
TiKV集群存儲的數(shù)據(jù)格式是KV的,在TiDB中,并不是將數(shù)據(jù)直接存儲在 HDD/SSD中,而是通過RocksDB實現(xiàn)了TB級別的本地化存儲方案,著重提的一點是:RocksDB和HBASE一樣,都是通過 LSM樹作為存儲方案,避免了B+樹葉子節(jié)點膨脹帶來的大量隨機讀寫。從何提升了整體的吞吐量。
 

計算能力-TiDB Server
TiDB Server本身是無狀態(tài)的,意味著當(dāng)計算能力成為瓶頸的時候,可以直接擴容機器,對用戶是透明的。理論上TiDB Server的數(shù)量并沒有上限限制。
 

總結(jié)

TiDB作為新一代的NewSQL數(shù)據(jù)庫,在數(shù)據(jù)庫領(lǐng)域已經(jīng)逐漸站穩(wěn)腳跟,結(jié)合了Etcd/MySQL/HDFS/HBase/Spark等技術(shù)的突出特點,隨著TiDB的大面積推廣,會逐漸弱化 OLTP/OLAP的界限,并簡化目前冗雜的ETL流程,引起新一輪的技術(shù)浪潮。
一言以蔽之,TiDB,前景可待,未來可期。





猜你喜歡:

什么是TiDB數(shù)據(jù)庫?數(shù)據(jù)管理技術(shù)的發(fā)展

怎樣操作Spark SQL性能調(diào)優(yōu)?

使用Django開發(fā)過程中如何優(yōu)化數(shù)據(jù)庫?

MySQL數(shù)據(jù)庫常用的搜索引擎有哪些,區(qū)別是什么?

傳智教育python大數(shù)據(jù)開發(fā)培訓(xùn)

0 分享到:
和我們在線交談!