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 更深度的整合以及性能增強方向積極開發。
快速入門
文件提供了「一鍵式」本地環境設定以及一系列演示範例:
- 使用原生 Python 讀取器載入數據。
- 透過 Flink 將 MySQL CDC 資料流匯入 LakeSoul。
- 在儲存在 LakeSoul 中的數據上訓練 PyTorch 模型。
- 在 Spark 中執行時間旅行查詢。
總結:LakeSoul 是一個真正的、生產級的湖倉一體平台,它將批處理、串流處理和 AI 工作負載統一在單一的 Rust 基礎之下。對於需要 ACID 保證、多引擎相容性和內建安全性,且不想拼湊獨立的目錄、壓縮和認證服務的團隊來說,它是理想的選擇。
相關
- 專案
- 專案
- 專案
- 專案
- 專案