金融行業(yè)湖倉一體架構(gòu)及數(shù)據(jù)平臺的技術(shù)演進
金融行業(yè)湖倉一體化在存算分離的架構(gòu)下,通過解耦計算和存儲層,在中間產(chǎn)生一個數(shù)據(jù)編排層,負責對上層計算應用隱藏底層的實現(xiàn)細節(jié)。Alluxio 通過把數(shù)據(jù)緩存在靠近計算的地方,減少數(shù)據(jù)移動和復制所帶來的開銷,加速數(shù)據(jù)計算。
本次分享的內(nèi)容涵蓋了數(shù)據(jù)平臺架構(gòu)發(fā)展趨勢、湖倉一體的價值與挑戰(zhàn),以及Alluxio 編排與緩存在湖倉一體架構(gòu)中的價值等內(nèi)容,希望通過本次分享,為讀者帶來經(jīng)驗和靈感。
一、湖倉一體架構(gòu)介紹
1、數(shù)據(jù)平臺架構(gòu)發(fā)展趨勢—湖倉一體
首先簡要介紹一下湖倉一體架構(gòu)。湖倉一體融合了數(shù)倉和數(shù)據(jù)湖的優(yōu)勢,通過將數(shù)倉構(gòu)建在數(shù)據(jù)湖上,在用于數(shù)據(jù)湖的低成本存儲上實現(xiàn)與數(shù)據(jù)倉庫中類似的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理功能。其最重要的一點,是實現(xiàn)湖里和倉里的數(shù)據(jù)、元數(shù)據(jù)能夠無縫打通,并且自由流動。湖倉一體架構(gòu)核心定位是基于一套存儲、一份數(shù)據(jù)、一套任務(wù),實現(xiàn)數(shù)據(jù)集成、處理、治理等任務(wù),面向可擴展的、可插拔的各種計算和應用的一種架構(gòu)體系。
第一個階段:
隨著業(yè)務(wù)模式和技術(shù)的發(fā)展,數(shù)據(jù)應用場景越來越復雜度,數(shù)據(jù)也越來越豐富,數(shù)據(jù)平臺由傳統(tǒng)的數(shù)據(jù)倉庫發(fā)展到以大數(shù)據(jù) Hadoop 平臺為主的數(shù)據(jù)湖架構(gòu),典型業(yè)務(wù)應用場景是 Hadoop 大數(shù)據(jù)平臺+MPP 數(shù)據(jù)庫。
第二個階段:
隨著流批需求的出現(xiàn),架構(gòu)出現(xiàn)了包括 Lambda 架構(gòu)和 Kappa 架構(gòu)的架構(gòu)實現(xiàn)。Lambda 架構(gòu)是通過同時維護兩套分布式系統(tǒng),一套處理離線數(shù)據(jù)業(yè)務(wù),一套處理實時數(shù)據(jù)業(yè)務(wù)來支撐流批需求的。Kappa 架構(gòu)主要是通過計算引擎高速處理實時數(shù)據(jù)業(yè)務(wù),對離線數(shù)據(jù)業(yè)務(wù)的處理稍顯不足。為了解決這個問題,流批一體的概念被提出來了,并最終出現(xiàn)了像 Hudi、Iceberg 等流批一體的解決方案,最終形成了湖倉一體的技術(shù)格局。
特別是最近幾年,數(shù)據(jù)越來越豐富,數(shù)據(jù)規(guī)模也越來越大,并且出現(xiàn)了豐富的 AI 應用場景,在湖倉一體化建設(shè)的過程中又會面臨一些新的挑戰(zhàn):比如數(shù)據(jù)分布在多個集群、數(shù)據(jù)存儲集群技術(shù)選型不同、跨集群查詢效率低下、不同場景需要使用不同的訪問接口等問題,因此在基礎(chǔ)的湖倉一體架構(gòu)下又衍生出了結(jié)合數(shù)據(jù)編制技術(shù)、數(shù)據(jù)虛擬化技術(shù)的方案,并且逐漸在實踐中得到越來越多的應用。
2、數(shù)據(jù)平臺架構(gòu)發(fā)展趨勢—湖倉一體 Plus
湖倉一體數(shù)據(jù)平臺架構(gòu)在實踐和落地過程中包括兩種模式,一種是集中式建設(shè)模式,另一種是非集中式建設(shè)模式。
- 集中式建設(shè)
湖倉一體數(shù)據(jù)平臺架構(gòu)數(shù)據(jù)規(guī)模較小、數(shù)據(jù)復雜度低、應用場景簡單,比較適合于集中式建設(shè)。
集中式建設(shè)數(shù)據(jù)分布相對集中,集群規(guī)模不大,比如基于原有的 Hadoop 的 HDFS 存儲、對象存儲,構(gòu)建一個集中式的存儲體系。然后在其上構(gòu)建元數(shù)據(jù)層,包括 Meta 和 schema,完成數(shù)據(jù)建模。通過流批處理引擎、交互式查詢與分析、AI 引擎,完成數(shù)據(jù)應用和數(shù)據(jù)治理。滿足業(yè)務(wù)應用場景和 AI 應用場景。集中式建設(shè)是大數(shù)據(jù)平臺建設(shè)中比較常見的一種建設(shè)模式。
- 非集中式建設(shè)
另外一種建設(shè)模式是非集中式。由于數(shù)據(jù)量、安全、業(yè)務(wù)分布或成本等問題,數(shù)據(jù)可能分散在不同地方存儲,可能是數(shù)據(jù)中心或者云上云下,在物理上是分開的。要實現(xiàn)一套存儲、一份數(shù)據(jù)、一套任務(wù),就需要去建設(shè)統(tǒng)一的元數(shù)據(jù)管理層、統(tǒng)一的數(shù)據(jù)開發(fā)平臺、統(tǒng)一的資源調(diào)度平臺,以及統(tǒng)一的任務(wù)調(diào)度平臺,最終形成一個基于非集中式建設(shè)的湖倉一體架構(gòu)。在這個過程中需要用到數(shù)據(jù)編制或者數(shù)據(jù)虛擬化的技術(shù)。
3、湖倉一體的價值
湖倉一體的價值表現(xiàn)在兩個方面,一方面是降低成本,另一方面是提升效率。
在湖倉一體架構(gòu)的發(fā)展過程中,除了一些技術(shù)或數(shù)據(jù)時效性的驅(qū)動力,更大的驅(qū)動來在于降低成本。傳統(tǒng)的 Lambda 或者 Kappa 架構(gòu),數(shù)據(jù)流是分開的,存儲和計算的成本,以及整個技術(shù)復雜性所帶來的維護成本都是非常高的。使用湖倉一體化架構(gòu)后,第一個顯著的效果就是降低整體成本。
首先,可以降低存儲成本,數(shù)據(jù)不再需要存儲多個拷貝,只有一份數(shù)據(jù)就行了。第二,可以降低數(shù)據(jù)管理成本,減少拷貝帶來的復雜度,也減少數(shù)據(jù)搬運、數(shù)據(jù)治理以及開發(fā)維護的成本。第三,還可以避免多份數(shù)據(jù)導致的數(shù)據(jù)一致性問題以及各種數(shù)據(jù)安全問題,降低使用數(shù)據(jù)時的技術(shù)對接成本。
另一方面的價值就是增效。首先是提升業(yè)務(wù) ROI,隨著業(yè)務(wù)孵化成本的降低,業(yè)務(wù)迭代效率將會更高。第二,提升數(shù)據(jù)質(zhì)量和時效性,流批一體可以大大提升數(shù)據(jù)集成的時效性,由于源頭唯一,可以實時感知數(shù)據(jù)源頭的變化,并且基于一份數(shù)據(jù)集中安全和質(zhì)量管理。第三,可以提升架構(gòu)靈活性,解放了計算和應用的約束,只需要兼容湖倉的開放式存儲和模型的接口即可快速的部署應用。
4、湖倉一體的挑戰(zhàn)
湖倉一體架構(gòu)在帶來了很多價值的同時,也帶來了一些挑戰(zhàn)。
- 性能保障
湖倉一體架構(gòu)下很難確保所有的計算和存儲都在一起,遠程數(shù)據(jù)訪問會帶來數(shù)據(jù)訪問性能的下降,連帶引起計算性能和計算資源利用率的下降。
網(wǎng)絡(luò)資源相對有限,擴展難,數(shù)據(jù)訪問高峰期會引發(fā)網(wǎng)絡(luò)波峰,導致數(shù)據(jù)訪問的性能下降。
計算多樣性擴展迅速,數(shù)據(jù)讀寫的壓力被“一份”數(shù)據(jù)承載,存儲的服務(wù)能力可能會成為瓶頸。 - 架構(gòu)改造
需要考慮兼容性,盡量減少或者避免湖倉一體架構(gòu)下存儲、計算的技術(shù)選型引發(fā)上層應用的改造。
原有的數(shù)據(jù)管理體系特別是數(shù)據(jù)安全的管理如何傳承和保障也是一大挑戰(zhàn),特別是湖倉一體架構(gòu)下的存儲可能變成了權(quán)限管理能力較弱的對象存儲。
要將原有數(shù)據(jù)湖平臺平穩(wěn)地遷移到湖倉一體架構(gòu)中,在軟件、硬件、數(shù)據(jù)各方面充分利舊,降低改造遷移周期和成本,降低對業(yè)務(wù)的影響。
針對這些挑戰(zhàn),接下來將介紹 Alluxio 是如何助力湖倉一體架構(gòu)落地的。
二、Alluxio 在湖倉一體架構(gòu)中的定位和作用
Alluxio 架構(gòu)的定位為助力云原生大數(shù)據(jù)分析和 AI 計算的數(shù)據(jù)編排平臺。它處于計算層和存儲層之間,向下能夠兼容多種存儲引擎、不同存儲技術(shù),對上能提供統(tǒng)一的數(shù)據(jù)服務(wù)能力。
1、Alluxio 能力概述
Alluxio 的核心是在計算層和存儲層之間起到承上啟下的作用。設(shè)計初衷是零侵入地實現(xiàn)計算應用和存儲數(shù)據(jù)之間的連接。
整體能力分為四個部分。
- “南向”實現(xiàn)多個存儲系統(tǒng)的集成
包括多存儲集群技術(shù)協(xié)議和安全協(xié)議的識別和對接。 - “北向”實現(xiàn)多個計算/應用的對接
包括主流的 Spark、Flink、Presto 等,以及基于一些接口協(xié)議的 AI 場景,S3 協(xié)議的接口等,并且接口統(tǒng)一,實現(xiàn)了存儲集群接口協(xié)議的轉(zhuǎn)換。
安全統(tǒng)一,基于 Alluxio 進行安全認證、權(quán)限管理。
數(shù)據(jù)視圖統(tǒng)一,將多個不同存儲中的數(shù)據(jù)以統(tǒng)一的目錄樹結(jié)構(gòu),對上提供統(tǒng)一的數(shù)據(jù)視圖。 - “緩存”讓數(shù)據(jù)離計算更近
一方面通過緩存命中,使數(shù)據(jù)離計算更近,提升數(shù)據(jù)的讀寫 IO。另一方面,緩存使用的存儲介質(zhì)更高效,因此整體性能會更高。 - “策略管理”解耦數(shù)據(jù)遷移對業(yè)務(wù)的影響
多目錄聯(lián)合訪問,消除冷熱數(shù)據(jù)的訪問割裂。
策略化遷移,消除數(shù)據(jù)在多個目標之間的遷移對上層數(shù)據(jù)訪問的影響。
2、Alluxio 在湖倉一體架構(gòu)中的價值
(1)保障性能
Alluxio 從物理架構(gòu)上,是貼近于計算層進行部署的,一個是貼近當前計算節(jié)點的local 層面的緩存 Alluxio Edge,另一個是 Alluxio Cluster 提供了一個分布式的、可擴展的分布式緩存。根據(jù)應用場景不同,可以選擇靈活選擇單獨使用或配合使用。
利用緩存的能力,Alluxio 可以帶來的價值主要為:
- 提升計算性能
貼近計算側(cè)部署,通過 Alluxio 雙層緩存,提供離計算更近、性能更高的數(shù)據(jù)讀寫,提升整體計算性能,最終提升終端業(yè)務(wù)效率。 - 網(wǎng)絡(luò)削峰
通過 Alluxio 緩存減少重復數(shù)據(jù)訪問以及臨時數(shù)據(jù)讀寫帶來的網(wǎng)絡(luò)流量,降低業(yè)務(wù)繁忙時的網(wǎng)絡(luò)流量,同時有效降低按流量收費的成本。 - 緩解存儲負載
通過緩存減少存儲側(cè)部分數(shù)據(jù)讀取和寫入,延緩因服務(wù)能力不夠的存儲擴展,同時有效降低按照接口調(diào)用收費的成本。特別是很多公有云,比如用多少的空間,可以得到相應的網(wǎng)絡(luò)帶寬,但如果數(shù)據(jù)量并沒有那么大,卻想達到更高的性能,可能就需要采購額外的空間。使用 Alluxio 即可減少這部分成本。
(2)降低改造成本
從邏輯上來看,Alluxio 架構(gòu)更加貼近于存儲,因為其提供的是文件協(xié)議的接口能力。因此可以帶來如下價值:
- 多存儲統(tǒng)一訪問
通過 Alluxio 集成不同位置、不同接口、不同安全協(xié)議的存儲系統(tǒng),提供統(tǒng)一數(shù)據(jù)訪問入口,降低存儲技術(shù)變動對上層的影響。 - 零業(yè)務(wù)改造
引入 Alluxio 不會引發(fā)業(yè)務(wù)代碼的改造,包括庫表 DDL 以及其他的數(shù)據(jù)訪問鏈路的改造,讓改造只停留在 Infra 層,降低架構(gòu)升級的成本和阻力。 - 策略化數(shù)據(jù)管理
Alluxio 可以實現(xiàn)不同存儲的 Union,把不同位置的數(shù)據(jù) Union 成一個目錄供訪問,降低數(shù)據(jù)冷熱分層、業(yè)務(wù)分區(qū)等改造成本。
3、基于 Alluxio 的湖倉一體架構(gòu)
上圖展示了 Alluxio 湖倉一體的邏輯架構(gòu)。無論是大數(shù)據(jù)平臺,還是湖倉一體化平臺,整體上并沒有很大區(qū)別,一般都是包括存儲層、元數(shù)據(jù)層、計算層和管理應用層。
對于湖倉一體,table format 會有所不同,主要為 Hudi、Iceberg,或者現(xiàn)在新的 Paimon。這樣湖倉 warehouse 和原有的 MPP 就統(tǒng)一了。另外,是 file format,不論數(shù)據(jù)是存在 HDFS 還是對象存儲,一般會使用 Parquet、ORC 等比較高效的數(shù)據(jù)存儲格式。
最終,形成統(tǒng)一的 Catalog service,對上服務(wù)。
從邏輯架構(gòu)上來看,Alluxio 更加貼近存儲層。命名空間把多個存儲實現(xiàn)成一個統(tǒng)一視圖,對上提供服務(wù),進行接口協(xié)議的轉(zhuǎn)換以及緩存加速,使得數(shù)據(jù)更容易被計算層使用。
從部署架構(gòu)上,Alluxio 更加貼近于計算層,一般是使用計算層的資源進行部署,這樣可以讓 Alluxio 的緩存能力發(fā)揮最大化。
三、Alluxio 在湖倉一體架構(gòu)中的應用場景
接下來介紹一些實際案例。
1、基于 Alluxio 的湖倉一體化實踐:傳統(tǒng) Hadoop 向基于對象存儲的湖倉一體化架構(gòu)升級
第一個案例是從傳統(tǒng) Hadoop 向基于對象存儲的湖倉一體化架構(gòu)的升級。
希望升級為基于 Iceberg 或者 Paimon 的湖倉一體架構(gòu),在數(shù)據(jù)時效性以及開放性上進行一次升級。
挑戰(zhàn)和痛點主要有:
- 湖倉一體使用的對象存儲無法提供比較完善的數(shù)據(jù)安全保障。
- 湖倉一體使用的對象存儲數(shù)據(jù)訪問性能較低,影響各個層面的業(yè)務(wù)效率。
- 會有一段 Hadoop + 湖倉一體架構(gòu)的并行期,有數(shù)據(jù)交互。
依托 Alluxio 構(gòu)建了安全、高效的基于對象存儲的湖倉一體架構(gòu)。帶來的價值收益包括:
- 安全保障:基于 Alluxio 構(gòu)建北向 Kerberos 認證、Ranger 安全體系。
- 性能提升:對比直連 OSS,數(shù)據(jù)訪問性能提升 3-5 倍。
- 新舊共存:HDFS 到 OSS 的策略化數(shù)據(jù)遷移,且不影響業(yè)務(wù)正常訪問。
2、基于 Alluxio 的湖倉一體化實踐:AI 和數(shù)據(jù)湖有機結(jié)合
最初的湖倉一體的架構(gòu)是面向結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),但是現(xiàn)在隨著 AI 大模型的突飛猛進,金融行業(yè)從傳統(tǒng)的機器學習數(shù)據(jù)挖掘,轉(zhuǎn)變?yōu)?AI 大模型體系,面對著非常多的非結(jié)構(gòu)化數(shù)據(jù)。因此需要將 AI 與數(shù)據(jù)湖有機結(jié)合。
作為在線服務(wù),模型的更新會非常頻繁,隨著大模型的推廣,模型文件越來越大,更新上線效率挑戰(zhàn)也越來越大。另外,因為 GPU 資源的稀缺性,模型訓練往往需要跟著 GPU 分散在多個云上云下平臺,模型訓練獲取數(shù)據(jù)的挑戰(zhàn)也越來越大。
痛點主要有以下兩方面:
- 在線推理服務(wù)往往跟離線數(shù)倉不在一起,并且使用的 S3 或者 FUSE 接口也不是 HDFS 可以提供的。
- 不論是推理服務(wù)的模型結(jié)果數(shù)據(jù)還是模型訓練的訓練數(shù)據(jù)以往都是通過搬運數(shù)據(jù)解決的:需要維護復雜的工程,占用大量的重復存儲成本,數(shù)據(jù)等待也影響了GPU 利用率。
通過 Alluxio,連接唯一數(shù)據(jù)湖/倉庫作為模型訓練和推理集群的唯一真實數(shù)據(jù)來源,使用 GPU 集群的本地 SSD 資源作為緩存,只需要利用少量緩存空間即可,既實現(xiàn)了接口轉(zhuǎn)義也保障了性能。帶來的價值收益包括:
- 性能提升:GPU 利用率從 20-30% 提高到了 90+%
- 工程成本降低:數(shù)據(jù)遷移和搬運的開發(fā)和維護成本降低 75%。
- 存儲成本降低:只需要整個數(shù)據(jù)集不到 3% 的緩存成本即可滿足需求。
上圖中展示了 AI 與數(shù)據(jù)湖結(jié)合的邏輯示意圖。基于唯一的一個數(shù)據(jù)湖,構(gòu)建訓練集群,通過 Alluxio 實現(xiàn)數(shù)據(jù)鏈路的鏈接。通過 Alluxio 的數(shù)據(jù)預加載機制,配合數(shù)據(jù)模型訓練實現(xiàn)數(shù)據(jù)的預加載,基于唯一的真實數(shù)據(jù)源建立起AI 和數(shù)據(jù)湖的有機結(jié)合。使得數(shù)據(jù)的時效性新鮮度大大提升,GPU 利用率也更高,而同時維護改造成本則更低,數(shù)據(jù)遷移和多副本管理的成本都完全消除了。并且,不用再去額外采購高性能存儲介質(zhì),現(xiàn)有存儲即能支撐模型訓練。
3、基于 Alluxio 的湖倉一體實踐:OLAP 性能提升
一些業(yè)務(wù)訪問量大并且時效性要求高,針對這類需求,Alluxio 的緩存功能可以有效提升 OLAP 性能。
這一案例中,客戶數(shù)據(jù)湖 HDFS 負載較高,加入 OLAP 分析業(yè)務(wù)后,Namenode響應以及 Datanode 吞吐都面臨了很大挑戰(zhàn),經(jīng)常因為 HDFS 集群的超時,導致業(yè)務(wù)查詢延遲大大增加。
通過 Alluxio,既緩解了 Datanode 的壓力,更緩解了 Namenode 的壓力,使吞吐性能提升了 10 倍,整體端到端業(yè)務(wù)查詢性能提升了 40%。
4、基于 Alluxio 的湖倉一體實踐:網(wǎng)絡(luò)削峰
使用對象存儲,采購云上存儲,吞吐能力和帶寬都是有限的,任務(wù)量大時,對象存儲本身的服務(wù)能力受限,會成為瓶頸。Alluxio 可以實現(xiàn)網(wǎng)絡(luò)削峰。
可以看到在這一案例中,通過 Alluxio,大幅降低了查詢延遲,得到了 4-5 倍的性能提升,減少了 80% 以上的遠程訪問,節(jié)省了存儲成本。
5、Alluxio 帶來的業(yè)務(wù)和技術(shù)價值
Alluxio 的核心技術(shù)價值為通過緩存減少數(shù)據(jù)拷貝,提升訪問性能,并通過統(tǒng)一的數(shù)據(jù)訪問模式,降低各種適配、改造成本。同時,通過多租戶架構(gòu),保障各租戶SLA 不互相影響。
Alluxio 帶來的商業(yè)價值包括,更高的 ROI 和更低的 TCO,無需重組平臺架構(gòu),縮短價值實現(xiàn)時間,幫助企業(yè)獲得更高更快的營收。并且,應用可在不同存儲和云廠商間移植,可即刻實現(xiàn)混合云/多云部署,降低成本。
以上就是本次分享的內(nèi)容,謝謝大家。