lakesoul-io/LakeSoul

LakeSoul is an end-to-end, realtime cloud-native Lakehouse framework for fast data ingestion, concurrent updates, incremental analytics, multimodal data processing and vector search — powering next-generation BI and AI workloads.

LakeSoul – 生產級湖倉一體平台

LakeSoul 是一個開源的湖倉一體 (lakehouse) 框架,它不僅僅是一種資料表格式(如 Apache Iceberg)。它提供了一個用 Rust 實作的單一核心,用於元數據管理和檔案 I/O,並為 Java、Python、C++Scala 提供了慣用的綁定。其目標是為數據工程師和數據科學家提供一個「開箱即用」的解決方案,無論您是使用 Spark 讀取數據、使用 Flink 進行串流處理、使用 Presto 進行查詢,還是使用 PyTorch、Ray 或 Daft 進行模型訓練,其表現都完全一致。

核心功能

功能 重要性
ACID 事務 & MVCC 保證批處理和串流工作負載之間的一致性讀/寫。
增量 upsert (行 & 欄) 無需昂貴的全量重寫,即可在主鍵表上實現高吞吐量寫入。
多引擎支援 Spark 3.5, Flink 1.20, Presto Velox, Ray 2.55, Daft 0.7+, DuckDB, PyArrow, Pandas – 均能以相同的語義讀寫相同的表。
Rust 原生元數據 & I/O 層 單一高性能實作,避免了不同語言之間程式碼路徑的分歧。
自動化的解耦多級壓縮 無需手動管理即可保持最佳的儲存佈局。
細粒度 RBAC + S3 代理認證 在元數據 (PostgreSQL) 和物件儲存中同時實施的安全、基於表或工作區的存取控制。
向量與多模態檔案格式 (Vortex) 在常規行旁邊儲存嵌入 (embeddings) 或其他高維數據。
內建 CDC & Exactly-once 串流 從 MySQL 等來源進行即時攝取,並具備自動模式同步功能。
快照 (Time-travel) & 回滾 輕鬆實現特定時間點的查詢和復原。

典型用例

  • 即時數據倉庫 – 攝取變更數據捕獲 (CDC) 流,透過 exactly-once 保證保持表為最新狀態,並執行增量分析。
  • AI/ML 資料流水線 – 使用原生 Python 讀取器直接從湖倉中讀取訓練數據(無需 Spark),或作為 PyTorch Dataset 讀取;將嵌入儲存在 Vortex 格式中以便後續進行向量搜尋。
  • 多引擎分析 – 在 Presto/Trino 中執行即時 SQL,在 Spark 中執行批處理作業,或在 DuckDB 中執行低延遲查詢,所有操作均針對同一張表。
  • 安全的租戶環境 – 透過 PostgreSQL RBAC 和 S3 代理隔離工作區並實施行級安全性。

生態系統與整合

  • 計算引擎: Spark, Flink, Presto (Velox), Ray, Daft, DuckDB, Pandas, PyArrow.
  • 儲存後端: HDFS, Amazon S3 (以及任何相容 S3 的物件儲存).
  • 檔案格式: 預設的 vortex-compact, Apache Parquet,以及用於多模態數據的開源 Vortex 格式。
  • 元數據儲存: PostgreSQL (用於 ACID, MVCC 和 RBAC)。
  • 語言綁定: Java/Scala, Python, C++.

項目健康狀況

  • 許可證: Apache-2.0 (寬鬆,對商業友好)。
  • 治理: 已捐贈給 Linux Foundation AI & Data (LF AI & Data) 沙盒項目 (2023 年 5 月)。
  • CI/CD: 每個 PR 都會自動執行 Maven, Flink CDC, 原生建置和 Python 測試;徽章顯示通過狀態。
  • 社群: 提供 Discord 頻道、郵件列表和貢獻指南。倉庫包含廣泛的教學(Python AI 訓練、Flink CDC 同步、快照管理等)。
  • 路線圖: 正在向更高版本的 Spark/Flink、向量 ANN 搜尋、與 Gluten/Velox 更深度的整合以及性能增強方向積極開發。

快速入門

文件提供了「一鍵式」本地環境設定以及一系列演示範例:

  1. 使用原生 Python 讀取器載入數據。
  2. 透過 Flink 將 MySQL CDC 資料流匯入 LakeSoul。
  3. 在儲存在 LakeSoul 中的數據上訓練 PyTorch 模型。
  4. 在 Spark 中執行時間旅行查詢。

總結:LakeSoul 是一個真正的、生產級的湖倉一體平台,它將批處理、串流處理和 AI 工作負載統一在單一的 Rust 基礎之下。對於需要 ACID 保證、多引擎相容性和內建安全性,且不想拼湊獨立的目錄、壓縮和認證服務的團隊來說,它是理想的選擇。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案