在嗶哩嗶哩(B站)快速發(fā)展的業(yè)務(wù)版圖中,數(shù)據(jù)已成為驅(qū)動(dòng)產(chǎn)品創(chuàng)新、優(yōu)化用戶(hù)體驗(yàn)和支撐商業(yè)決策的核心資產(chǎn)。面對(duì)海量、多源、實(shí)時(shí)的數(shù)據(jù)挑戰(zhàn),B站通過(guò)建設(shè)統(tǒng)一、高效、可靠的數(shù)據(jù)服務(wù)中臺(tái),特別是其核心組件——數(shù)據(jù)處理服務(wù),成功構(gòu)建了支撐億級(jí)用戶(hù)與復(fù)雜業(yè)務(wù)場(chǎng)景的數(shù)據(jù)基礎(chǔ)設(shè)施。本文將深入探討B(tài)站數(shù)據(jù)服務(wù)中臺(tái)建設(shè)實(shí)踐中,數(shù)據(jù)處理服務(wù)的關(guān)鍵架構(gòu)、技術(shù)選型與落地成效。
一、建設(shè)背景與核心挑戰(zhàn)
B站的業(yè)務(wù)生態(tài)涵蓋視頻、直播、社區(qū)、電商、游戲等多個(gè)領(lǐng)域,每日產(chǎn)生PB級(jí)的結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)。早期,各業(yè)務(wù)線獨(dú)立建設(shè)數(shù)據(jù)處理鏈路,導(dǎo)致數(shù)據(jù)孤島、計(jì)算資源浪費(fèi)、研發(fā)效率低下、數(shù)據(jù)口徑不一等問(wèn)題日益凸顯。為此,B站啟動(dòng)了數(shù)據(jù)服務(wù)中臺(tái)戰(zhàn)略,旨在構(gòu)建一個(gè)統(tǒng)一的數(shù)據(jù)接入、處理、存儲(chǔ)與服務(wù)出口,而數(shù)據(jù)處理服務(wù)正是這一中臺(tái)體系的“心臟”。
二、數(shù)據(jù)處理服務(wù)的架構(gòu)設(shè)計(jì)
B站的數(shù)據(jù)處理服務(wù)采用分層、解耦的架構(gòu)思想,主要包含以下核心模塊:
- 統(tǒng)一數(shù)據(jù)接入層:支持日志、數(shù)據(jù)庫(kù)Binlog、消息隊(duì)列(如Kafka)、API等多種數(shù)據(jù)源的實(shí)時(shí)與批量接入,通過(guò)標(biāo)準(zhǔn)化協(xié)議與格式轉(zhuǎn)換,確保數(shù)據(jù)入口的統(tǒng)一與可管理。
- 流批一體計(jì)算引擎:基于Apache Flink構(gòu)建了流批一體的數(shù)據(jù)處理核心。對(duì)于實(shí)時(shí)場(chǎng)景(如用戶(hù)行為實(shí)時(shí)分析、推薦系統(tǒng)實(shí)時(shí)特征),采用Flink Streaming模式實(shí)現(xiàn)低延遲處理;對(duì)于離線T+1報(bào)表、數(shù)據(jù)倉(cāng)庫(kù)ETL等場(chǎng)景,則利用Flink Batch模式或與Spark、Hive集成,實(shí)現(xiàn)一套代碼維護(hù)流批兩種邏輯,大幅降低開(kāi)發(fā)和運(yùn)維復(fù)雜度。
- 任務(wù)調(diào)度與編排平臺(tái):自研了可視化的工作流調(diào)度系統(tǒng),支持DAG(有向無(wú)環(huán)圖)任務(wù)編排、依賴(lài)管理、故障自愈與監(jiān)控告警。該平臺(tái)能夠智能調(diào)度數(shù)十萬(wàn)計(jì)的日處理任務(wù),保障數(shù)據(jù)處理管線的穩(wěn)定高效運(yùn)行。
- 統(tǒng)一數(shù)據(jù)存儲(chǔ)與元數(shù)據(jù)管理:處理后的數(shù)據(jù)根據(jù)冷熱特性與訪問(wèn)模式,分層存儲(chǔ)于HDFS、HBase、ClickHouse、Redis等系統(tǒng)中。構(gòu)建了統(tǒng)一的元數(shù)據(jù)中心,對(duì)數(shù)據(jù)血緣、數(shù)據(jù)質(zhì)量、生命周期進(jìn)行全鏈路治理,確保數(shù)據(jù)的可信與可用。
- 數(shù)據(jù)服務(wù)化輸出層:通過(guò)統(tǒng)一的數(shù)據(jù)服務(wù)網(wǎng)關(guān)(Data API Gateway),將處理后的數(shù)據(jù)以API、消息、文件等多種形式,安全、高效地提供給下游業(yè)務(wù)系統(tǒng)、分析平臺(tái)與數(shù)據(jù)產(chǎn)品使用。
三、關(guān)鍵技術(shù)實(shí)踐與創(chuàng)新
- 實(shí)時(shí)數(shù)倉(cāng)建設(shè):基于Flink SQL與CDC(Change Data Capture)技術(shù),實(shí)現(xiàn)了從業(yè)務(wù)數(shù)據(jù)庫(kù)到數(shù)據(jù)倉(cāng)庫(kù)的實(shí)時(shí)同步與整合,將傳統(tǒng)T+1的維度數(shù)據(jù)更新延遲縮短至分鐘級(jí),有力支撐了實(shí)時(shí)BI與運(yùn)營(yíng)決策。
- 數(shù)據(jù)質(zhì)量保障體系:在數(shù)據(jù)處理的關(guān)鍵節(jié)點(diǎn)嵌入數(shù)據(jù)質(zhì)量校驗(yàn)規(guī)則(如完整性、一致性、準(zhǔn)確性檢查),并建立了閉環(huán)的監(jiān)控、告警與修復(fù)流程,確保輸出數(shù)據(jù)的可靠性。
- 資源彈性與成本優(yōu)化:利用Kubernetes實(shí)現(xiàn)計(jì)算資源的容器化與彈性伸縮,根據(jù)業(yè)務(wù)負(fù)載動(dòng)態(tài)調(diào)整資源,結(jié)合智能的作業(yè)優(yōu)化(如小文件合并、動(dòng)態(tài)資源分配),在保障SLA的同時(shí)有效控制了計(jì)算成本。
- 一站式開(kāi)發(fā)平臺(tái):為數(shù)據(jù)開(kāi)發(fā)人員提供了集代碼開(kāi)發(fā)、調(diào)試、測(cè)試、發(fā)布、運(yùn)維于一體的可視化IDE,屏蔽底層基礎(chǔ)設(shè)施復(fù)雜性,極大提升了數(shù)據(jù)產(chǎn)品的研發(fā)效率。
四、落地成效與業(yè)務(wù)價(jià)值
通過(guò)數(shù)據(jù)處理服務(wù)中臺(tái)的建設(shè),B站取得了顯著的成效:
- 效率提升:數(shù)據(jù)開(kāi)發(fā)迭代周期平均縮短50%以上,數(shù)據(jù)需求交付時(shí)間從天級(jí)降至小時(shí)級(jí)甚至分鐘級(jí)。
- 成本降低:通過(guò)統(tǒng)一資源調(diào)度與計(jì)算優(yōu)化,整體計(jì)算資源利用率提升超30%,存儲(chǔ)成本通過(guò)智能分層下降明顯。
- 質(zhì)量與穩(wěn)定性:數(shù)據(jù)質(zhì)量問(wèn)題的發(fā)現(xiàn)與修復(fù)效率大幅提升,核心數(shù)據(jù)處理任務(wù)SLA達(dá)到99.99%,保障了業(yè)務(wù)連續(xù)性與決策準(zhǔn)確性。
- 賦能業(yè)務(wù)創(chuàng)新:穩(wěn)定、實(shí)時(shí)、高質(zhì)量的數(shù)據(jù)供給,為個(gè)性化推薦、內(nèi)容安全、商業(yè)化廣告、用戶(hù)增長(zhǎng)等核心業(yè)務(wù)場(chǎng)景提供了強(qiáng)大的數(shù)據(jù)驅(qū)動(dòng)能力,成為B站業(yè)務(wù)持續(xù)增長(zhǎng)的重要引擎。
五、未來(lái)展望
面向B站數(shù)據(jù)處理服務(wù)將繼續(xù)朝著智能化、平臺(tái)化、云原生的方向演進(jìn)。重點(diǎn)包括:探索AI for DataOps,實(shí)現(xiàn)數(shù)據(jù) pipeline 的智能調(diào)優(yōu)與異常預(yù)測(cè);深化數(shù)據(jù)湖倉(cāng)一體架構(gòu),提升數(shù)據(jù)存儲(chǔ)與分析的靈活性;擁抱云原生技術(shù)棧,進(jìn)一步增強(qiáng)系統(tǒng)的彈性、可觀測(cè)性與全球化部署能力。
B站的數(shù)據(jù)處理服務(wù)中臺(tái)建設(shè)實(shí)踐表明,一個(gè)設(shè)計(jì)優(yōu)良、持續(xù)演進(jìn)的數(shù)據(jù)處理體系,不僅是應(yīng)對(duì)數(shù)據(jù)規(guī)模與復(fù)雜性挑戰(zhàn)的技術(shù)方案,更是企業(yè)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)文化、釋放數(shù)據(jù)核心價(jià)值的戰(zhàn)略基石。