隨著互聯(lián)網(wǎng)的加速發(fā)展和移動(dòng)互聯(lián)網(wǎng)的快速興起,數(shù)據(jù)采集更方便、數(shù)據(jù)種類(lèi)更豐富,行為軌跡、語(yǔ)音視頻等非結(jié)構(gòu)化數(shù)據(jù)爆發(fā)式增長(zhǎng),數(shù)據(jù)規(guī)模進(jìn)一步擴(kuò)大。在新形勢(shì)下,傳統(tǒng)的數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)等處理技術(shù)無(wú)法適應(yīng)快速響應(yīng)、實(shí)時(shí)分析的數(shù)據(jù)需求,難以處理日志、語(yǔ)音等非結(jié)構(gòu)化數(shù)據(jù),企業(yè)迫切需要一個(gè)新型大數(shù)據(jù)解決方案——“數(shù)據(jù)湖”應(yīng)運(yùn)而生。
數(shù)據(jù)湖的起源
如果把數(shù)據(jù)比作大自然中的水,數(shù)據(jù)湖就是匯聚源流的湖泊。誕生之初,數(shù)據(jù)湖通常被定位為各類(lèi)原始數(shù)據(jù)的集中存儲(chǔ)庫(kù)。在數(shù)據(jù)內(nèi)容方面,既包括業(yè)務(wù)系統(tǒng)數(shù)據(jù)的原始副本,也包括用于報(bào)告、分析和機(jī)器學(xué)習(xí)等任務(wù)的加工后數(shù)據(jù);在數(shù)據(jù)格式方面,既包括來(lái)自關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)化數(shù)據(jù),也包括半結(jié)構(gòu)化數(shù)據(jù)(XML、JSON)、非結(jié)構(gòu)化數(shù)據(jù)(圖像、音視頻、文檔)等。隨著技術(shù)的不斷發(fā)展和應(yīng)用的不斷深入,人們逐漸發(fā)現(xiàn)數(shù)據(jù)湖僅存儲(chǔ)不管理會(huì)帶來(lái)一系列問(wèn)題。湖內(nèi)各類(lèi)數(shù)據(jù)又多又雜難以使用,最終會(huì)退化為“數(shù)據(jù)沼澤”,存儲(chǔ)其中的數(shù)據(jù)也失去價(jià)值。因此,數(shù)據(jù)湖必須精細(xì)管控、有序開(kāi)放,不僅要支持海量異構(gòu)數(shù)據(jù)的集中存儲(chǔ),還要能支持海量數(shù)據(jù)的分析處理,實(shí)現(xiàn)存得下、管得好、用得上。數(shù)據(jù)湖優(yōu)勢(shì)如圖1所示。

數(shù)據(jù)湖優(yōu)勢(shì):時(shí)至今日,數(shù)據(jù)湖已經(jīng)發(fā)展為涵蓋大數(shù)據(jù)存算、治理、安全、應(yīng)用的平臺(tái)級(jí)一攬子解決方案,通常具備多源異構(gòu)數(shù)據(jù)的采集能力、強(qiáng)大的數(shù)據(jù)存儲(chǔ)和計(jì)算能力、完善的數(shù)據(jù)管理與服務(wù)能力,可以滿足新形勢(shì)下靈活多樣的數(shù)據(jù)需求。(詳見(jiàn):2萬(wàn)字詳解數(shù)據(jù)湖:概念、特征、架構(gòu)與案例)
數(shù)據(jù)湖的關(guān)鍵技術(shù)
為實(shí)現(xiàn)海量多源異構(gòu)數(shù)據(jù)集中存儲(chǔ),提升存儲(chǔ)計(jì)算資源集約化管理水平,支持存儲(chǔ)計(jì)算能力快速交付,數(shù)據(jù)湖需要包括多種技術(shù)能力,總結(jié)歸納現(xiàn)有企業(yè)和開(kāi)源數(shù)據(jù)湖的實(shí)踐情況,數(shù)據(jù)湖的關(guān)鍵技術(shù)主要包括:
1.異構(gòu)存儲(chǔ)引擎
數(shù)據(jù)湖需要容納海量各種類(lèi)型的數(shù)據(jù),單一存儲(chǔ)引擎很難滿足所有的要求。分布式文件存儲(chǔ)HDFS雖然在結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)領(lǐng)域表現(xiàn)優(yōu)異,但是由于擴(kuò)容和元數(shù)據(jù)管理困難,面對(duì)海量小文件的半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理需求難以滿足。HDFS存儲(chǔ)原理如圖2所示。

圖2?HDFS存儲(chǔ)原理
而對(duì)象存儲(chǔ)可以滿足企業(yè)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)需求,扁平化的數(shù)據(jù)結(jié)構(gòu)允許存儲(chǔ)容量從傳統(tǒng)的SAN、NAS的TB級(jí)擴(kuò)展到PB甚至EB級(jí),同時(shí)管理數(shù)十到百億個(gè)存儲(chǔ)對(duì)象。

圖3?對(duì)象存儲(chǔ)原理
因此目前應(yīng)用最廣泛的數(shù)據(jù)湖存儲(chǔ)引擎是將分布式文件存儲(chǔ)與對(duì)象存儲(chǔ)結(jié)合使用,綜合數(shù)據(jù)格式特點(diǎn)和生命周期規(guī)劃存儲(chǔ)區(qū)域,低成本、易維護(hù)地實(shí)現(xiàn)海量數(shù)據(jù)的集中存儲(chǔ)。
2.統(tǒng)一存儲(chǔ)視圖
為了適應(yīng)數(shù)據(jù)量的爆炸式增長(zhǎng)和數(shù)據(jù)類(lèi)型的不斷豐富,數(shù)據(jù)湖存儲(chǔ)底座通常由多種存儲(chǔ)引擎構(gòu)成。當(dāng)存儲(chǔ)引擎發(fā)生變化或數(shù)據(jù)在不同存儲(chǔ)引擎之間流動(dòng)時(shí),應(yīng)用程序開(kāi)發(fā)人員往往需要開(kāi)發(fā)多種數(shù)據(jù)訪問(wèn)方式并隨之頻繁調(diào)整,面臨著巨大的挑戰(zhàn)。因此,為了便于應(yīng)用程序訪問(wèn)數(shù)據(jù),數(shù)據(jù)湖使用數(shù)據(jù)編排技術(shù)搭建上層計(jì)算框架和底層存儲(chǔ)引擎的橋梁。例如加州大學(xué)伯克利分校開(kāi)源的Alluxio項(xiàng)目,為不同存儲(chǔ)引擎中的數(shù)據(jù)構(gòu)建統(tǒng)一存儲(chǔ)視圖,向上層應(yīng)用程序提供通用的客戶端api和全局命名空間;同時(shí),它還具備緩存功能,支持熱數(shù)據(jù)的快速訪問(wèn)。這類(lèi)技術(shù)使得開(kāi)發(fā)人員只需將重點(diǎn)放在數(shù)據(jù)應(yīng)用邏輯上,而不需要關(guān)注數(shù)據(jù)保存在數(shù)據(jù)湖何處或存儲(chǔ)的特性如何。Alluxio工作流程如圖4所示。

圖4 Alluxio工作流程
3.增強(qiáng)存儲(chǔ)管理
數(shù)據(jù)湖存儲(chǔ)了海量原始數(shù)據(jù)文件,一方面數(shù)據(jù)定義規(guī)范的缺失會(huì)導(dǎo)致使用成本大幅增加;另一方面HDFS和對(duì)象存儲(chǔ)對(duì)于數(shù)據(jù)的快速更新,都沒(méi)有便捷的解決方案。以HDFS存儲(chǔ)為例,HDFS文件一旦被寫(xiě)入就無(wú)法修改,只允許在文件尾繼續(xù)追加數(shù)據(jù),如果數(shù)據(jù)錯(cuò)誤需要更新只能重新全量寫(xiě)一份,運(yùn)維成本很高。因此,如何快速、一致地管理湖中存儲(chǔ)的數(shù)據(jù),成為亟待解決的問(wèn)題。
Apache Iceberg、Apache Hudi、Delta Lake等項(xiàng)目將數(shù)據(jù)庫(kù)事務(wù)能力引入大數(shù)據(jù)領(lǐng)域,重新定義數(shù)據(jù)和元數(shù)據(jù)的組織方式,在底層數(shù)據(jù)存儲(chǔ)格式(如Parquet、ORC等)之上提供了一種更優(yōu)的數(shù)據(jù)組織格式,進(jìn)一步增強(qiáng)了數(shù)據(jù)湖的存儲(chǔ)管理能力。這些新型數(shù)據(jù)組織格式支持索引、Schema預(yù)定義、ACID事務(wù)保證和小文件自動(dòng)合并,能夠便捷地實(shí)現(xiàn)湖內(nèi)數(shù)據(jù)的快速更新、插入、刪除和多版本管理。同時(shí),一份數(shù)據(jù)可以同時(shí)擁有多種讀取視圖,能更好地支持對(duì)數(shù)據(jù)湖流批數(shù)據(jù)的使用需求。Apache Hudi工作流程如圖5所示。

圖5 Apache Hudi工作流程
4.元數(shù)據(jù)自動(dòng)采集與血緣分析
數(shù)據(jù)湖的精細(xì)管理需要以元數(shù)據(jù)為核心。元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),貫通從數(shù)據(jù)源到數(shù)據(jù)湖,記錄了數(shù)據(jù)從產(chǎn)生到消費(fèi)的全過(guò)程。元數(shù)據(jù)信息可以幫助數(shù)據(jù)湖開(kāi)發(fā)人員和使用人員方便地查找并定位數(shù)據(jù)、理解和使用數(shù)據(jù),是數(shù)據(jù)湖發(fā)揮價(jià)值的關(guān)鍵所在。數(shù)據(jù)湖中的數(shù)據(jù)又多又雜,應(yīng)盡量選用可以自動(dòng)采集、智能分析的元數(shù)據(jù)工具。以開(kāi)源的元數(shù)據(jù)工具Apache Atlas為例,它為Hadoop集群提供了包括數(shù)據(jù)分類(lèi)、集中策略引擎、數(shù)據(jù)血緣、安全和生命周期管理在內(nèi)的元數(shù)據(jù)治理核心能力,同時(shí)支持S3接口與對(duì)象存儲(chǔ)交互。Apache Atlas包含一組可伸縮和可擴(kuò)展的核心基礎(chǔ)治理服務(wù),能夠方便地與各類(lèi)大數(shù)據(jù)組件集成,自動(dòng)監(jiān)聽(tīng)并分析數(shù)據(jù)源變化情況,實(shí)時(shí)采集元數(shù)據(jù)基礎(chǔ)信息和血緣管理,為數(shù)據(jù)湖提供統(tǒng)一高效的元數(shù)據(jù)采集和管理能力。Apache Atlas架構(gòu)如圖6所示。

圖6 Apache Atlas架構(gòu)
數(shù)據(jù)湖的優(yōu)勢(shì)
與傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)相比,數(shù)據(jù)湖具備以下優(yōu)勢(shì)。數(shù)據(jù)湖與數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市的對(duì)比見(jiàn)表1。(詳見(jiàn):關(guān)于數(shù)據(jù)中臺(tái)、數(shù)據(jù)平臺(tái)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖等數(shù)據(jù)概念的對(duì)比解析)
表1 數(shù)據(jù)湖與數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市的對(duì)比

1.數(shù)據(jù)類(lèi)型豐富
數(shù)據(jù)湖的存儲(chǔ)底座通常采用對(duì)象存儲(chǔ)或者對(duì)象存儲(chǔ)與傳統(tǒng)大數(shù)據(jù)存儲(chǔ)(如HDFS等)結(jié)合的方式,可以兼容多種數(shù)據(jù)格式,方便存儲(chǔ)結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),對(duì)象存儲(chǔ)易于擴(kuò)展的特性也方便支持?jǐn)?shù)據(jù)量的快速增長(zhǎng)。結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)對(duì)比如圖7所示。

圖7 結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)對(duì)比
2.數(shù)據(jù)模式靈活
傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)通常面向穩(wěn)定的數(shù)據(jù)需求建模,采用Schema on Write(寫(xiě)時(shí)定義)預(yù)先定義好數(shù)據(jù)格式,加載前進(jìn)行清洗、轉(zhuǎn)換等統(tǒng)一的預(yù)處理,向用戶提供標(biāo)準(zhǔn)、規(guī)范、一致的數(shù)據(jù)服務(wù),但數(shù)據(jù)模型建設(shè)完成后,Schema的修改和變更會(huì)非常繁瑣。而數(shù)據(jù)湖一般采用Schema on Read(讀時(shí)定義)的數(shù)據(jù)模式,可直接加載原始文件,入湖前無(wú)需定義復(fù)雜的結(jié)構(gòu),用戶使用時(shí)再自行定義數(shù)據(jù)格式并按需處理,服務(wù)方式更加靈活。數(shù)據(jù)湖、數(shù)據(jù)倉(cāng)庫(kù)工作模式對(duì)比如圖8所示。

圖8 數(shù)據(jù)湖、數(shù)據(jù)倉(cāng)庫(kù)工作模式對(duì)比
3.數(shù)據(jù)時(shí)效提升
數(shù)據(jù)湖支持流批一體架構(gòu),能夠兼顧流處理的及時(shí)性和批處理的可靠性。當(dāng)前多種開(kāi)源數(shù)據(jù)湖框架均可以實(shí)現(xiàn)流批一體,既可以攝取增量數(shù)據(jù),提升數(shù)據(jù)加載速度,為實(shí)時(shí)場(chǎng)景需求提供支撐;也可以提取全量數(shù)據(jù),進(jìn)行全量的數(shù)據(jù)加工,提供穩(wěn)定的數(shù)據(jù)服務(wù)。
數(shù)據(jù)湖的應(yīng)用場(chǎng)景
1.豐富客戶畫(huà)像
數(shù)據(jù)湖集中了客戶的照片、語(yǔ)音、文本、行為等各種結(jié)構(gòu)和類(lèi)型的數(shù)據(jù),支持各種引擎對(duì)數(shù)據(jù)全方面的探查分析,將非結(jié)構(gòu)化數(shù)據(jù)與結(jié)構(gòu)化數(shù)據(jù)相融合,在現(xiàn)有的以結(jié)構(gòu)化數(shù)據(jù)為主的客戶分析視圖中,補(bǔ)充非結(jié)構(gòu)化數(shù)據(jù)特有的用戶個(gè)性數(shù)據(jù),全方位豐富客戶畫(huà)像,構(gòu)建以“客戶為中心”的全景視圖。
2.實(shí)時(shí)產(chǎn)品營(yíng)銷(xiāo)
通過(guò)埋點(diǎn)工具捕獲客戶在掌銀、網(wǎng)銀、小程序等各渠道的行為日志信息,實(shí)時(shí)傳輸?shù)綌?shù)據(jù)湖中,利用實(shí)時(shí)數(shù)據(jù)引擎,減少數(shù)據(jù)加工時(shí)間,縮短數(shù)據(jù)加工鏈路,第一時(shí)間完成場(chǎng)景分析,關(guān)聯(lián)客戶交易行為,挖掘客戶業(yè)務(wù)需求場(chǎng)景,實(shí)現(xiàn)實(shí)時(shí)的產(chǎn)品推薦與精準(zhǔn)營(yíng)銷(xiāo)。
3.深挖客戶需求
對(duì)銀行現(xiàn)有客戶群,開(kāi)展進(jìn)一步的用戶需求挖掘,主動(dòng)將銀行服務(wù)與客戶的潛在需求進(jìn)行匹配,通過(guò)多種分析引擎,完成服務(wù)與客戶的關(guān)聯(lián),實(shí)現(xiàn)服務(wù)主動(dòng)找客戶、主動(dòng)服務(wù)客戶的功能。例如,在數(shù)據(jù)湖中,結(jié)合銀行現(xiàn)有服務(wù)場(chǎng)景,使用機(jī)器學(xué)習(xí)技術(shù),對(duì)數(shù)據(jù)湖中存儲(chǔ)的客戶行駛證影像數(shù)據(jù)進(jìn)行分析,獲取客戶的購(gòu)車(chē)日期、車(chē)型檔次等信息,精準(zhǔn)定位客戶車(chē)型續(xù)保時(shí)點(diǎn),預(yù)測(cè)客戶換車(chē)需求,為車(chē)險(xiǎn)、購(gòu)車(chē)分期等信用卡產(chǎn)品營(yíng)銷(xiāo)活動(dòng)提供參考。
行業(yè)數(shù)據(jù)湖建設(shè)情況
數(shù)據(jù)湖技術(shù)正處于蓬勃發(fā)展期,市面上各類(lèi)開(kāi)源和商業(yè)產(chǎn)品百花齊放,主要分為Hadoop數(shù)據(jù)湖和云原生數(shù)據(jù)湖兩大體系,均以“存算分離”和“流批融合”等關(guān)鍵技術(shù)為支撐,向著“湖倉(cāng)一體”的架構(gòu)演進(jìn)。(詳見(jiàn):湖倉(cāng)一體架構(gòu)構(gòu)建與平臺(tái)應(yīng)用實(shí)踐(PPT))國(guó)外包括亞馬遜AWS數(shù)據(jù)湖、微軟ADLS Gen2數(shù)據(jù)湖等,國(guó)內(nèi)阿里、騰訊、華為、金山等互聯(lián)網(wǎng)企業(yè)紛紛推出了數(shù)據(jù)湖產(chǎn)品,字節(jié)跳動(dòng)、網(wǎng)易、快手等互聯(lián)網(wǎng)公司在內(nèi)部搭建了自己的企業(yè)數(shù)據(jù)湖。金融同業(yè)近兩年也在積極開(kāi)展數(shù)據(jù)湖技術(shù)的研究,逐步落地并不斷演化。工商銀行已初步建成Hadoop數(shù)據(jù)湖,支持?jǐn)?shù)據(jù)批量加工、實(shí)時(shí)分析和交互式分析,計(jì)劃未來(lái)將數(shù)據(jù)湖遷移到云上,同步探索向“湖倉(cāng)一體”的架構(gòu)演化。建設(shè)銀行正在開(kāi)展數(shù)據(jù)湖建設(shè),依托大數(shù)據(jù)云平臺(tái)提供的各類(lèi)基礎(chǔ)能力,規(guī)劃各類(lèi)標(biāo)準(zhǔn)化數(shù)據(jù)服務(wù)。中信銀行也啟動(dòng)了數(shù)據(jù)湖建設(shè),基于Hadoop生態(tài)支撐離線數(shù)據(jù)存儲(chǔ)加工、實(shí)時(shí)數(shù)據(jù)處理等各類(lèi)場(chǎng)景。
農(nóng)行數(shù)據(jù)湖建設(shè)展望
農(nóng)業(yè)銀行選擇在企業(yè)級(jí)大數(shù)據(jù)平臺(tái)的基礎(chǔ)上,圍繞“采、建、管、用”四個(gè)關(guān)鍵環(huán)節(jié)進(jìn)行數(shù)據(jù)湖建設(shè)。從源頭上豐富數(shù)據(jù)種類(lèi),在建設(shè)中提升海量數(shù)據(jù)存儲(chǔ)計(jì)算能力,在管理上加強(qiáng)數(shù)據(jù)資產(chǎn)線上化和規(guī)范化水平,在消費(fèi)端通過(guò)租戶管理、資源開(kāi)放和自助服務(wù),實(shí)現(xiàn)數(shù)據(jù)應(yīng)用的快速構(gòu)建。農(nóng)業(yè)銀行數(shù)據(jù)湖一體化與自服務(wù)建設(shè)如圖9所示。

圖9 一體化與自服務(wù)建設(shè)
現(xiàn)已通過(guò)立機(jī)制、建工具、落實(shí)施,實(shí)現(xiàn)了海量?jī)?nèi)外部數(shù)據(jù)的快速入湖,為全行各業(yè)務(wù)領(lǐng)域百余個(gè)應(yīng)用場(chǎng)景提供數(shù)據(jù)支撐。同時(shí)正在積極開(kāi)展數(shù)據(jù)湖新技術(shù)架構(gòu)的建設(shè)落地,通過(guò)開(kāi)源軟件和國(guó)產(chǎn)商用產(chǎn)品融合的方式,完成了異構(gòu)存儲(chǔ)管理、元數(shù)據(jù)管理、計(jì)算引擎上云及實(shí)時(shí)數(shù)據(jù)處理等關(guān)鍵技術(shù)攻關(guān)和重點(diǎn)場(chǎng)景驗(yàn)證。數(shù)據(jù)湖全流程建設(shè)如圖10所示。

圖10 數(shù)據(jù)湖全流程建設(shè)
后續(xù)擬按照“試點(diǎn)落地,湖倉(cāng)一體,全面上云”三步走的路線,持續(xù)推進(jìn)數(shù)據(jù)湖建設(shè)。近期在數(shù)據(jù)湖新技術(shù)架構(gòu)的基礎(chǔ)上,上線各類(lèi)新業(yè)務(wù)場(chǎng)景;中期打通數(shù)據(jù)湖與現(xiàn)有數(shù)倉(cāng),實(shí)現(xiàn)湖倉(cāng)架構(gòu)融合,并推進(jìn)大數(shù)據(jù)與云計(jì)算的融合,進(jìn)一步提升資源管理和服務(wù)能力;最終,建成云數(shù)據(jù)湖,實(shí)現(xiàn)集團(tuán)數(shù)據(jù)一體化管理,形成行業(yè)領(lǐng)先的大數(shù)據(jù)基礎(chǔ)架構(gòu),全面夯實(shí)企業(yè)級(jí)數(shù)據(jù)底座,為集團(tuán)提供更豐富、更及時(shí)、更開(kāi)放、更融合的數(shù)據(jù)支撐。
(部分內(nèi)容來(lái)源網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除)