其中,標(biāo)簽持久化場(chǎng)景需要解決業(yè)務(wù)標(biāo)簽的持久化存儲(chǔ)、更新、查詢服務(wù),攜程采用了 TiDB 來(lái)存儲(chǔ)業(yè)務(wù)持久化的標(biāo)簽,并采用實(shí)時(shí)觸發(fā)場(chǎng)景中的動(dòng)態(tài)規(guī)則配置方式消費(fèi)業(yè)務(wù)系統(tǒng)數(shù)據(jù)變更消息,保證業(yè)務(wù)持久化標(biāo)簽的時(shí)效性,通過(guò) TiDB 對(duì) OLTP 和 OLAP 不同場(chǎng)景查詢特性的支持,來(lái)滿足不同業(yè)務(wù)場(chǎng)景中訪問(wèn)業(yè)務(wù)特征數(shù)據(jù)的需要。
系統(tǒng)借鑒了 Lambda 數(shù)據(jù)處理架構(gòu)的思想,新增數(shù)據(jù)根據(jù)來(lái)源不同分別發(fā)送到不同的通道中,歷史全量數(shù)據(jù)通過(guò)數(shù)據(jù)批處理引擎(如 Spark)轉(zhuǎn)換完,批量寫(xiě)入到數(shù)據(jù)持久化存儲(chǔ)引擎 TiDB 中。增量數(shù)據(jù)業(yè)務(wù)應(yīng)用以消息形式發(fā)送到 Kafka 或 QMQ 消息隊(duì)列,將數(shù)據(jù)按照標(biāo)簽持久化的邏輯規(guī)則處理完成,增量寫(xiě)入到持久化存儲(chǔ)引擎 TiDB,以此解決數(shù)據(jù)的時(shí)效性問(wèn)題。
TiDB 同時(shí)具有兩大持久化存儲(chǔ)方式,一種是行存 TiKV ,可以支持 OLTP 場(chǎng)景,另一種是列存 TiFlash ,可以支持 OLAP 場(chǎng)景。TiDB 數(shù)據(jù)存儲(chǔ)內(nèi)部自動(dòng)解決這兩個(gè)引擎的數(shù)據(jù)同步問(wèn)題,客戶端查詢根據(jù)自身需要選擇查詢方式。同時(shí),TiDB 還能保障兩種方式有著良好的隔離性,并兼顧數(shù)據(jù)強(qiáng)一致性,出色地解決了 HTAP 場(chǎng)景的隔離性及列存同步問(wèn)題。
目前,CDP 已經(jīng)與攜程各個(gè)業(yè)務(wù)系統(tǒng)進(jìn)行深度整合打通,為國(guó)際業(yè)務(wù)增長(zhǎng)提供業(yè)務(wù)特征標(biāo)簽庫(kù)的數(shù)據(jù)與服務(wù)支持。
TiDB 應(yīng)用價(jià)值
· HTAP 混合負(fù)載
完美支撐 OLTP + OLAP 混合負(fù)載,簡(jiǎn)化 IT 系統(tǒng)架構(gòu),大幅提升業(yè)務(wù)的實(shí)時(shí)查詢性能。
· 水平彈性擴(kuò)展
擺脫了 MySQL 分庫(kù)分表難題,幫助攜程隨時(shí)根據(jù)業(yè)務(wù)增長(zhǎng)情況進(jìn)行水平彈性擴(kuò)展。