隨著外賣、出行、酒旅等業(yè)務(wù)的高速發(fā)展,美團(tuán)對(duì)數(shù)據(jù)實(shí)時(shí)性的要求越來(lái)越高,傳統(tǒng)的批處理數(shù)倉(cāng)已難以滿足實(shí)時(shí)決策、實(shí)時(shí)風(fēng)控和實(shí)時(shí)推薦等場(chǎng)景的需求。因此,美團(tuán)投入大量資源構(gòu)建實(shí)時(shí)數(shù)倉(cāng)。在建設(shè)過(guò)程中,美團(tuán)也面臨著一系列核心痛點(diǎn),并在實(shí)踐中探索出一套行之有效的解決方案,特別是通過(guò)構(gòu)建強(qiáng)大的數(shù)據(jù)處理服務(wù)來(lái)化解這些挑戰(zhàn)。
一、美團(tuán)構(gòu)建實(shí)時(shí)數(shù)倉(cāng)的主要痛點(diǎn)
- 數(shù)據(jù)規(guī)模巨大且增長(zhǎng)迅猛:美團(tuán)業(yè)務(wù)覆蓋全國(guó),每日產(chǎn)生PB級(jí)的交易、用戶行為、物流軌跡等數(shù)據(jù)。將如此海量的數(shù)據(jù)實(shí)時(shí)接入、處理和存儲(chǔ),對(duì)系統(tǒng)的吞吐能力、計(jì)算能力和存儲(chǔ)成本構(gòu)成了嚴(yán)峻考驗(yàn)。
- 數(shù)據(jù)來(lái)源復(fù)雜多樣:數(shù)據(jù)來(lái)自數(shù)百個(gè)業(yè)務(wù)線、數(shù)千個(gè)數(shù)據(jù)表,格式各異(如MySQL binlog、日志文件、消息隊(duì)列數(shù)據(jù)等),協(xié)議和數(shù)據(jù)結(jié)構(gòu)不統(tǒng)一,導(dǎo)致實(shí)時(shí)采集、解析和清洗的復(fù)雜度極高。
- 對(duì)數(shù)據(jù)質(zhì)量和時(shí)效性的雙重要求:在實(shí)時(shí)場(chǎng)景下,既要保證數(shù)據(jù)處理的低延遲(通常要求秒級(jí)甚至毫秒級(jí)),又要保障數(shù)據(jù)的準(zhǔn)確性、完整性和一致性。例如,風(fēng)控系統(tǒng)對(duì)欺詐交易的識(shí)別必須在毫秒內(nèi)完成,且不能有誤判或漏判。
- 技術(shù)棧復(fù)雜,運(yùn)維難度大:實(shí)時(shí)數(shù)倉(cāng)涉及Flink、Kafka、HBase、ClickHouse等多種技術(shù)組件,各組件間的集成、監(jiān)控、故障恢復(fù)和性能調(diào)優(yōu)需要專業(yè)團(tuán)隊(duì)持續(xù)投入,運(yùn)維成本高昂。
- 業(yè)務(wù)需求變化快:新業(yè)務(wù)、新活動(dòng)頻繁上線,數(shù)據(jù)模型和計(jì)算邏輯需要快速迭代,要求實(shí)時(shí)數(shù)倉(cāng)具備高度的靈活性和可擴(kuò)展性。
二、解決方案:構(gòu)建強(qiáng)大的數(shù)據(jù)處理服務(wù)
針對(duì)上述痛點(diǎn),美團(tuán)通過(guò)打造一套統(tǒng)一、高效、可靠的數(shù)據(jù)處理服務(wù)平臺(tái)來(lái)系統(tǒng)性地解決問(wèn)題。
- 統(tǒng)一數(shù)據(jù)接入與標(biāo)準(zhǔn)化服務(wù):
- 開(kāi)發(fā)了通用數(shù)據(jù)采集框架,支持對(duì)各種數(shù)據(jù)源的自動(dòng)發(fā)現(xiàn)、協(xié)議適配和格式解析。
- 建立了統(tǒng)一的數(shù)據(jù)Schema注冊(cè)和管理中心,強(qiáng)制推行數(shù)據(jù)標(biāo)準(zhǔn)化,減少后續(xù)處理的歧義。
- 利用消息隊(duì)列(如Kafka)作為統(tǒng)一的數(shù)據(jù)總線,實(shí)現(xiàn)數(shù)據(jù)的緩沖和解耦,確保高吞吐。
- 流批一體的計(jì)算引擎與低代碼開(kāi)發(fā)平臺(tái):
- 基于Apache Flink構(gòu)建流批一體的計(jì)算核心,同一套代碼既可處理實(shí)時(shí)流數(shù)據(jù),也可處理歷史批量數(shù)據(jù),簡(jiǎn)化開(kāi)發(fā)并保證數(shù)據(jù)口徑一致。
- 提供可視化或SQL化的低代碼開(kāi)發(fā)平臺(tái),讓業(yè)務(wù)分析師和數(shù)據(jù)分析師也能快速配置實(shí)時(shí)計(jì)算任務(wù),大幅降低開(kāi)發(fā)門檻和迭代周期。
- 分層架構(gòu)與實(shí)時(shí)OLAP服務(wù):
- 采用經(jīng)典的實(shí)時(shí)數(shù)倉(cāng)分層架構(gòu):ODS(原始數(shù)據(jù)層)-> DWD(明細(xì)數(shù)據(jù)層)-> DWS(匯總數(shù)據(jù)層)-> ADS(應(yīng)用數(shù)據(jù)層)。每一層職責(zé)清晰,便于管理和復(fù)用。
- 在ADS層,集成了ClickHouse、Doris等實(shí)時(shí)OLAP數(shù)據(jù)庫(kù),為業(yè)務(wù)方提供亞秒級(jí)查詢響應(yīng)的數(shù)據(jù)服務(wù),支撐實(shí)時(shí)報(bào)表、即時(shí)查詢等場(chǎng)景。
- 全鏈路的數(shù)據(jù)質(zhì)量與運(yùn)維保障體系:
- 在數(shù)據(jù)處理服務(wù)中內(nèi)置數(shù)據(jù)質(zhì)量監(jiān)控模塊,對(duì)數(shù)據(jù)的延遲、丟失、重復(fù)和準(zhǔn)確性進(jìn)行實(shí)時(shí)校驗(yàn)和告警。
- 建立了從數(shù)據(jù)采集、計(jì)算到存儲(chǔ)的全鏈路監(jiān)控和追蹤系統(tǒng),能夠快速定位性能瓶頸和數(shù)據(jù)異常。
- 實(shí)現(xiàn)了計(jì)算任務(wù)的自動(dòng)化部署、彈性伸縮和故障自愈,顯著降低了運(yùn)維負(fù)擔(dān)。
- 成本優(yōu)化與資源治理:
- 通過(guò)數(shù)據(jù)壓縮、冷熱數(shù)據(jù)分層存儲(chǔ)(如將歷史明細(xì)數(shù)據(jù)轉(zhuǎn)存至成本更低的HDFS)、計(jì)算資源動(dòng)態(tài)調(diào)度等技術(shù),有效控制存儲(chǔ)和計(jì)算成本。
- 建立資源配額和審計(jì)制度,確保數(shù)據(jù)處理服務(wù)資源的合理分配和高效利用。
美團(tuán)構(gòu)建實(shí)時(shí)數(shù)倉(cāng)的痛點(diǎn)根植于其業(yè)務(wù)的超大規(guī)模、復(fù)雜性和高實(shí)時(shí)性要求。其破局之道在于不局限于單一技術(shù)的優(yōu)化,而是通過(guò)構(gòu)建一個(gè)涵蓋數(shù)據(jù)接入、計(jì)算、存儲(chǔ)、治理和服務(wù)的完整數(shù)據(jù)處理服務(wù)體系。這個(gè)體系以統(tǒng)一化、自動(dòng)化和智能化為核心,不僅有效解決了當(dāng)下的挑戰(zhàn),也為未來(lái)更復(fù)雜的實(shí)時(shí)數(shù)據(jù)場(chǎng)景奠定了堅(jiān)實(shí)的基礎(chǔ)。對(duì)于其他面臨類似問(wèn)題的企業(yè)而言,美團(tuán)的實(shí)踐表明,系統(tǒng)性的平臺(tái)化建設(shè)是應(yīng)對(duì)實(shí)時(shí)數(shù)倉(cāng)復(fù)雜性的關(guān)鍵。