TiDB 在攜程 | 實時標籤處理平臺優化實踐
業務挑戰
在國際業務上,由於面臨的市場多,產品和業務複雜多樣,投放渠道多,引流費用高,因此需要對業務和產品做出更精細化的管理和優化,滿足市場投放和運營需要,降低整體成本,提高運營效率與轉化率。為此,攜程專門研發了國際業務動態實時標籤化處理平臺(以下簡稱 CDP )。
攜程旅行的資料具有來源廣泛、形式多樣、離線資料處理與線上資料處理兼有等特點,如何通過系統對這些資料進行採集、管理、加工,形成滿足業務系統、運營、市場需求的資料和標籤。處理好的資料需要立刻運用到業務系統、EMD、PUSH 等使用場景中,對資料處理系統的時效性、準確性、穩定性以及靈活性提出了更高要求。
為了解決以上問題,CDP 系統必須提升資料處理能力。過去傳統方案是通過數倉進行 T+1 計算,再匯入 ES 叢集儲存,前端通過傳入查詢條件,組裝 ES 查詢條件查詢符合條件的資料。攜程已經上線的標籤有上百個,有查詢使用的超過 50% ,由於該方案是離線計算,所以資料時效性差,依賴底層離線平臺計算和 ES 索引,查詢響應速度較慢。
解決方案
CDP 希望在資料處理的過程中能提升資料處理時效性,同時滿足業務靈活性的要求,對於資料處理邏輯、資料更新邏輯,可以通過系統動態配置規則的方式來消費訊息資料(Kafka 或 QMQ)動態更新標籤,業務層只需關心資料篩選邏輯及條件查詢。 根據業務需求,業務資料標籤篩選主要分為兩大場景:
-
實時觸發場景。根據業務需要,配置動態規則,實時訂閱業務系統的變更訊息,篩選出滿足動態規則條件的資料,通過訊息的方式推送到下游業務方;
-
標籤持久化場景。將業務系統的實時業務變更訊息按照業務需要,加工成業務相關的特徵資料,持久化儲存到儲存引擎。業務根據需要組裝查詢條件查詢引擎資料,主要有 OLAP (分析類)與 OLTP (線上查詢)兩大類查詢。
基於以上需求,CDP 流式資料採用類 Kappa 架構,標籤持久化採用類 Lambda 架構,如下圖所示:
其中,標籤持久化場景需要解決業務標籤的持久化儲存、更新、查詢服務,攜程採用了 TiDB 來儲存業務持久化的標籤,並採用實時觸發場景中的動態規則配置方式消費業務系統資料變更訊息,保證業務持久化標籤的時效性,通過 TiDB 對 OLTP 和 OLAP 不同場景查詢特性的支援,來滿足不同業務場景中訪問業務特徵資料的需要。
系統借鑑了 Lambda 資料處理架構的思想,新增資料根據來源不同分別傳送到不同的通道中,歷史全量資料通過資料批處理引擎(如 Spark)轉換完,批量寫入到資料持久化儲存引擎 TiDB 中。增量資料業務應用以訊息形式傳送到 Kafka 或 QMQ 訊息佇列,將資料按照標籤持久化的邏輯規則處理完成,增量寫入到持久化儲存引擎 TiDB,以此解決資料的時效性問題。
TiDB 同時具有兩大持久化儲存方式,一種是行存 TiKV ,可以支援 OLTP 場景,另一種是列存 TiFlash ,可以支援 OLAP 場景。TiDB 資料儲存內部自動解決這兩個引擎的資料同步問題,客戶端查詢根據自身需要選擇查詢方式。同時,TiDB 還能保障兩種方式有著良好的隔離性,併兼顧資料強一致性,出色地解決了 HTAP 場景的隔離性及列存同步問題。
目前,CDP 已經與攜程各個業務系統進行深度整合打通,為國際業務增長提供業務特徵標籤庫的資料與服務支援。
應用價值
-
HTAP 混合負載:完美支撐 OLTP + OLAP 混合負載,簡化 IT 系統架構,大幅提升業務的實時查詢效能。
-
水平彈性擴充套件:擺脫 MySQL 分庫分表難題,幫助攜程隨時根據業務增長情況進行水平彈性擴充套件。
- 【必須收藏】別再亂找TiDB 叢集部署教程了,這篇保姆級教程來幫你!!| 博學谷狂野架構師
- 【建議收藏】7000 字的TIDB保姆級簡介,你見過嗎
- 文盤Rust -- 安全連線 TiDB/Mysql
- 存貨庫存模型升級始末 | 得物技術
- TiDB 6.5 新特性解析丨過去一年,我們是如何讓 TiFlash 高效又穩定地榨乾 CPU?
- TiDB 在安信證券資產中心與極速交易場景的實踐
- 微眾銀行 TiDB HTAP 和自動化運維實踐
- TiDB 底層儲存結構 LSM 樹原理介紹
- TiDB 的“聚簇因子” -- 從 cop task 到 shard_row_id_bits
- Mysql到TiDB遷移,雙寫資料庫兜底方案
- 如何構建企業內的 TiDB 自運維體系
- 如何構建企業內的 TiDB 自運維體系
- StoneDB 首席架構師李浩:如何選擇一款 HTAP 產品?
- TiDB Hackathon 2022丨總獎金池超 35 萬!邀你喚醒程式碼世界的更多可能性!
- Hackathon 實用指南丨快速給 TiDB 新增一個功能
- TiDB Hackathon 2022丨總獎金池超 35 萬!邀你喚醒程式碼世界的更多可能性!
- 啟用資料價值,探究DataOps下的資料架構及其實踐丨DTVision開發治理篇
- TiFlash 原始碼閱讀(九)TiFlash 中常用運算元的設計與實現
- TiDB Hackathon 2022丨總獎金池超 35 萬!邀你喚醒程式碼世界的更多可能性!
- TiDB監控節點擴縮容操作(是否保留歷史資料)