@LakeSailHQ:用 Rust 重写的 Spark——无 JVM,速度提升 8 倍,成本降低 94%
摘要
LakeSail 推出 Sail,一款基于 Rust 重新实现的 Apache Spark,在保持完整 API 兼容的同时,性能提升 8 倍,基础设施成本降低 94%。
查看缓存全文
缓存时间: 2026/04/22 21:12
lakehq/sail
源码:https://github.com/lakehq/sail
Sail
构建状态 (https://github.com/lakehq/sail/actions)
Codecov (https://app.codecov.io/gh/lakehq/sail)
PyPI 发布 (https://pypi.org/project/pysail/)
Slack 徽章 (https://www.launchpass.com/lakesail-community/free)
Sail 是由 LakeSail(https://lakesail.com/)打造的开源统一分布式多模态计算框架。
我们的使命是统一批处理、流处理与计算密集型 AI 工作负载。Sail 作为计算引擎,具备:
- 兼容 Spark Connect 协议,无需改动代码即可支持 Spark SQL 与 DataFrame API。
- 基准测试快约 4 倍(特定场景最高 8 倍)。
- 基础设施成本降低 94%。
- 100% Rust 原生,无 JVM 开销,带来内存安全、秒级启动与可预测性能。
🚀 在 ClickBench(https://go.lakesail.com/clickbench)上,Sail 全面超越 Spark、主流 Spark 加速器、Databricks 与 Snowflake。
💬 加入 Slack 社区(https://www.launchpass.com/lakesail-community/free),提问、反馈并与 Sail 用户及贡献者交流。
文档
最新版 Sail 文档见此处(https://docs.lakesail.com/sail/latest/)。
安装
快速开始
Sail 已发布为 PyPI 上的 Python 包,可直接与 PySpark 一起安装。
pip install pysail
pip install "pyspark[connect]"
Spark 4.0 起也可安装轻量客户端 pyspark-client;等效的 pyspark-connect 包亦可用。
高级用法
如需针对特定硬件架构优化性能,可从源码安装。详细安装指南(https://docs.lakesail.com/sail/latest/introduction/installation/)一步步带你完成。
若要在生产环境部署,请参阅部署指南(https://docs.lakesail.com/sail/latest/guide/deployment/),了解在 Kubernetes 等基础设施上的完整步骤。
快速上手
启动 Sail Server
**方式 1:命令行。**使用 sail 命令启动本地服务器。
sail spark server --port 50051
**方式 2:Python API。**通过 Python 启动本地服务器。
from pysail.spark import SparkConnectServer
server = SparkConnectServer(port=50051)
server.start(background=False)
**方式 3:Kubernetes。**在 Kubernetes 上以集群模式分布式运行。 请参考 Kubernetes 部署指南(https://docs.lakesail.com/sail/latest/guide/deployment/kubernetes.html)构建镜像并编写 YAML 文件。
kubectl apply -f sail.yaml
kubectl -n sail port-forward service/sail-spark-server 50051:50051
连接 Sail Server
服务器就绪后,用 PySpark 直接连接,代码零改动!
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote("sc://localhost:50051").getOrCreate()
spark.sql("SELECT 1 + 1").show()
更多细节请参考快速上手(https://docs.lakesail.com/sail/latest/introduction/getting-started/)。
功能亮点
存储
Sail 支持多种存储后端读写数据,详见存储指南(https://docs.lakesail.com/sail/latest/guide/storage/)。
已支持:
- AWS S3
- Cloudflare R2
- Azure
- Google Cloud Storage
- Hugging Face
- HDFS
- 本地文件系统
- HTTP/HTTPS
- 内存存储
Lakehouse 格式
Sail 原生支持现代 lakehouse 表格式,提供可靠存储层与强数据管理保障,并与现有数据集互操作。
格式指南:
- Delta Lake 指南(https://docs.lakesail.com/sail/latest/guide/formats/delta.html)
- Apache Iceberg 指南(https://docs.lakesail.com/sail/latest/guide/formats/iceberg.html)
Catalog 服务
Sail 支持 Apache Iceberg REST Catalog、Unity Catalog 等多种 catalog,可将数据集作为外部表管理,并融入更大的数据平台生态。
详见 Catalog 指南(https://docs.lakesail.com/sail/latest/guide/catalog/)。
基准结果
衍生 TPC-H 测试显示,Sail 在所有查询上均优于 Apache Spark:
- 执行时间:多样 SQL 负载下快约 4 倍。
- 硬件成本:降低 94%,峰值内存更低,零 shuffle spill。
| 指标 | Spark | Sail |
|---|---|---|
| 总查询时间 | 387.36 秒 | 102.75 秒 |
| 查询加速比 | 基准 | 43% – 727% |
| 峰值内存占用 | 54 GB | 22 GB(1 秒) |
| 磁盘写入(shuffle spill) | > 110 GB | 0 GB |
数据来自 AWS r8g.4xlarge 实例,衍生 TPC-H 22 条查询,规模因子 100,Parquet 格式。
查询时间对比
完整分析与图表见基准结果页面(https://docs.lakesail.com/sail/latest/introduction/benchmark-results/)。
为何选择 Sail?
15 年前 Spark 的诞生具有革命性意义,重新定义了分布式数据处理,驱动了各行各业的 ETL、机器学习与分析管线。
但其 JVM 架构已难以满足现代性能与云效率需求:
- GC 停顿带来延迟尖峰。
- 序列化开销拖慢 JVM 与 Python 间数据交换。
- 笨重的 Executor抬高云成本,扩容复杂。
- 行式处理在分析负载下效率低,硬件潜力未发挥。
- 启动慢耽误交互式与按需任务。
Sail 以现代 Rust 原生设计解决这些问题。
Sail 兼容 Spark
Sail 可直接替换 Spark SQL 与 Spark DataFrame API。现有 PySpark 代码无需修改,通过 Spark Connect 协议指向 Sail 即可运行。
- **Spark SQL 方言支持。**自研 Rust 解析器(基于解析器组合子与过程宏)精准覆盖 Spark SQL 语法。
- **DataFrame API 支持。**Spark DataFrame 操作在 Sail 上语义一致。
- **Python UDF、UDAF、UDWF、UDTF 支持。**Python、Pandas 与 Arrow UDF 均与 Spark 惯例一致。
Sail 相较 Spark 的优势
- **Rust 原生引擎。**无 GC 停顿,无需 JVM 内存调优,内存占用极低。
- **列式格式与向量化执行。**基于 Apache Arrow(https://github.com/apache/arrow)与 Apache DataFusion(https://github.com/apache/datafusion),列式内存格式与 SIMD 指令带来极速查询。
- **闪电般 Python UDF。**Arrow 数组指针零拷贝共享,Python 代码在 Sail 内运行无序列化开销。
- **高效数据 Shuffle。**Worker 直接交换 Arrow 列式数据,显著降低 Join 与聚合的 shuffle 成本。
- **轻量无状态 Worker。**Worker 秒级启动,空闲仅数 MB 内存,弹性伸缩降低云成本并简化运维。
- **值得信赖的并发与内存安全。**Rust 所有权模型杜绝空指针、竞态条件与不安全内存访问,可靠性无与伦比。
想深入了解 Sail 与 Spark 的对比?访问 Why Sail?(https://lakesail.com/why-sail/)。准备迁移?迁移指南(https://docs.lakesail.com/sail/latest/introduction/migrating-from-spark/)手把手教你。
延伸阅读
- 架构(https://docs.lakesail.com/sail/latest/concepts/architecture/)——本地与集群模式设计概览,以及无缝切换机制。
- 查询规划(https://docs.lakesail.com/sail/latest/concepts/query-planning/)——详解 SQL 与 Spark 关系解析、逻辑/物理计划构建及本地与集群执行。
- SQL(https://docs.lakesail.com/sail/latest/guide/sql/)与 DataFrame(https://docs.lakesail.com/sail/latest/guide/dataframe/)功能——Spark SQL 与 DataFrame API 完整兼容参考。
- LakeSail 博客(https://lakesail.com/blog/)——Sail 发布、基准测试与技术洞察更新。
✨在用 Sail?分享你的故事(https://lakesail.com/share-story/)领取免费周边!✨
相似文章
@GoSailGlobal: https://x.com/GoSailGlobal/status/2059814494021316923
LlamaIndex 用 Rust 重写了文档解析器,将 457 页 PDF 的解析时间缩短至 0.7 秒,开源免费且支持多种运行环境。
@mylifcc: LiteLLM 正式迁移到 Rust 了! AI Gateway 迎来史诗级性能升级: 单请求开销降低 150 倍(~0.05ms vs Python 7.5ms) 吞吐量提升 15 倍 内存占用降低 11 倍(峰值仅 32MB) 单个 …
LiteLLM已从Python迁移到Rust,性能大幅提升:请求开销降低150倍至0.05ms,吞吐量提升15倍,内存占用降低11倍至32MB。
我们如何(及为何)将生产环境的C++前端基础设施重写为Rust
NearlyFreeSpeech.NET 将其生产环境的C++前端基础设施(nfsncore)重写为Rust,该系统负责所有传入请求的路由、缓存和访问控制。迁移的动机是Rust的安全性保证、性能、生态系统优势以及老化的C++代码库的局限性。
Bun 的 Rust 重写已合并
Bun,JavaScript 运行时和包管理器,已合并其核心从 Zig 到 Rust 的重写,可能提升性能和可维护性。
@GoSailGlobal: https://x.com/GoSailGlobal/status/2052573500800700560
SWE-WebDev Bench 是 arXiv 上的一篇论文,评测了 6 个主流 vibe coding 平台(Lovable、Replit Agent3、Vercel v0-Max、Base44、Emergent E1-OPUS、QwikBuild),发现所有平台工程综合分都没超过 60%,前端 UI 漂亮但后端、安全、生产就绪度集体翻车,需要 12-60 小时人工修复才能上线。