湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

機器之心釋出

機器之心編輯部

國產唯一的開源資料湖儲存框架 LakeSoul 近期釋出了 2。0 升級版本,讓資料智慧觸手可及。

湖倉一體作為新一代大資料技術架構,將逐漸取代單一資料湖和數倉架構,成為大資料架構的演進方向。當前已有 DeltaLake、Iceberg、Hudi 等國外開源的資料湖儲存框架。LakeSoul 是數元靈科技研發的,國產唯一的開源資料湖儲存框架,並於近期釋出了 2。0 升級版本。本文將結合大資料架構的演變歷史及業務需求,深度剖析國產唯一開源湖倉一體框架 LakeSoul 帶來的現代化資料架構和關鍵業務價值。

資料架構的演進

從傳統資料庫到數倉再到資料湖,資料架構一直伴隨著業務需求的驅動不斷迭代,使資料應用場景向複雜化、多元化轉變,從最初的交易場景,到分析場景,再到混合場景、複雜分析場景,最後到如今的實時混合場景,大資料架構也在不斷演進:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

在資料架構演進中,不同的架構方案也存在著缺陷:

1. 傳統數倉。

傳統資料倉庫作為一箇中心化的資料來源,仍然沿用了資料庫的架構,即計算儲存耦合在一起,不方便擴充套件,成本較高。並且中心資料倉庫通常需要專門團隊來開發維護,面對紛繁的業務需求往往存在響應不及時等問題。

2.Hadoop 數倉。

目前有大量的企業使用 Hadoop + Hive 的方式搭建資料倉庫。然而由於 Hive 無法支援實時、流式的場景,需要透過 Lambda 架構維護實時、批次兩套資料處理邏輯,帶來重複開發、資料口徑不一致、架構複雜等問題。

3. 資料湖。

資料湖使用雲上的物件儲存,能夠解決儲存擴充套件性問題。然而資料湖原先是為儲存任意型別的資料所設計,缺乏對元資料的組織管理,容易形成資料沼澤,難以發揮資料的價值。

4. 湖倉一體。

湖倉一體作為新一代架構,仍然需要解決 Hadoop/Lambda 架構的固有缺陷,即實時、批次無法統一。甚至由於物件儲存的一些問題,實時計算的儲存變得更加困難,效能也難以滿足新興的業務需求;各類 SQL、AI 的計算框架與物件儲存的適配也不完善。

數元靈科技認為,解決以上各類問題,首先需要有一套完善的湖倉儲存,在雲上提供資料高併發、高吞吐讀寫的能力和完整的數倉管理能力,並且將這樣的儲存能力以通用的方式提供給多種計算引擎訪問;這也是數元靈科技研發 LakeSoul 的初衷。

LakeSoul :構建現代化資料智慧架構

LakeSoul 是北京數元靈科技自主研發的湖倉一體儲存框架,也是目前國內唯一的開源湖倉平臺。LakeSoul 開源專案地址:https://github。com/meta-soul/LakeSoul

作為現代化的資料智慧架構的底層支撐,LakeSoul 具有以下幾個核心能力:

1. 流批一體的儲存

LakeSoul 在儲存層面,統一支援實時和批次兩種方式對湖倉中的資料進行更新寫入和讀取,不再需要分別開發兩套不同的資料鏈路。這一方面大幅降低了開發成本,也消除了兩套鏈路帶來的資料口徑不一致等問題,並且使用者不再需要維護多個儲存系統,能夠節省大量資源成本。

2. 在資料湖上構建資料倉庫

透過 LakeSoul 在資料湖上構建資料倉庫,能夠充分利用雲原生架構下對計算資源和儲存資源的彈效能力。LakeSoul 針對物件儲存做了專門的效能最佳化,在資料湖上構建出完整的實時數倉功能,支援資料的實時更新寫入。湖倉一體化的方式大幅簡化基礎設施的使用門檻,並極大提升資源利用效率和效能。

3. 支援多種資料計算引擎

資料的價值釋放有多種方式,包括如報表分析和演算法模型落地等。LakeSoul 在統一的湖倉儲存層之上,支援多種計算引擎,提供涵蓋資料實時匯入、資料分析、BI 報表、AI 模型訓練等多種計算模式。使用一套湖倉儲存即可完成全鏈路的實時資料智慧業務搭建,開箱即用。開發者能夠專注業務資料的處理邏輯,構建以資料為中心的開發正規化。

LakeSoul 透過統一的實時、批次儲存的核心能力,構建了流批一體、湖倉一體、分析智慧一體的現代湖倉資料智慧架構。

基於 LakeSoul 的湖倉智慧架構如下圖所示:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

LakeSoul 的核心技術特性解讀

1. 高可擴充套件的 Catalog 元資料服務

隨著資料量的快速增長,資料倉庫需要能夠處理快速增加的分割槽和檔案。LakeSoul 使用 PostgreSQL 資料庫來儲存 Catalog 資訊,提升元資料可擴充套件性和事務併發能力。

LakeSoul 透過精心組織元資料層表的主鍵和索引,對一個葉子級別分割槽只需要做一次主鍵操作就可以獲得這個分割槽的所有資訊,以及讀寫當前版本的 snapshot 等。一個分割槽的 snapshot 中包含了全量寫入和增量更新的檔案完整路徑和提交型別。透過對 snapshot 中檔案提交進行順序的遍歷,就可以構建出該分割槽讀取計劃。這樣一方面分割槽資訊訪問很高效,另一方面也避免了對檔案目錄的遍歷,對於 S3、OSS 這樣的物件儲存系統是比較重要的最佳化手段。LakeSoul 的分割槽管理機制示意:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

2. 支援併發寫和 ACID 事務

LakeSoul 透過元資料服務實現了併發控制,在同一分割槽支援多個作業併發更新,透過智慧區分寫入型別來控制合併或回退機制。具體來說,當計算引擎產出要提交的各個分割槽的檔案後,會首先提交分割槽檔案更新的資訊,例如全量更新或增量更新,然後透過元資料事務操作來更新讀者可見的版本。在檢測到併發更新發生的場景,LakeSoul 會自動區分寫入型別判斷是否屬於有衝突情形,並決定是自動解決衝突還是需要回退資料計算。衝突檢測的具體規則如下表所示(X 表示這種衝突不能自動解決,會透過拋異常的方式交給業務層處理):

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

3. 支援增量寫入和 Upsert 更新

LakeSoul 提供了增量追加和行列級別 Upsert 的功能,支援 Merge on Read 模式,提升資料攝入的靈活性和效能。LakeSoul 實現了高效的 Merge on Read,在表具有主鍵的情況下,LakeSoul 支援了更為高效的 Upsert 機制。在每個主鍵雜湊分桶內,LakeSoul 將檔案根據主鍵進行排序。執行多次 Upsert 後,就獲得了多個有序的檔案。對於讀取作業,只需要將這些有序檔案進行歸併,即可完成 Merge on Read。Upsert 的示意如下:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

透過這樣的方式,寫入時不需要讀取併合並資料,提供了很高的寫入效能。而經過最佳化的 Merge Reader 保證了讀效能不受損失。

4. 實時數倉功能

LakeSoul 支援流式和批次的寫入,行列級別更新,透過 SQL 即可完成絕大部分更新操作,使用體驗更接近於資料庫。同時,LakeSoul 支援 MVCC 多版本控制,並提供了快照讀(Time Travel)和版本回滾的功能。在 2。0 版本更新中,還支援了 Flink CDC 實時寫入,透過將 CDC 更新流轉化為 LakeSoul 的 Upsert 操作,能夠實現高效的實時入湖。透過對接 Flink Table API,同樣能夠通過幾行 SQL 完成線上資料庫的 CDC 入湖。

5. 開放生態

LakeSoul 使用 Parquet 作為檔案儲存格式,支援雲上物件儲存,並提供抽象統一的儲存訪問層,能夠很方便的對接各類計算引擎。目前能夠支援 Spark、Flink,並支援將表分割槽自動匯入到 Hive Meta 中。近期 LakeSoul 還將支援對接 Presto 等 MPP 計算引擎,從而更加完整地支援 ETL、OLAP、AI 模型訓練等各類資料智慧計算業務。

LakeSoul 的業務價值

LakeSoul 現代湖倉資料智慧架構能夠帶來如下幾個核心業務價值:

大幅簡化資料智慧架構,降低運維成本

計算成本降低,不需要多套儲存

不依賴 Kafka 或 Flink 等有狀態服務

避免資源潮汐效應

簡化開發流程,降低人力成本

使用 SQL、Python 即可快速開發資料智慧業務

現有數倉邏輯可以快速遷移,改造難度低

資料可靠,狀態可見透明,提升資料使用效率

每層計算結果實時可見、可查詢,資料可複用

上游補數、修復簡單快捷,避免單點故障

避免資料孤島、資料冗餘、資料沼澤

全鏈路 T+0 實時計算

計算延遲大幅降低,天級降低到分鐘級

業務效果快速反饋

LakeSoul 應用場景舉例

1. 實時資料快速匯入湖倉

使用 LakeSoul 提供的 Flink CDC Sink 功能,可以將線上資料庫的變更實時同步到 LakeSoul 湖倉,不再需要 T+1 匯入作業,從資料來源頭實現實時化。並且得益於 Flink CDC,也不再需要額外部署 Kafka 等元件。實時資料入湖的架構流程:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

可以看到 LakeSoul 實時入湖只需要一條流式的鏈路即可完成入湖,不需要額外的批處理流程,既簡化開發工作量,消除資料口徑不一致,也簡化了部署架構,顯著降低了運維成本。

2. 實時分析報表

LakeSoul 的流批一體更新的特性,使得報表開發者不需要使用複雜的計算引擎介面來開發流式計算的作業,透過 SQL 即可完成實時的資料提取和轉換和開發,無論是 ETL 還是資料分析的流程都更加簡單:

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

透過 LakeSoul 能夠快速上線實時 BI 報表,隨時高效支撐商業決策。

3. AI 應用落地

在網際網路搜廣推業務中,需要不斷積累使用者的實時反饋,並結合歷史資料進行模型訓練,自然是流批一體發揮巨大價值的重要場景。透過 LakeSoul 可以很好地支援實時搜廣推的 Online Learning 正規化,構建實時的機器學習樣本庫,無縫對接 AI 模型的實時訓練和線上推理,實現資料智慧化的應用。

湖倉才是資料智慧的未來?那你必須瞭解下國產唯一開源湖倉了

結語

LakeSoul 作為當前國產唯一的開源湖倉一體框架,近期釋出了 2。0 版本,增加了 Flink CDC、快照回滾、Hive 對接等業務生態功能,進一步增強和豐富了在實際生產環境中的業務落地能力。LakeSoul 帶來現代化的湖倉資料智慧架構,能夠大幅降低資料智慧應用的開發運維門檻,讓資料智慧成為觸手可及的技術,充分釋放資料的業務價值紅利。

點選「

閱讀原文

」,直接訪問 Github。

THE END

轉載請聯絡本公眾號獲得授權

投稿或尋求報道:content@jiqizhixin。com

TAG: LakeSoul資料實時湖倉架構