Um acelerador para Spark que executa operadores de Spark SQL e DataFrame sobre dados colunares do Apache Arrow com um mecanismo Rust baseado em DataFusion, sem alterações no código.
lakehq/sail
Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect.
Alternativa open source a:Databricks
- Estrelas
- 3,488
- Forks
- 240
- Issues abertas
- 317
- Último commit
- ontem
O que é?
Sail é um mecanismo de computação distribuída que substitui o Apache Spark. Os clientes se conectam a ele pelo protocolo Spark Connect, permitindo executar código existente de PySpark DataFrame e Spark SQL no Sail sem modificações. Ele é escrito inteiramente em Rust e não depende da JVM.
Sail é baseado no Apache Arrow e no Apache DataFusion, com formato colunar em memória e execução vetorizada. Ele atende a cargas de trabalho de processamento em lote, processamento de streams e Python UDF, UDAF, UDWF e UDTF. Pode ser executado como servidor local, iniciado pelo comando sail ou pelo pacote Python pysail, ou em modo de cluster no Kubernetes.
Para acesso a dados, Sail oferece suporte nativo a tabelas Delta Lake e Apache Iceberg e integração com catálogos como Iceberg REST, AWS Glue, Unity Catalog e Hive Metastore. Ele lê e grava dados no S3, Azure, Google Cloud Storage, HDFS, Cloudflare R2, HTTP e sistemas de arquivos locais. Também inclui um script experimental de verificação de compatibilidade para encontrar funções do PySpark que o Sail ainda não implementa.
Recursos principais
- 01Fala o protocolo Spark Connect, permitindo que clientes PySpark se conectem sem alterações no código.
- 02Oferece suporte a Spark SQL e à API Spark DataFrame, incluindo Python UDF, UDAF, UDWF e UDTF.
- 03Suporte nativo à leitura e gravação de tabelas Delta Lake e Apache Iceberg.
- 04Integração com os catálogos Iceberg REST, AWS Glue, Unity Catalog e Hive Metastore.
- 05Executa sem a JVM e é baseado no Apache Arrow e no DataFusion.
- 06Pode ser implantado como servidor local ou como cluster no Kubernetes.
Casos de uso
- Migrar jobs ETL existentes de PySpark para um mecanismo mais leve, sem reescrever o código.
- Executar análises em lote em tabelas Delta Lake ou Iceberg armazenadas no S3 ou Azure.
- Reduzir custos de cluster e tempo de inicialização para cargas de trabalho no estilo Spark no Kubernetes.
- Desenvolver e testar código Spark localmente com um servidor iniciado por um único comando.
Início rápido
- 1
Instale o Sail pelo PyPI
pip install pysail - 2
Instale o cliente PySpark
pip install "pyspark-client" - 3
Inicie o servidor local do Sail
sail spark server --port 50051 - 4
Conecte o PySpark ao servidor em sc://localhost:50051 e execute seu código sem modificá-lo
Antes de usar
- O script de verificação de compatibilidade com PySpark é experimental e não verifica a paridade de comportamento com o Spark.
- Para fazer o deploy em produção no Kubernetes, é necessário criar uma imagem Docker e escrever os manifestos.
Em coleções
Tópicos
Perguntas frequentes
- O que é sail?
- Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect. Sail é um mecanismo de computação distribuída que substitui o Apache Spark. Os clientes se conectam a ele pelo protocolo Spark Connect, permitindo executar código existente de PySpark DataFrame e Spark SQL no Sail sem modificações. Ele é escrito inteiramente em Rust e não depende da JVM.
- sail é gratuito? Qual é a licença?
- sail é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- sail ainda é mantido?
- Manutenção ativa. O último commit de sail foi em 5 de nov. de 2026.
- Para que posso usar sail?
- Migrar jobs ETL existentes de PySpark para um mecanismo mais leve, sem reescrever o código. Executar análises em lote em tabelas Delta Lake ou Iceberg armazenadas no S3 ou Azure. Reduzir custos de cluster e tempo de inicialização para cargas de trabalho no estilo Spark no Kubernetes. Desenvolver e testar código Spark localmente com um servidor iniciado por um único comando.
- Como instalar sail?
- Instale o Sail pelo PyPI: pip install pysail Instale o cliente PySpark: pip install "pyspark-client" Inicie o servidor local do Sail: sail spark server --port 50051 Conecte o PySpark ao servidor em sc://localhost:50051 e execute seu código sem modificá-lo
- Onde consigo sail?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lakehq/sail
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Manual curado e repleto de links, com livros, comunidades, cursos, ferramentas, blogs e recursos de aprendizado para engenharia de dados.
Um mecanismo unificado de análise para processamento de dados em larga escala, com APIs em Scala, Java, Python e R.
Exemplos de código, tutoriais e utilitários para criar jobs de ETL e pipelines de integração de dados no AWS Glue.
Biblioteca nativa em Rust para ler e gravar tabelas Delta Lake, com bindings Python para uso com pandas e outras ferramentas de dados.
Funções auxiliares para PySpark que validam DataFrames, transformam colunas e facilitam o trabalho com schemas, acelerando o desenvolvimento com Spark.