Ускоритель Apache Spark, выполняющий операторы Spark SQL и DataFrame над колоночными данными Apache Arrow с помощью движка на Rust и DataFusion — без изменений кода.
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
Установите Sail из PyPI
pip install pysail - 2
Установите клиент PySpark
pip install "pyspark-client" - 3
Запустите локальный сервер Sail
sail spark server --port 50051 - 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 обновляется ежедневно.
Похожие проекты
Подборка ссылок на книги, сообщества, курсы, инструменты, блоги и учебные материалы по инженерии данных.
Унифицированный движок аналитики для распределённой обработки больших данных с API для Scala, Java, Python и R.
Примеры кода, руководства и утилиты для создания ETL-заданий и интеграционных конвейеров данных на AWS Glue.
Нативная библиотека на Rust для чтения и записи таблиц Delta Lake с привязками для Python, pandas и других инструментов работы с данными.
Вспомогательные функции PySpark для проверки DataFrame, преобразования столбцов и работы со схемами, ускоряющие разработку на Spark.