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 に必要なメモリオーバーヘッド、ガベージコレクションの遅延、複雑なチューニングを排除しながら、Spark Connect プロトコル、Spark SQL、DataFrame API と完全に互換性があります。
動作方法
Sail は Rust、Apache Arrow、Apache DataFusion を使用して構築されています。列指向のメモリ内形式と SIMD 指令を用いてベクトル化実行を実現します。互換性を維持するために、独自の Rust パーサーを Spark SQL に実装し、Spark Connect プロトコルをサポートしています。これにより、既存の PySpark セッションをコードの再書き換えなしに Sail サーバーに接続できます。また、Arrow 配列ポインタを介したゼロコピーのデータ共有により、Python UDF のシリアル化オーバーヘッドを削減します。
対象ユーザー
バッチ処理やストリーム処理、または計算集約的な AI タスクに Apache Spark を使用し、既存のコードベースを移行せずにインフラコストを削減し、実行速度を向上させたいデータエンジニアや AI プラクティショナー。
主な特徴
- ドロップイン型 Spark 互換性:Spark Connect を通じて Spark SQL と DataFrame API をサポートし、コードの再書き換えが不要。
- Rust ネイティブのパフォーマンス:JVM オーバーヘッドを排除し、即時起動と予測可能なメモリセーフティを実現。
- 顕著なコスト・スピード向上:ベンチマークでは、Spark と比較して最大 10 倍の高速化と 98% のインフラコスト削減を達成。
- 広範な統合:Delta Lake、Apache Iceberg、およびさまざまなクラウドストレージバックエンド(S3、Azure、GCS など)をネイティブでサポート。
- 効率的なデータシャッフル:ワーカー間で Arrow 列指向データを直接交換することで、結合や集計処理のコストを最小限に抑える。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト