Repolode
lakehq

lakehq/sail

既存のPySparkコードをSpark Connectプロトコル経由で実行できる、Rust製のApache Spark互換エンジン。

代替できる製品:Databricks

スター
3,488
フォーク
240
未解決の Issue
294
最終コミット
7 時間前

これは何?

SailはApache Sparkの代替となる分散コンピュートエンジンです。クライアントはSpark Connectプロトコルで接続するため、既存のPySpark DataFrameやSpark SQLのコードを変更せずにSail上で実行できます。すべてRustで実装されており、JVMに依存しません。

SailはApache ArrowとApache DataFusionを基盤とし、インメモリのカラムナ形式とベクトル化実行を採用しています。バッチ処理、ストリーム処理に加え、Python UDF、UDAF、UDWF、UDTFのワークロードに対応します。sailコマンドまたはpysail Pythonパッケージから起動するローカルサーバーとして、あるいはKubernetes上のクラスターモードで実行できます。

データアクセスでは、Delta LakeとApache Icebergテーブルをネイティブにサポートし、Iceberg REST、AWS Glue、Unity Catalog、Hive Metastoreなどのカタログと連携します。S3、Azure、Google Cloud Storage、HDFS、Cloudflare R2、HTTP、ローカルファイルシステムからデータを読み書きできます。また、Sailがまだ実装していないPySpark関数を見つけるための実験的な補助ツールとして、互換性チェック用スクリプトが付属しています。

主な機能

  • 01Spark Connectプロトコルに対応しており、PySparkクライアントはコードを変更せずに接続できます。
  • 02Spark SQLとSpark DataFrame APIに対応し、Python UDF、UDAF、UDWF、UDTFも利用できます。
  • 03Delta LakeとApache Icebergテーブルの読み書きをネイティブにサポートします。
  • 04Iceberg REST、AWS Glue、Unity Catalog、Hive Metastoreの各カタログと連携します。
  • 05Apache ArrowとDataFusionを基盤としており、JVMなしで動作します。
  • 06ローカルサーバーとしても、Kubernetes上のクラスターとしてもデプロイできます。

ユースケース

  • 既存のPySpark ETLジョブをコードを書き換えずに、より軽量なエンジンへ移行する。
  • S3やAzureに保存されたDelta LakeまたはIcebergテーブルに対して、バッチ分析を実行する。
  • Kubernetes上でSpark形式のワークロードを実行し、クラスターのコストと起動時間を削減する。
  • 単一のコマンドで起動するサーバーを使い、Sparkコードをローカルで開発・テストする。

クイックスタート

  1. 1

    PyPIからSailをインストールする

    pip install pysail
  2. 2

    PySparkクライアントをインストールする

    pip install "pyspark-client"
  3. 3

    ローカルのSailサーバーを起動する

    sail spark server --port 50051
  4. 4

    PySparkをsc://localhost:50051のサーバーに接続し、コードを変更せずに実行する

使う前に知っておきたいこと

  • PySpark互換性チェック用スクリプトは実験的なもので、Sparkとの動作上の互換性は検証しません。
  • Kubernetesで本番環境にデプロイするには、Dockerイメージをビルドしてマニフェストを作成する必要があります。

収録されている特集

トピック

よくある質問

sail とは?
既存のPySparkコードをSpark Connectプロトコル経由で実行できる、Rust製のApache Spark互換エンジン。 SailはApache Sparkの代替となる分散コンピュートエンジンです。クライアントはSpark Connectプロトコルで接続するため、既存のPySpark DataFrameやSpark SQLのコードを変更せずにSail上で実行できます。すべてRustで実装されており、JVMに依存しません。
sail は無料で使えますか?ライセンスは?
sail は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
sail は今もメンテナンスされていますか?
活発にメンテナンス中。sail の最終コミットは 2026年11月7日 です。
sail は何に使えますか?
既存のPySpark ETLジョブをコードを書き換えずに、より軽量なエンジンへ移行する。 S3やAzureに保存されたDelta LakeまたはIcebergテーブルに対して、バッチ分析を実行する。 Kubernetes上でSpark形式のワークロードを実行し、クラスターのコストと起動時間を削減する。 単一のコマンドで起動するサーバーを使い、Sparkコードをローカルで開発・テストする。
sail のインストール方法は?
PyPIからSailをインストールする: pip install pysail PySparkクライアントをインストールする: pip install "pyspark-client" ローカルのSailサーバーを起動する: sail spark server --port 50051 PySparkをsc://localhost:50051のサーバーに接続し、コードを変更せずに実行する
sail はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/lakehq/sail

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

DataFusionを基盤とするRustエンジンでApache Arrowのカラムナーデータ上でSpark SQLとDataFrameの演算子を実行し、コード変更なしでSparkを高速化します。

データ・分析#spark#arrow#datafusion
1316+7 今週414ScalaApache-2.0更新 3 時間前