久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 湖倉才是數據智能的未來?那你必須了解下國產唯一開源湖倉了

湖倉才是數據智能的未來?那你必須了解下國產唯一開源湖倉了

發布人:機器之心 時間:2022-07-21 來源:工程師 發布文章

國產唯一的開源數據湖存儲框架 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 帶來現代化的湖倉數據智能架構,能夠大幅降低數據智能應用的開發運維門檻,讓數據智能成為觸手可及的技術,充分釋放數據的業務價值紅利。


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉