九卦|新型大數據解決方案,數據湖如何建設?

fans news 發佈 2021-12-23T00:58:09+00:00

作者 | 中國農業銀行研發中心 許國平 黃雅歡 李卓蓉來源 | FCC30+編輯 | 武文 美編 | 楊文華隨著網際網路的加速發展和移動網際網路的快速興起,數據採集更方便、數據種類更豐富,行為軌跡、語音視頻等非結構化數據爆發式增長,數據規模進一步擴大。

作者 | 中國農業銀行研發中心 許國平 黃雅歡 李卓蓉

來源 | FCC30+

編輯 | 武文 美編 | 楊文華




隨著網際網路的加速發展和移動網際網路的快速興起,數據採集更方便、數據種類更豐富,行為軌跡、語音視頻等非結構化數據爆發式增長,數據規模進一步擴大。在新形勢下,傳統的資料庫、數據倉庫等處理技術無法適應快速響應、實時分析的數據需求,難以處理日誌、語音等非結構化數據,企業迫切需要一個新型大數據解決方案——「數據湖」應運而生。

一、數據湖的起源

如果把數據比作大自然中的水,數據湖就是匯聚源流的湖泊。


誕生之初,數據湖通常被定位為各類原始數據的集中存儲庫。在數據內容方面,既包括業務系統數據的原始副本,也包括用於報告、分析和機器學習等任務的加工後數據;在數據格式方面,既包括來自關係資料庫的結構化數據,也包括半結構化數據(XML、JSON)、非結構化數據(圖像、音視頻、文檔)等。


隨著技術的不斷發展和應用的不斷深入,人們逐漸發現數據湖僅存儲不管理會帶來一系列問題。湖內各類數據又多又雜難以使用,最終會退化為「數據沼澤」,存儲其中的數據也失去價值。因此,數據湖必須精細管控、有序開放,不僅要支持海量異構數據的集中存儲,還要能支持海量數據的分析處理,實現存得下、管得好、用得上。數據湖優勢如圖1所示。


特點

數據湖優勢

時至今日,數據湖已經發展為涵蓋大數據存算、治理、安全、應用的平台級一攬子解決方案,通常具備多源異構數據的採集能力、強大的數據存儲和計算能力、完善的數據管理與服務能力,可以滿足新形勢下靈活多樣的數據需求。


二、數據湖的關鍵技術

為實現海量多源異構數據集中存儲,提升存儲計算資源集約化管理水平,支持存儲計算能力快速交付,數據湖需要包括多種技術能力,總結歸納現有企業和開源數據湖的實踐情況,數據湖的關鍵技術主要包括:


1.異構存儲引擎


數據湖需要容納海量各種類型的數據,單一存儲引擎很難滿足所有的要求。分布式文件存儲HDFS雖然在結構化數據存儲領域表現優異,但是由於擴容和元數據管理困難,面對海量小文件的半結構化和非結構化數據的存儲和處理需求難以滿足。HDFS存儲原理如圖2所示。



圖2 HDFS存儲原理


而對象存儲可以滿足企業對非結構化數據的存儲需求,扁平化的數據結構允許存儲容量從傳統的SAN、NAS的TB級擴展到PB甚至EB級,同時管理數十到百億個存儲對象。



圖3 對象存儲原理


因此目前應用最廣泛的數據湖存儲引擎是將分布式文件存儲與對象存儲結合使用,綜合數據格式特點和生命周期規劃存儲區域,低成本、易維護地實現海量數據的集中存儲。


2.統一存儲視圖


為了適應數據量的爆炸式增長和數據類型的不斷豐富,數據湖存儲底座通常由多種存儲引擎構成。當存儲引擎發生變化或數據在不同存儲引擎之間流動時,應用程式開發人員往往需要開發多種數據訪問方式並隨之頻繁調整,面臨著巨大的挑戰。


因此,為了便於應用程式訪問數據,數據湖使用數據編排技術搭建上層計算框架和底層存儲引擎的橋樑。例如加州大學伯克利分校開源的Alluxio項目,為不同存儲引擎中的數據構建統一存儲視圖,向上層應用程式提供通用的客戶端api和全局命名空間;同時,它還具備緩存功能,支持熱數據的快速訪問。這類技術使得開發人員只需將重點放在數據應用邏輯上,而不需要關注數據保存在數據湖何處或存儲的特性如何。Alluxio工作流程如圖4所示。


圖4 Alluxio工作流程


3.增強存儲管理


數據湖存儲了海量原始數據文件,一方面數據定義規範的缺失會導致使用成本大幅增加;另一方面HDFS和對象存儲對於數據的快速更新,都沒有便捷的解決方案。以HDFS存儲為例,HDFS文件一旦被寫入就無法修改,只允許在文件尾繼續追加數據,如果數據錯誤需要更新只能重新全量寫一份,運維成本很高。因此,如何快速、一致地管理湖中存儲的數據,成為亟待解決的問題。


Apache Iceberg、Apache Hudi、Delta Lake等項目將資料庫事務能力引入大數據領域,重新定義數據和元數據的組織方式,在底層數據存儲格式(如Parquet、ORC等)之上提供了一種更優的數據組織格式,進一步增強了數據湖的存儲管理能力。這些新型數據組織格式支持索引、Schema預定義、ACID事務保證和小文件自動合併,能夠便捷地實現湖內數據的快速更新、插入、刪除和多版本管理。同時,一份數據可以同時擁有多種讀取視圖,能更好地支持對數據湖流批數據的使用需求。Apache Hudi工作流程如圖5所示。



圖5 Apache Hudi工作流程


4.元數據自動採集與血緣分析


數據湖的精細管理需要以元數據為核心。元數據是關於數據的數據,貫通從數據源到數據湖,記錄了數據從產生到消費的全過程。元數據信息可以幫助數據湖開發人員和使用人員方便地查找並定位數據、理解和使用數據,是數據湖發揮價值的關鍵所在。


數據湖中的數據又多又雜,應儘量選用可以自動採集、智能分析的元數據工具。以開源的元數據工具Apache Atlas為例,它為Hadoop集群提供了包括數據分類、集中策略引擎、數據血緣、安全和生命周期管理在內的元數據治理核心能力,同時支持S3接口與對象存儲交互。Apache Atlas包含一組可伸縮和可擴展的核心基礎治理服務,能夠方便地與各類大數據組件集成,自動監聽並分析數據源變化情況,實時採集元數據基礎信息和血緣管理,為數據湖提供統一高效的元數據採集和管理能力。Apache Atlas架構如圖6所示。


圖6 Apache Atlas架構


三、數據湖的優勢


與傳統的數據倉庫相比,數據湖具備以下優勢。數據湖與數據倉庫、數據集市的對比見表1。


表1 數據湖與數據倉庫、數據集市的對比



1.數據類型豐富


數據湖的存儲底座通常採用對象存儲或者對象存儲與傳統大數據存儲(如HDFS等)結合的方式,可以兼容多種數據格式,方便存儲結構化、非結構化和半結構化的數據,對象存儲易於擴展的特性也方便支持數據量的快速增長。結構化數據、半結構化數據和非結構化數據對比如圖7所示。



圖7 結構化數據、半結構化數據和非結構化數據對比


2.數據模式靈活


傳統的數據倉庫通常面向穩定的數據需求建模,採用Schema on Write(寫時定義)預先定義好數據格式,加載前進行清洗、轉換等統一的預處理,向用戶提供標準、規範、一致的數據服務,但數據模型建設完成後,Schema的修改和變更會非常繁瑣。


而數據湖一般採用Schema on Read(讀時定義)的數據模式,可直接加載原始文件,入湖前無需定義複雜的結構,用戶使用時再自行定義數據格式並按需處理,服務方式更加靈活。數據湖、數據倉庫工作模式對比如圖8所示。



圖8 數據湖、數據倉庫工作模式對比


3.數據時效提升


數據湖支持流批一體架構,能夠兼顧流處理的及時性和批處理的可靠性。當前多種開源數據湖框架均可以實現流批一體,既可以攝取增量數據,提升數據加載速度,為實時場景需求提供支撐;也可以提取全量數據,進行全量的數據加工,提供穩定的數據服務。


四、數據湖的應用場景


1.豐富客戶畫像


數據湖集中了客戶的照片、語音、文本、行為等各種結構和類型的數據,支持各種引擎對數據全方面的探查分析,將非結構化數據與結構化數據相融合,在現有的以結構化數據為主的客戶分析視圖中,補充非結構化數據特有的用戶個性數據,全方位豐富客戶畫像,構建以「客戶為中心」的全景視圖。


2.實時產品營銷


通過埋點工具捕獲客戶在掌銀、網銀、小程序等各渠道的行為日誌信息,實時傳輸到數據湖中,利用實時數據引擎,減少數據加工時間,縮短數據加工鏈路,第一時間完成場景分析,關聯客戶交易行為,挖掘客戶業務需求場景,實現實時的產品推薦與精準營銷。


3.深挖客戶需求


對銀行現有客戶群,開展進一步的用戶需求挖掘,主動將銀行服務與客戶的潛在需求進行匹配,通過多種分析引擎,完成服務與客戶的關聯,實現服務主動找客戶、主動服務客戶的功能。例如,在數據湖中,結合銀行現有服務場景,使用機器學習技術,對數據湖中存儲的客戶行駛證影像數據進行分析,獲取客戶的購車日期、車型檔次等信息,精準定位客戶車型續保時點,預測客戶換車需求,為車險、購車分期等信用卡產品營銷活動提供參考。


五、行業數據湖建設情況


數據湖技術正處於蓬勃發展期,市面上各類開源和商業產品百花齊放,主要分為Hadoop數據湖和雲原生數據湖兩大體系,均以「存算分離」和「流批融合」等關鍵技術為支撐,向著「湖倉一體」的架構演進。國外包括亞馬遜AWS數據湖、微軟ADLS Gen2數據湖等,國內阿里、騰訊、華為、金山等網際網路企業紛紛推出了數據湖產品,字節跳動、網易、快手等網際網路公司在內部搭建了自己的企業數據湖。


金融同業近兩年也在積極開展數據湖技術的研究,逐步落地並不斷演化。工商銀行已初步建成Hadoop數據湖,支持數據批量加工、實時分析和交互式分析,計劃未來將數據湖遷移到雲上,同步探索向「湖倉一體」的架構演化。建設銀行正在開展數據湖建設,依託大數據云平台提供的各類基礎能力,規劃各類標準化數據服務。中信銀行也啟動了數據湖建設,基於Hadoop生態支撐離線數據存儲加工、實時數據處理等各類場景。


六、農行數據湖建設展望


農業銀行選擇在企業級大數據平台的基礎上,圍繞「采、建、管、用」四個關鍵環節進行數據湖建設。從源頭上豐富數據種類,在建設中提升海量數據存儲計算能力,在管理上加強數據資產線上化和規範化水平,在消費端通過租戶管理、資源開放和自助服務,實現數據應用的快速構建。農業銀行數據湖一體化與自服務建設如圖9所示。


圖9 一體化與自服務建設


現已通過立機制、建工具、落實施,實現了海量內外部數據的快速入湖,為全行各業務領域百餘個應用場景提供數據支撐。同時正在積極開展數據湖新技術架構的建設落地,通過開源軟體和國產商用產品融合的方式,完成了異構存儲管理、元數據管理、計算引擎上雲及實時數據處理等關鍵技術攻關和重點場景驗證。數據湖全流程建設如圖10所示。



圖10 數據湖全流程建設


後續擬按照「試點落地,湖倉一體,全面上雲」三步走的路線,持續推進數據湖建設。近期在數據湖新技術架構的基礎上,上線各類新業務場景;中期打通數據湖與現有數倉,實現湖倉架構融合,並推進大數據與雲計算的融合,進一步提升資源管理和服務能力;最終,建成雲數據湖,實現集團數據一體化管理,形成行業領先的大數據基礎架構,全面夯實企業級數據底座,為集團提供更豐富、更及時、更開放、更融合的數據支撐。

關鍵字: