大數據“復活”記
712
2025-04-02
在上節云計算行業應用—大數據@音視頻(一)中,我們探討了隨著企業業務發展和產生消費數據量級的增加,大數據技術不斷打破原有極限,相關技術不斷演進,新的大數據架構層出不窮。本節我們將深入大數據行業應用,從上節討論到的數據湖出發,結合音視頻行業相關業務場景和相關大數據架構,更進一步的理解大數據技術和華為云相關服務的應用。
1. 數據湖基本架構
數據湖是伴隨企業業務和數據量成長起來的新一代的大數據基礎設施,我們先從企業實際業務數據流出發,來進一步探索數據湖的架構。
音視頻行業大數據業務流程
上圖所示的是音視頻行業比較常見的數據流程和大數據架構以及與之相配套的數據處理基礎設施。
從數據流向上來看,業務側產生的日志信息(點擊、瀏覽、購買、、音視頻播放、評論等數據)通過埋點等操作收集到日志系統,再利用日志數據采集、聚合和傳輸系統傳入分布式消息隊列中間件進行后續的數據處理。分布式消息隊列中間件具備高效可靠的消息異步傳遞機制,能夠將收集到的日志數據傳遞給后端不同的系統,這也說明了數據湖需要豐富且強大的數據接入能力。這個業務實例中,數據被分別傳送到了批量處理系統和實時處理系統進行批、流處理。可以看到,以對象存儲服務構建的數據湖不僅存儲了經過批、流處理的結構化數據,還存儲了原始日志數據用于如機器學習等數據處理系統的使用。同時,流處理因為對實時性的要求,數據在接收過程中可能會存在一定的質量問題,此時可以利用批處理中沉淀的歷史規范數據對流處理中的數據進行驗證、補全等操作。
此外,經過良好設計的schema和可共享的元數據對數據湖中數據的靈活性、可管理性及可追溯性都至關重要,這也直接影響了企業利用源源不斷的數據構建數據倉庫以及構建面向某一特定業務的數據集市的質量和能力。
除了強大的存儲能力和豐富的數據處理功能,為了保證企業業務高效、安全、靈活的部署、使用,數據湖還提供了強大的數據管理能力。管理能力具體又可分為基本管理能力和擴展管理能力。基本管理能力包括對各類元數據的管理、數據訪問控制、數據資產管理;擴展管理能力包括任務管理、流程編排以及與數據質量、數據治理相關的能力。任務管理和流程編排主要用來管理、編排、調度、監測在數據湖系統中處理數據的各類任務。
針對上述音視頻業務實例中所需要的數據管理、運營能力,華為云提供一站式的云原生智能數據湖運營平臺DGC來提供完整的智能數據管理能力。貼合企業實際業務,提供業務定制化的批量作業開發流、作業開發、腳本開發、資源管理、算子擴展、作業編排、作業調度、事件通知、增量集成、場景化遷移等能力。幫助企業快速構建圍繞云原生數據湖的從數據接入到數據分析的端到端智能數據系統,緊密貼合企業業務,消除數據孤島,統一數據標準,加快數據變現,實現企業大數據系統的不斷迭代更新。
華為云數據湖治理、運營平臺
在介紹當前熱門的數據湖架構之前我們結合音視頻領域大數據流程實例進行了初探,下面我們將重點探索一下Lambda和Kappa這兩個數據處理架構,了解它們是怎么在云原生數據湖的基礎上解決實時數據處理中的彈性伸縮和容災問題,以及怎樣在支持離線和實時增量更新的同時保證可擴展性。
1.1. Lambda架構
Lambda架構
Lambda架構是一種能夠高效處理海量數據、實時數據的數據處理技術,其高效性來源于大吞吐量、低延時以及良好的容錯性。獲客成本的提高對數據深度挖掘和精細化管理提出了更高的要求,為了滿足如千人千面這類實時性要求高的計算場景,流式計算引擎應運而生,如Storm、Spark Streaming、Flink等。Lambda架構的核心理念是“批流一體”,利用流處理引擎處理實時數據,預測基礎模型更新內容,同時將作為“預測燃料”的不同事件存入批處理系統。為了解決系統面對的海量事件以及增量處理任務,Lambda架構將數據處理流程分為了三層:離線層(batch layer),加速層(speed layer),服務層(serving layer)。
離線層
數據流一分為二,每個數據樣本都會同時發給離線層和加速層。所有進入離線層的數據流被數據湖中基于內存的數據庫或NoSQL類數據庫永久的存儲下來,之后離線層會使用如MapReduce、Spark或一些機器學習方法對數據進行處理并由此對接下來的內容進行預測。
加速層
事件溯源是指使用事件進行預測的同時實時更新存儲系統,加速層會享用離線層事件溯源成果。離線層中的數據處理會涉及增量程序,MapReduce或機器學習模型的更新,模型會被加速層進一步用來處理新數據。這樣,加速層借助富集過程得到的結果,保證服務層請求響應延遲處于低位;加速層也幾乎只處理實時數據,計算負荷較低,延遲有保障。
服務層
從離線層得到離線視圖,加速層得到準實時視圖,統一送給服務層。服務層使用這些信息處理等候的查詢。
Lambda架構是準實時處理架構,既能抵御故障又具備可擴展性,在離線層和加速層的加持下,不斷將新數據存入數據湖中并保證既有數據的完整性和可靠性。
Lambda架構下的音視頻推薦系統
上圖展示的是音視頻行業根據用戶行為(瀏覽、觀看、點擊、、評論、購買等),依托數據湖及Lambda架構進行千人千面音視頻推薦的推薦系統架構。日志數據通過客戶端的埋點進行收集并存儲在數據湖中,經過清洗的數據流分別進入批、流處理系統分別進行模型的訓練和基于當前模型的對于實時數據的推理預測處理,批、流處理后的數據上報給客戶業務后端,其作為整體框架的服務層將推薦結果統一推送給客戶端,完成客戶端的推薦業務。
1.2. Kappa架構
批、流一體的Lambda架構固然強大,但是復雜的架構和邏輯也帶來了更大的編碼開銷和部署及遷移的成本;此外,某些企業業務針對具體場景重新離線訓練一遍模型的益處不大。因此,新的架構Kappa由此誕生。
Kappa架構
Kappa架構是在離線層對滿足企業業務需求不是必須項時的一個合理選項。該架構適合實時處理不同事件,所有業務請求都能通過加速層對實時數據流的處理得到滿足,大大減低了“批流分離”處理鏈路的研發復雜性。
Kappa架構刪除了離線層,將數據通道以消息隊列如Kafka進行代替。數據依舊以流處理為主,但是全量數據存儲在了數據湖,當需要進行離線分析或者改進了現有算法再次計算的時候,則將數據湖中的歷史數據再次經過消息隊列重新處理一次即可。
2. 湖倉一體
數據分析演進分析
數據規模和復雜性的提高使得企業用戶對數據處理分析的實時性和融合性提出了更高的要求,“湖倉一體”的發展方向開始出現,它打破了數據湖與數據倉庫之間的壁壘,使割裂的數據得以融合,減少數據分析中的搬遷,實現統一的數據管理。
傳統的數據湖和數據倉庫有各自的重點解決方向和局限性:
傳統數據湖主要以離線批量計算為主,因此不支持數據倉庫的數據管理能力,難以提高數據質量;數據入湖時效性差,不支持實時更新,數據無法強一致性;主題建模不友好,無法直接通過歷史數據拉鏈建模;同時交互分析通常將數據搬遷到數據倉庫平臺,造成分析鏈路長,數據冗余存儲;批、流等場景融合不夠,無法滿足企業的海量數據訴求。
數據倉庫滿足不了對于非結構化數據的分析需求;同時倉與湖之間難以互聯互通,數據協同效率較低,無法支持跨平臺透明訪問,形成了數據孤島;缺乏全局數據視圖,不同平臺接口差異和不同開發管理工具,造成用戶開發使用復雜,數據分別管理維護代價高體驗差。
湖倉一體的出現試圖去融合數據倉庫和數據湖這兩者之間的差異,通過將數倉與數據湖融合,使得存儲變得更為廉價和彈性,同時數據質量得到提升,減小了數據冗余。在湖倉一體lakehouse的構建中,ETL起了非常重要的作用,它能夠將未經規整的數據湖層數據轉換成數倉層結構化的數據。
華為云為企業用戶提供了湖倉一體的解決方案,涵蓋了分布式存儲、大數據、數據倉庫、數據治理、機器學習等能力。參考架構如下:
湖倉一體解決方案
數據湖架構演化
數據存儲層
數據存儲層基于云原生架構,通過對象存儲服務OBS統一管理湖&倉,實現湖倉共享存儲資源池,針對同一份元數據定義支持各種場景,提供API方便各類工具和引擎直接訪問數據。
OBS作為華為云數據湖戰略底座,有4個核心點:
提供融合的數據平面,以對象語義+文件語義溝通構建統一的數據基礎底座,具備對象存儲的橫向擴展能力,同時支持一份數據多接口讀寫,使一份數據滿足多種計算引擎的數據讀取需求,讓數據不跑路,盡量避免數據冗余,降低存儲成本;
提供滿足各類非結構化數據的協議訪問和客戶端工具,滿足公網、內網各平面數據互通,支持各類業務數據的訪問;
提供高性能的全局緩存以應對性能風暴。因為如果實現了融合的數據平面和多種協議的訪問,必然會面臨同一份數據高并發訪問的問題。OBS構建了一個高性能的全局緩存,只要任一節點讀取到了數據對象,就能夠被其他節點并發訪問內存,從而大大提升系統并發性能,降低磁盤IO壓力;
掌握編碼容錯技術(EC,erasure code),以數據冗余檢測替代一份數據存多份的多副本技術,以更低成本、更高技術含量為云存儲池提供相同甚至更高數據可靠性。將磁盤空間利用率從三副本33%提升到80%,節省硬件成本,實現磁盤空間利用率40%提升。
湖倉一體數據底座
計算引擎層
計算引擎層把事物能力引入數據湖,通過河圖引擎HetuEngine實現跨域多源統一訪問,湖倉數據互通協同,數據免搬遷:
通過CarbonData和Hudi數據存儲引擎實現數據實時、增量更新,數據T+0實時入湖,大幅縮短傳統T+1,T+2時延。引入增量處理框架,實現數據湖事物能力,支持入湖過程Update、Delete等;
HetuEngine支持跨源跨域統一SQL訪問,用戶層基于統一的標準SQL接口,對接多個數據源(HDFS,HBASE,DWS等),提供秒級交互式訪問,滿足各種統計分析、多表Join關聯等,讓分析建模人員數據分析更容易,降低訪問門檻;
打破數據墻,支持數據湖與數據倉庫間的數據互聯互通、跨平臺協同計算,數據面搬遷。用戶可以基于一份數據進行批、流、交互式融合分析,貼源加工、整合關聯、主題加工等都在湖內,數據不出湖,分析鏈路短,加速業務創新。
運營管理層
運營管理層提供統一的數據開發和治理環境,具備安全管理功能,支持多引擎任務統一開發和編制,數據統一建模和質量監測,實現湖倉一致的開發治理體驗。
結語
云計算行業應用—大數據在音視頻行業應用到這就告一段落了,云計算相關技術服務繁多,架構復雜,很難通過幾篇文章全面展開,不過很高興有此機會可以一個行業的一隅出發來進行探討,希望各位讀者能夠指出文章的不足,多多交流探討。
參考
A brief introduction to two data processing architectures — Lambda and Kappa for Big Data,Iman Samizadeh;
mp.weixin.qq.com/s/Il6vVOb84yhD2asRZJlgiw;
https://mp.weixin.qq.com/s/zYab7IHbmYw6aZ06TyeJDQ;
http://3ms.huawei.com/km/blogs/details/9328145;
BigData Pro 大數據 MapReduce服務 云計算 圖引擎服務 GES 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。