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 保证、多引擎兼容性和内置安全性,且不想拼凑独立的目录、压缩和认证服务的团队来说,它是理想的选择。
相关
- 项目
- 项目
- 项目
- 项目
- 项目