如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

本篇文章給大家分享的是有關(guān)如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、順城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

下面要介紹的是數(shù)據(jù)庫領(lǐng)域的后起之秀——NewSQL-TiDB,由于TiDB更新發(fā)版速度較快,所以文章跟最新版本之間會(huì)有差異。

TiDB誕生背景

目前RDBMS的代表為Oracle、MySQL、PostgreSQL,傳統(tǒng)關(guān)系型數(shù)據(jù)庫歷史比較久,在數(shù)據(jù)庫領(lǐng)域也是“輩份”比較高的,其廣泛應(yīng)用在各行各業(yè)。但是此類數(shù)據(jù)庫存在著一些問題,如自身容量的限制,RDBMS大多為本地存儲(chǔ)或共享存儲(chǔ)。隨著業(yè)務(wù)量不斷增加,容量漸漸成為瓶頸,此時(shí)DBA會(huì)通過多次的庫表sharding,以此來緩解容量問題。大量的分庫分表,不僅耗費(fèi)了大量人力,還使得業(yè)務(wù)訪問數(shù)據(jù)庫的路由邏輯變得復(fù)雜。除此之外,RDBMS伸縮性比較差,通常集群擴(kuò)容縮容成本較高,且不滿足分布式的事務(wù)。

NOSQL類數(shù)據(jù)庫的代表為Hbase、redis、MongoDB、Cassandra等,這類數(shù)據(jù)庫解決了 RDBMS伸縮性差的問題,集群容量擴(kuò)容變得方便很多,但是由于存儲(chǔ)方式為多個(gè)KV存儲(chǔ),所以對(duì)SQL的兼容性就大打折扣。對(duì)于NoSQL類數(shù)據(jù)庫來說,只能滿足部分分布式事務(wù)的特點(diǎn)。

NewSQL領(lǐng)域的代表是Google的spanner和F1,其號(hào)稱可以實(shí)現(xiàn)全球數(shù)據(jù)中心容災(zāi),且完全滿足分布式事務(wù)的ACID,但是只能在Google云上使用。

TiDB誕生在大背景下,也彌補(bǔ)了國內(nèi)在NewSQL領(lǐng)域中的空缺。TiDB自2015年5月寫下第一行代碼以來,至今已有3年有余,已發(fā)版幾十次,版本迭代十分迅速,目前最新版本是2.0.6,在GitLab上點(diǎn)贊數(shù)已超過14000。

TiDB整體架構(gòu)

TiDB中可以分為三類節(jié)點(diǎn):PD Server、TiDB Server、TiKV Server。

PD Server負(fù)責(zé)存儲(chǔ)集群的元數(shù)據(jù),對(duì)每個(gè)事物分配全局的事物ID,并負(fù)責(zé)對(duì)TiKV集群數(shù)據(jù)進(jìn)行調(diào)度和負(fù)載均衡

TiDB Server負(fù)責(zé)接收用戶的請(qǐng)求,并解析成執(zhí)行計(jì)劃,通過PD Server進(jìn)行數(shù)據(jù)尋址,然后與TiKV Server節(jié)點(diǎn)交互,進(jìn)行查詢。

TiKV Server負(fù)責(zé)存儲(chǔ)集群的數(shù)據(jù)。

Client提交任務(wù)的時(shí)候會(huì)通過LB層轉(zhuǎn)發(fā),提交到TiDB Server集群中,PD Server會(huì)給每個(gè)事務(wù)分配一個(gè)全局事務(wù)ID,緊接著TiDB Server會(huì)將application解析成具體的執(zhí)行計(jì)劃,并向PD集群獲取數(shù)據(jù)存儲(chǔ)地址,通過和TiKV Server節(jié)點(diǎn)交互,進(jìn)行查詢。

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

TiDB能力特征

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

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

存儲(chǔ)能力:TiKV Server通常是3+的,TiDB每份數(shù)據(jù)缺省為3副本,這一點(diǎn)與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)度。

TiDB的高可用

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

TiDB每個(gè)角色都屬于高可用的,單個(gè)節(jié)點(diǎn)宕機(jī)不影響整個(gè)集群。TiDB Server會(huì)有多個(gè),由于無狀態(tài),即使意外宕機(jī),Applcation會(huì)通過重試,連接到其他節(jié)點(diǎn)。PD Server一般是2n+1數(shù)個(gè),通過Raft協(xié)議進(jìn)行選舉,Leader宕機(jī)后Follower后通過選舉成為Leader,繼續(xù)完成工作。每個(gè)TiKV節(jié)點(diǎn)中的數(shù)據(jù)存儲(chǔ)格式是KV結(jié)構(gòu)的,通過Key-Range的方式進(jìn)行 hash到一個(gè)Region中,每個(gè)Region會(huì)有額外兩個(gè)副本,分布到不通的節(jié)點(diǎn)上。

兼容MySQL

TiDB基本兼容了MySQL,對(duì)于用戶使用的時(shí)候,可以透明地從MySQL切換到TiDB 中,只是“新MySQL”的后端是存儲(chǔ)“無限的”,不再受制于Local的磁盤容量。在運(yùn)維使用時(shí)也可以將TiDB當(dāng)做一個(gè)從庫掛到MySQL主從架構(gòu)中。

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

高效存儲(chǔ)方案

上面講到,TiKV集群存儲(chǔ)的數(shù)據(jù)格式是KV的,在TiDB中,并不是將數(shù)據(jù)直接存儲(chǔ)在 HDD/SSD中,而是通過RocksDB實(shí)現(xiàn)了TB級(jí)別的本地化存儲(chǔ)方案,RocksDB的架構(gòu)不再贅述了,有興趣可以搜一下相關(guān)文檔,著重提的一點(diǎn)是:RocksDB和HBASE一樣,都是通過 LSM樹作為存儲(chǔ)方案,避免了B+樹葉子節(jié)點(diǎn)膨脹帶來的大量隨機(jī)讀寫。從何提升了整體的吞吐量。

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

TIDB監(jiān)控

在TiDB中選擇了開源的Prometheus作為整個(gè)集群的監(jiān)控,在每個(gè)節(jié)點(diǎn)上,都會(huì)通過Multiple角色收集并上報(bào)所有節(jié)點(diǎn)的數(shù)據(jù),推送到PushGateWay中,PushGateWay接收所有Client Push上來的所有數(shù)據(jù),Prometheus Server會(huì)定期從GateWay中拉取數(shù)據(jù)數(shù)據(jù),整個(gè)監(jiān)控通過Grafana進(jìn)行可視化和監(jiān)控查詢。

如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析

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

以上就是如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:如何進(jìn)行NewSQL數(shù)據(jù)庫TiDB的分析
轉(zhuǎn)載來源:http://muchs.cn/article36/pjjppg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)