在移動互聯網高速發展的時代,數據已成為企業核心的資產與競爭力。對于擁有數億用戶的vivo而言,如何高效、穩定地處理與存儲海量的基礎數據,是支撐其業務創新、用戶體驗優化和智能決策的關鍵。vivo通過構建一套先進、彈性且可靠的基礎數據計算架構,在數據處理與存儲服務領域積累了豐富的實踐經驗。
一、挑戰:海量數據洪流下的核心訴求
vivo的業務場景多元,涵蓋用戶行為日志、設備狀態信息、應用性能數據、交互事件等,每日產生的數據量達到PB級別。這些數據具有體積巨大、來源分散、格式多樣、時效性要求高等特點。傳統的單體式或分散式數據處理系統難以應對,主要面臨三大挑戰:
- 吞吐與實時性:需要同時滿足批量離線計算的高吞吐和實時流計算的低延遲。
- 可靠與可擴展性:系統需具備高可用性,并能隨著數據量的增長近乎線性地擴展。
- 成本與效率:在保障性能的前提下,必須優化存儲與計算資源的使用效率,控制總體擁有成本。
二、架構核心:分層解耦與流批一體
為應對上述挑戰,vivo構建了以“數據湖”為核心,融合“流批一體”計算范式的基礎數據架構。整體架構分為以下幾個層次:
1. 統一數據接入層:
建立標準化的數據采集與接入平臺,兼容各類數據源(APP端、服務器日志、數據庫Binlog等)。采用Apache Flume、Kafka等組件,實現數據的實時、準實時及批量接入,并進行初步的格式標準化與臟數據過濾,為下游提供統一的數據流。
2. 彈性數據存儲層(數據湖):
以HDFS和對象存儲(如兼容S3協議)為基礎,構建企業級數據湖。將原始數據、清洗后的數據、各層加工數據統一存儲,打破數據孤島。通過引入Apache Iceberg或Delta Lake等表格格式,在數據湖之上提供ACID事務、版本管理、schema演化等能力,使得海量數據存儲兼具成本效益與查詢效率。
3. 智能計算引擎層:
這是架構的“大腦”。vivo采用了“流批一體”的設計理念:
- 批量計算:基于Apache Spark構建強大的離線數據處理能力,用于T+1的報表、用戶畫像、數據倉庫分層(ODS、DWD、DWS等)的構建。
- 流式計算:深度應用Apache Flink,處理實時點擊流、監控告警、實時推薦等場景。通過Flink的精確一次(Exactly-Once)語義和狀態管理,保障實時數據的準確性。
- “流批一體”實踐:通過將業務邏輯抽象成統一的SQL或API,讓同一套代碼既能跑在Flink流模式上,也能跑在Spark批模式上,極大降低了開發維護成本,并保證了數據處理邏輯的一致性。
4. 統一服務與治理層:
構建了集中的元數據管理、數據血緣、數據質量監控和任務調度平臺。例如,使用Apache Atlas進行數據資產管理,用DolphinScheduler或Airflow進行工作流編排。這一層確保了數據的可發現、可信、可用,是數據資產化的保障。
三、存儲服務實踐:分級存儲與智能緩存
針對海量數據的存儲,vivo實施了精細化的策略:
- 熱溫冷數據分級:根據數據的訪問頻率和時效性,將數據自動遷移至性能型SSD、容量型HDD以及成本更低的歸檔存儲中,實現存儲成本與訪問性能的最佳平衡。
- 索引與加速:對常用查詢字段建立高效的索引(如利用Hudi的索引能力),并引入Alluxio等內存加速層,為交互式查詢和實時計算提供高速緩存。
- 多副本與糾刪碼:對核心熱數據采用多副本機制保障高可用;對溫冷數據采用糾刪碼(Erasure Coding)技術,在保證可靠性的同時顯著提升存儲空間利用率。
四、應用成效與未來展望
通過這套架構的落地實踐,vivo取得了顯著成效:數據處理鏈路時效性從小時級提升到分鐘級甚至秒級;資源利用率平均提高30%以上;數據開發效率因“流批一體”而大幅提升。更重要的是,它為AI訓練、精準營銷、風控安全、用戶體驗優化等上層應用提供了堅實、高效的數據底座。
vivo將繼續探索云原生計算架構(如Kubernetes上運行Flink/Spark)、存算分離的更深層次實踐、以及AI for Data(利用AI優化數據治理與管理)等方向,讓基礎數據計算架構更智能、更彈性、更普惠,持續驅動業務價值的創造。
vivo的實踐表明,面對海量數據,一個設計優良、貼合業務且持續演進的計算與存儲架構,不僅是技術工程問題,更是企業數字化轉型的核心引擎。