TiDB數(shù)據(jù)庫(kù)在汽車之家的應(yīng)用與實(shí)踐
?引言
TiDB是PingCAP公司研發(fā)的開(kāi)源分布式關(guān)系型數(shù)據(jù)庫(kù),具有兼容MySQL協(xié)議,易水平擴(kuò)展、高可用、強(qiáng)一致、HTAP等特性。目前TiDB已在汽車之家論壇,好友粉絲,智能推薦,財(cái)務(wù)報(bào)表,818臺(tái)網(wǎng)互動(dòng)等重要業(yè)務(wù)上應(yīng)用,本文介紹TiDB數(shù)據(jù)庫(kù)在汽車之家的應(yīng)用與實(shí)踐實(shí)踐情況。
1. TiDB介紹
1.1TiDB數(shù)據(jù)庫(kù)的發(fā)展
移動(dòng)互聯(lián)網(wǎng)時(shí)代,海量數(shù)據(jù)及各種應(yīng)用場(chǎng)景給數(shù)據(jù)庫(kù)存儲(chǔ)帶來(lái)諸多挑戰(zhàn),如海量數(shù)據(jù)的存儲(chǔ)擴(kuò)展,支持新的數(shù)據(jù)模型,彈性伸縮的需求等等給傳統(tǒng)關(guān)系型數(shù)據(jù)(MySQL,SQLServer,Oracle等)帶來(lái)巨大挑戰(zhàn)。在此背景下新型數(shù)據(jù)庫(kù)NewSQL層出不窮,TiDB就是其中的佼佼者。
TiDB是 PingCAP研發(fā)的開(kāi)源分布式關(guān)系數(shù)據(jù)庫(kù),是一款可同時(shí)支持在線事務(wù)處理與在線分析處理 (HTAP) 的融合型分布式數(shù)據(jù)庫(kù)產(chǎn)品。誕生于2015年,2017年出了1.0版本,2018年發(fā)布V2.0,2020年發(fā)布V4.0版本,2021年發(fā)布5.0版本,目前最新版本是6.1版。
1.2TiDB主要特性
TiDB具有兼容MySQL協(xié)議,易水平擴(kuò)展、高可用、強(qiáng)一致,HTAP等特性。TIDB適用于數(shù)據(jù)量較大單機(jī)存儲(chǔ)不足需要拆庫(kù)拆表,以及需要數(shù)據(jù)強(qiáng)一致,支持分布式事務(wù),高可用的應(yīng)用場(chǎng)景。
1.3TiDB架構(gòu)
TiDB 分布式數(shù)據(jù)庫(kù)將整體架構(gòu)拆分成了多個(gè)組件模塊,各組件之間互相通信,組成完整的 TiDB 系統(tǒng)。主要可以分為TIDB Server、PDserver,TIKV server組件。
2.之家TiDB發(fā)展及應(yīng)用
2.1之家TiDB發(fā)展歷程
汽車之家2019年開(kāi)始對(duì)TiDB進(jìn)行初步嘗試,當(dāng)時(shí)使用的TiDB版本是V2.0。2020年TiDB重要版本4.0發(fā)布(支持TiFLash)后,TIDB在之家訊速發(fā)展應(yīng)用,目前在粉絲業(yè)務(wù),經(jīng)銷商,財(cái)務(wù),智能推薦資源池,818臺(tái)網(wǎng)互動(dòng)等重要業(yè)務(wù)上都有應(yīng)用。2022年我們完成TiDB集群版本升級(jí),以利用V5.x的MPP新特性。
2.2之家TiDB典型應(yīng)用?
? 2.2.1 智能推薦資源池
項(xiàng)目背景?
智能推薦資源池業(yè)務(wù):是汽車之家核心業(yè)務(wù),推薦資源池的數(shù)據(jù)量巨大,存在10+張億級(jí)大寬表,以前使用2套傳統(tǒng)MySQL數(shù)據(jù)庫(kù)存儲(chǔ),存在著單機(jī)存儲(chǔ)空間不足、表結(jié)構(gòu)不能快速變更,及兩套MySQL集群數(shù)據(jù)同步延時(shí)嚴(yán)重的痛點(diǎn)。?
項(xiàng)目實(shí)施?
優(yōu)化前:
方案選型對(duì)比:
對(duì)DB中間件、ES、TiDB、HBase方案進(jìn)行對(duì)比,綜合考慮業(yè)務(wù)兼容性、擴(kuò)展性,遷移成本等因素,我們選擇了TIDB方案。
架構(gòu)優(yōu)化后:
資源池新的后端數(shù)據(jù)庫(kù)由MySQL改為TiDB,新架構(gòu)如圖。新存儲(chǔ)使用TIDB數(shù)據(jù)庫(kù),解決了原架構(gòu)單機(jī)空間不足,大表變更不便,多套DB同步延時(shí)等業(yè)務(wù)痛點(diǎn)。
? 2.2.2 財(cái)務(wù)內(nèi)審及報(bào)表業(yè)務(wù)
項(xiàng)目背景?
財(cái)務(wù)內(nèi)審報(bào)表涉及多種數(shù)據(jù)源,無(wú)法多表join計(jì)算,導(dǎo)入數(shù)倉(cāng)計(jì)算是隔日出報(bào)表不夠及時(shí),無(wú)法滿足更高業(yè)務(wù)時(shí)效需求。
項(xiàng)目實(shí)施?
? 2.2.3 818臺(tái)網(wǎng)互動(dòng)
項(xiàng)目背景?
"818全球汽車夜"是由汽車之家打造的汽車行業(yè)頂級(jí)盛典,其中的臺(tái)網(wǎng)互動(dòng)業(yè)務(wù)包括紅包互動(dòng),秒殺車等等,數(shù)據(jù)量大,并需要多機(jī)房高可用的高可靠架構(gòu)。臺(tái)網(wǎng)互動(dòng)后端存儲(chǔ),我們選用了TIDB數(shù)據(jù)庫(kù)。
項(xiàng)目實(shí)施?
? 2.2.4 TIDB應(yīng)用場(chǎng)景總結(jié)
3. 之家TiDB運(yùn)維實(shí)踐
3.1之家TIDB自動(dòng)化運(yùn)維建設(shè)
數(shù)據(jù)庫(kù)自動(dòng)化建議需要考慮的工作有:
之家TiDB運(yùn)維體系建設(shè)主要是通過(guò)TiDB 原生工具 + 自主研發(fā)自動(dòng)化運(yùn)維平臺(tái)來(lái)實(shí)現(xiàn)。
TiDB自動(dòng)化產(chǎn)品界面:
3.2遇到問(wèn)題及解決
4. 結(jié)語(yǔ)
本文介紹了TiDB數(shù)據(jù)庫(kù)特性及在之家的發(fā)展歷程,典型業(yè)務(wù)應(yīng)用場(chǎng)景,TiDB具有兼容MySQL協(xié)議,易水平擴(kuò)展、高可用、強(qiáng)一致,HTAP等特性,在之家多個(gè)重要業(yè)務(wù)得到應(yīng)用。另外文章還介紹了之家TIDB自動(dòng)化運(yùn)維建設(shè)情況及應(yīng)用實(shí)踐遇到的問(wèn)題及解決。
未來(lái)之家TiDB計(jì)劃繼續(xù)進(jìn)行TiDB運(yùn)維體系建設(shè),并重點(diǎn)對(duì)TiDB6.0新特性測(cè)試應(yīng)用,另外對(duì)TIDB容器化進(jìn)行嘗試。
作者簡(jiǎn)介
陶會(huì)祥
■ C端及中臺(tái)產(chǎn)研中心,云平臺(tái)部。
■ 2020 年加入汽車之家,負(fù)責(zé)之家數(shù)據(jù)庫(kù)/緩存的運(yùn)維及RDS產(chǎn)品研發(fā)工作,致力于為公司提供安全,穩(wěn)定,可靠的數(shù)據(jù)庫(kù)/緩存服務(wù)。