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