lakehq/sail
Drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads.
解决的问题
Sail 是 Apache Spark 的高性能 Rust 原生替代品。它消除了 Spark 所需的 "JVM 税"——即内存开销、垃圾回收停顿和复杂的调优——同时保持与 Spark Connect 协议、Spark SQL 和 DataFrame API 完全兼容。
工作原理
Sail 基于 Rust、Apache Arrow 和 Apache DataFusion 构建。它使用列式内存格式和 SIMD 指令实现向量化执行。为保持兼容性,它实现了自定义的 Rust 解析器用于 Spark SQL,并支持 Spark Connect 协议,允许用户在不重写代码的情况下将现有的 PySpark 会话连接到 Sail 服务器。它还通过 Arrow 数组指针实现 Python UDF 的零拷贝数据共享,从而减少序列化开销。
适用人群
使用 Apache Spark 进行批处理和流处理,或处理计算密集型 AI 工作负载的数据工程师和 AI 实践者,希望在不迁移现有代码库的前提下降低基础设施成本并提升执行速度。
主要亮点
- 无缝 Spark 兼容性:通过 Spark Connect 支持 Spark SQL 和 DataFrame API,无需代码重写。
- Rust 原生性能:消除 JVM 开销,实现即时启动和可预测的内存安全。
- 显著的成本与速度提升:基准测试显示,相比 Spark,执行速度最高提升 10 倍,基础设施成本降低 98%。
- 广泛集成支持:原生支持 Delta Lake、Apache Iceberg 以及多种云存储后端(S3、Azure、GCS 等)。
- 高效数据洗牌:工作节点之间直接交换 Arrow 列式数据,最大限度降低连接和聚合操作的成本。
相关
- 项目
- 项目
- 项目
- 项目
- 项目