国产数据湖。

Ceng bf2f95fbbd [Spark] FileScan filter exactly pushdown (#343) 15 hours ago
.github dd3e78b099 fix deployment build (#340) 6 days ago
cpp ff85b4923d [Python][Dataset] Update Python dataset api for LakeSoul (#325) 1 week ago
docker ff85b4923d [Python][Dataset] Update Python dataset api for LakeSoul (#325) 1 week ago
javadoc 5a31b0bf58 [Doc] Add Spark session catalog doc (#279) 2 months ago
lakesoul-common fcf4a08ee7 [NativeIO] Implement DataFusion TableProvider (#341) 18 hours ago
lakesoul-flink fcf4a08ee7 [NativeIO] Implement DataFusion TableProvider (#341) 18 hours ago
lakesoul-presto acbbf80ef5 [Docs ] Refine flink sql and python docs (#337) 6 days ago
lakesoul-spark bf2f95fbbd [Spark] FileScan filter exactly pushdown (#343) 15 hours ago
native-io f17a13d251 bump version to 2.4.0 (#319) 2 weeks ago
python a930c09a6b [Python] Examples using Python API for AI model training (#327) 1 week ago
rust bf2f95fbbd [Spark] FileScan filter exactly pushdown (#343) 15 hours ago
script 7c2cfa2055 [RBAC] Set hdfs dir owner (#321) 1 week ago
website acbbf80ef5 [Docs ] Refine flink sql and python docs (#337) 6 days ago
.dockerignore 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
.gitignore ff85b4923d [Python][Dataset] Update Python dataset api for LakeSoul (#325) 1 week ago
CODE_OF_CONDUCT.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
CONTRIBUTING.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
LICENSE 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
MANIFEST.in 88b42e7211 [Python][Dataset] PyArrow and PyTorch dataset api for LakeSoul (#308) 1 month ago
README-CN.md 53d0876170 add workspace and rbac docs (#331) 1 week ago
README.md 53d0876170 add workspace and rbac docs (#331) 1 week ago
community-guideline-cn.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
community-guideline.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
community-roles-cn.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
community-roles.md 8f3778b0a2 [Project] add/change spdx header to all files (#278) 2 months ago
pom.xml f17a13d251 bump version to 2.4.0 (#319) 2 weeks ago
pyproject.toml ff85b4923d [Python][Dataset] Update Python dataset api for LakeSoul (#325) 1 week ago
setup.py ff85b4923d [Python][Dataset] Update Python dataset api for LakeSoul (#325) 1 week ago

README-CN.md

LakeSoul

LakeSoul 是一款开源云原生湖仓一体框架,具备高可扩展的元数据管理、ACID 事务、高效灵活的 upsert 操作、Schema 演进和批流一体化处理等特性。LakeSoul 支持多种计算引擎读写湖仓表数据,包括 Spark、Flink、Presto、PyTorch,支持批、流、MPP、AI 多种计算模式。LakeSoul 支持 HDFS、S3 等存储系统。 LakeSoul 架构

LakeSoul 由数元灵科技研发并于 2023 年 5 月正式捐赠给 Linux Foundation AI & Data 基金会,成为基金会旗下 Sandbox 孵化项目。

LakeSoul 专门为数据湖云存储之上的数据进行行、列级别增量更新、高并发入库、批量扫描读取做了大量优化。云原生计算存储分离的架构使得部署非常简单,同时可以以很低的成本支撑极大的数据量。

LakeSoul 通过类似 LSM-Tree 的方式在哈希分区主键 upsert 场景支持了高性能的写吞吐能力。同时高度优化的 Merge on Read 实现也保证了读性能(参考 性能对比)。LakeSoul 通过 PostgreSQL 来管理元数据,实现元数据的高可扩展性和高并发事物能力。

LakeSoul 使用 Rust 实现了 native 的元数据层和 IO 层,并封装了 C/Java/Python 接口,从而能够支持大数据和 AI 等多种计算框架对接。

LakeSoul 支持流、批并发读写,读写全面兼容 CDC 语义,通过自动 Schema 演进和严格一次语义等功能,能够轻松构建全链路流式数仓。

LakeSoul 支持多工作空间和用户权限隔离。LakeSoul 使用 Postgres 的 RBAC 和行级别安全策略,实现了元数据的权限隔离。配合 Hadoop 用户和组,可以实现物理数据隔离。LakeSoul 的权限隔离对 SQL/Java/Python 的作业都是有效的。

LakeSoul 支持自动分离式 Compaction 、自动表生命周期清理、自动冗余数据清理,降低维护成本,提升易用性。

更多特性和其他产品对比请参考:特性介绍

使用教程

  • 湖仓对接 AI:使用 Python 进行数据预处理和模型训练:LakeSoul 将湖仓和 AI 无缝衔接,打造 Data+AI 的现代数据架构。
  • CDC 整库入湖教程: LakeSoul 通过 Flink CDC 实现 MySQL 等多种数据库的整库同步,支持自动建表、自动 DDL 变更、严格一次(exactly once)保证。
  • Flink SQL 教程:LakeSoul 支持 Flink 流、批读写。流式读写完整支持 Flink Changelog 语义,支持行级别流式增删改。
  • 多流合并构建宽表教程:LakeSoul 原生支持多个具有相同主键的流(其余列可以不同)自动合并到同一张表,消除 Join.
  • 数据更新 (Upsert) 和 Merge UDF 使用教程:LakeSoul 使用 Merge UDF 自定义 Merge 逻辑的用法示例。
  • 快照相关功能用法教程: LakeSoul 快照读、回滚、清理等功能用法。
  • 增量查询教程: Spark 中增量查询(支持流、批两种模式)用法。

使用文档

快速开始

使用文档

特性路线

Feature Roadmap

社区准则

社区准则

问题反馈

欢迎提 issue、discussion 反馈问题。

微信公众号

欢迎关注 元灵数智 公众号,我们会定期推送关于 LakeSoul 的架构代码解读、端到端算法业务落地案例分享等干货文章:

元灵数智公众号

LakeSoul 开发者社区微信群

欢迎加入 LakeSoul 开发者社区微信群,随时交流 LakeSoul 开发相关的各类问题:请关注公众号后点击下方 "了解我们-用户交流" 获取最新微信群二维码。

联系我们

发送邮件至 lakesoul-technical-discuss@lists.lfaidata.foundation.

开源协议

LakeSoul 采用 Apache License v2.0 开源协议。