Repolode
lakehq

lakehq/sail

Полноценная замена Apache Spark на Rust, запускающая существующий код PySpark через протокол Spark Connect.

Open source альтернатива:Databricks

Звёзды
3,488
Форки
240
Открытые issues
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 можно запустить как локальный сервер с помощью команды sail или Python-пакета pysail, а также развернуть в кластере Kubernetes.

Для работы с данными Sail нативно поддерживает таблицы Delta Lake и Apache Iceberg, а также интегрируется с каталогами Iceberg REST, AWS Glue, Unity Catalog и Hive Metastore. Движок читает и записывает данные в S3, Azure, Google Cloud Storage, HDFS, Cloudflare R2, HTTP и локальные файловые системы. В комплект входит экспериментальный скрипт проверки совместимости, который помогает находить функции PySpark, ещё не реализованные в Sail.

Ключевые возможности

  • 01Поддерживает протокол Spark Connect, поэтому клиенты PySpark подключаются без изменений в коде.
  • 02Поддерживает Spark SQL и Spark DataFrame API, включая Python UDF, UDAF, UDWF и UDTF.
  • 03Нативно читает и записывает таблицы Delta Lake и Apache Iceberg.
  • 04Интегрируется с каталогами Iceberg REST, AWS Glue, Unity Catalog и Hive Metastore.
  • 05Работает без JVM и построен на Apache Arrow и DataFusion.
  • 06Разворачивается как локальный сервер или как кластер в Kubernetes.

Сценарии использования

  • Перенос существующих ETL-задач на PySpark на более лёгкий движок без переписывания кода.
  • Выполнение пакетной аналитики над таблицами Delta Lake или Iceberg, хранящимися в S3 или Azure.
  • Снижение стоимости кластера и времени запуска нагрузок в стиле Spark на Kubernetes.
  • Разработка и локальное тестирование кода Spark с помощью сервера, запускаемого одной командой.

Быстрый старт

  1. 1

    Установите Sail из PyPI

    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 в production необходимо собрать образ Docker и написать манифесты.

В подборках

Темы

Частые вопросы

Что такое sail?
Полноценная замена Apache Spark на Rust, запускающая существующий код PySpark через протокол Spark Connect. Sail — распределённый вычислительный движок, который может заменить Apache Spark. Клиенты подключаются к нему по протоколу Spark Connect, поэтому существующий код PySpark с DataFrame и Spark SQL работает с Sail без изменений. Движок полностью написан на Rust и не зависит от JVM.
sail можно использовать бесплатно? Какая у него лицензия?
sail распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
sail всё ещё поддерживается?
Активно поддерживается. Последний коммит в sail — 7 нояб. 2026 г..
Для чего можно использовать sail?
Перенос существующих ETL-задач на PySpark на более лёгкий движок без переписывания кода. Выполнение пакетной аналитики над таблицами Delta Lake или Iceberg, хранящимися в S3 или Azure. Снижение стоимости кластера и времени запуска нагрузок в стиле Spark на Kubernetes. Разработка и локальное тестирование кода Spark с помощью сервера, запускаемого одной командой.
Как установить sail?
Установите Sail из PyPI: 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Ускоритель Apache Spark, выполняющий операторы Spark SQL и DataFrame над колоночными данными Apache Arrow с помощью движка на Rust и DataFusion — без изменений кода.

1,3 тыс.+7 за неделю414ScalaApache-2.0Обновлён 4 часа назад