攜程是全球領(lǐng)先的一站式旅行平臺(tái),旗下?lián)碛袛y程旅行網(wǎng)、去哪兒網(wǎng)、Skyscanner 等品牌。攜程旅行網(wǎng)向超過9000 萬會(huì)員提供酒店預(yù)訂、酒店點(diǎn)評(píng)及特價(jià)酒店查詢、機(jī)票預(yù)訂、飛機(jī)票查詢、時(shí)刻表、票價(jià)查詢、航班查詢等服務(wù)。
在十億級(jí)別數(shù)據(jù)量下,攜程借助TiDB HTAP能力提升業(yè)務(wù)運(yùn)營(yíng)的效率,應(yīng)用場(chǎng)景主要包括國(guó)際業(yè)務(wù) CDP 平臺(tái)、酒店結(jié)算、風(fēng)控等。
實(shí)時(shí)標(biāo)簽處理平臺(tái)面臨挑戰(zhàn)
在國(guó)際業(yè)務(wù)上,由于面臨的市場(chǎng)多,產(chǎn)品和業(yè)務(wù)復(fù)雜多樣,投放渠道多,引流費(fèi)用高,因此需要對(duì)業(yè)務(wù)和產(chǎn)品做出更精細(xì)化的管理和優(yōu)化,滿足市場(chǎng)投放和運(yùn)營(yíng)需要,降低整體成本,提高運(yùn)營(yíng)效率與轉(zhuǎn)化率。為此,攜程專門研發(fā)了國(guó)際業(yè)務(wù)動(dòng)態(tài)實(shí)時(shí)標(biāo)簽化處理平臺(tái)(以下簡(jiǎn)稱 CDP )。
攜程旅行的數(shù)據(jù)具有來源廣泛、形式多樣、離線數(shù)據(jù)處理與在線數(shù)據(jù)處理兼有等特點(diǎn),如何通過系統(tǒng)對(duì)這些數(shù)據(jù)進(jìn)行采集、管理、加工,形成滿足業(yè)務(wù)系統(tǒng)、運(yùn)營(yíng)、市場(chǎng)需求的數(shù)據(jù)和標(biāo)簽。處理好的數(shù)據(jù)需要立刻運(yùn)用到業(yè)務(wù)系統(tǒng)、EMD、PUSH 等使用場(chǎng)景中,對(duì)數(shù)據(jù)處理系統(tǒng)的時(shí)效性、準(zhǔn)確性、穩(wěn)定性以及靈活性提出了更高要求。
為了解決以上問題,CDP 系統(tǒng)必須提升數(shù)據(jù)處理能力。過去傳統(tǒng)方案是通過數(shù)倉進(jìn)行 T+1 計(jì)算,再導(dǎo)入 ES 集群存儲(chǔ),前端通過傳入查詢條件,組裝 ES 查詢條件查詢符合條件的數(shù)據(jù)。攜程已經(jīng)上線的標(biāo)簽有上百個(gè),有查詢使用的超過 50% ,由于該方案是離線計(jì)算,所以數(shù)據(jù)時(shí)效性差,依賴底層離線平臺(tái)計(jì)算和 ES 索引,查詢響應(yīng)速度較慢。
TiDB HTAP 雙引擎
滿足實(shí)時(shí)觸發(fā)、持久化儲(chǔ)存雙場(chǎng)景需求
CDP 希望在數(shù)據(jù)處理的過程中能提升數(shù)據(jù)處理時(shí)效性,同時(shí)滿足業(yè)務(wù)靈活性的要求,對(duì)于數(shù)據(jù)處理邏輯、數(shù)據(jù)更新邏輯,可以通過系統(tǒng)動(dòng)態(tài)配置規(guī)則的方式來消費(fèi)消息數(shù)據(jù)(Kafka 或 QMQ)動(dòng)態(tài)更新標(biāo)簽,業(yè)務(wù)層只需關(guān)心數(shù)據(jù)篩選邏輯及條件查詢。
根據(jù)業(yè)務(wù)需求,業(yè)務(wù)數(shù)據(jù)標(biāo)簽篩選主要分為兩大場(chǎng)景:
·實(shí)時(shí)觸發(fā)場(chǎng)景。根據(jù)業(yè)務(wù)需要,配置動(dòng)態(tài)規(guī)則,實(shí)時(shí)訂閱業(yè)務(wù)系統(tǒng)的變更消息,篩選出滿足動(dòng)態(tài)規(guī)則條件的數(shù)據(jù),通過消息的方式推送到下游業(yè)務(wù)方;
·標(biāo)簽持久化場(chǎng)景。將業(yè)務(wù)系統(tǒng)的實(shí)時(shí)業(yè)務(wù)變更消息按照業(yè)務(wù)需要,加工成業(yè)務(wù)相關(guān)的特征數(shù)據(jù),持久化存儲(chǔ)到存儲(chǔ)引擎。業(yè)務(wù)根據(jù)需要組裝查詢條件查詢引擎數(shù)據(jù),主要有 OLAP (分析類)與 OLTP (在線查詢)兩大類查詢。
基于以上需求,CDP 流式數(shù)據(jù)采用類 Kappa 架構(gòu),標(biāo)簽持久化采用類 Lambda 架構(gòu),如下圖所示:
圖:CDP 系統(tǒng)架構(gòu)
其中,標(biāo)簽持久化場(chǎng)景需要解決業(yè)務(wù)標(biāo)簽的持久化存儲(chǔ)、更新、查詢服務(wù),攜程采用了 TiDB 來存儲(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í)效性,通過 TiDB 對(duì) OLTP 和 OLAP 不同場(chǎng)景查詢特性的支持,來滿足不同業(yè)務(wù)場(chǎng)景中訪問業(yè)務(wù)特征數(shù)據(jù)的需要。
系統(tǒng)借鑒了 Lambda 數(shù)據(jù)處理架構(gòu)的思想,新增數(shù)據(jù)根據(jù)來源不同分別發(fā)送到不同的通道中,歷史全量數(shù)據(jù)通過數(shù)據(jù)批處理引擎(如 Spark)轉(zhuǎn)換完,批量寫入到數(shù)據(jù)持久化存儲(chǔ)引擎 TiDB 中。增量數(shù)據(jù)業(yè)務(wù)應(yīng)用以消息形式發(fā)送到 Kafka 或 QMQ 消息隊(duì)列,將數(shù)據(jù)按照標(biāo)簽持久化的邏輯規(guī)則處理完成,增量寫入到持久化存儲(chǔ)引擎 TiDB,以此解決數(shù)據(jù)的時(shí)效性問題。
TiDB 同時(shí)具有兩大持久化存儲(chǔ)方式,一種是行存 TiKV,可以支持 OLTP 場(chǎng)景,另一種是列存 TiFlash,可以支持 OLAP 場(chǎng)景。TiDB 數(shù)據(jù)存儲(chǔ)內(nèi)部自動(dòng)解決這兩個(gè)引擎的數(shù)據(jù)同步問題,客戶端查詢根據(jù)自身需要選擇查詢方式。同時(shí),TiDB 還能保障兩種方式有著良好的隔離性,并兼顧數(shù)據(jù)強(qiáng)一致性,出色地解決了 HTAP 場(chǎng)景的隔離性及列存同步問題。
目前,CDP 已經(jīng)與攜程各個(gè)業(yè)務(wù)系統(tǒng)進(jìn)行深度整合打通,為國(guó)際業(yè)務(wù)增長(zhǎng)提供業(yè)務(wù)特征標(biāo)簽庫的數(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 分庫分表難題,幫助攜程隨時(shí)根據(jù)業(yè)務(wù)增長(zhǎng)情況進(jìn)行水平彈性擴(kuò)展。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )