@LakeSailHQ:用 Rust 重写的 Spark——无 JVM,速度提升 8 倍,成本降低 94%

X AI KOLs Following 工具

摘要

LakeSail 推出 Sail,一款基于 Rust 重新实现的 Apache Spark,在保持完整 API 兼容的同时,性能提升 8 倍,基础设施成本降低 94%。

用 Rust 重写的 Spark——无 JVM,速度提升 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。
指标SparkSail
总查询时间387.36 秒102.75 秒
查询加速比基准43% – 727%
峰值内存占用54 GB22 GB(1 秒)
磁盘写入(shuffle spill)> 110 GB0 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/)领取免费周边!✨

相似文章

Bun 的 Rust 重写已合并

Lobsters Hottest

Bun,JavaScript 运行时和包管理器,已合并其核心从 Zig 到 Rust 的重写,可能提升性能和可维护性。

@GoSailGlobal: https://x.com/GoSailGlobal/status/2052573500800700560

X AI KOLs Timeline

SWE-WebDev Bench 是 arXiv 上的一篇论文,评测了 6 个主流 vibe coding 平台(Lovable、Replit Agent3、Vercel v0-Max、Base44、Emergent E1-OPUS、QwikBuild),发现所有平台工程综合分都没超过 60%,前端 UI 漂亮但后端、安全、生产就绪度集体翻车,需要 12-60 小时人工修复才能上线。