- 스타
- 3,488
- 포크
- 240
- 열린 이슈
- 294
- 마지막 커밋
- 5시간 전
어떤 프로젝트인가요?
Sail은 Apache Spark를 대체하는 분산 컴퓨팅 엔진입니다. 클라이언트는 Spark Connect 프로토콜로 Sail에 연결하므로, 기존 PySpark DataFrame 및 Spark SQL 코드를 수정하지 않고 Sail에서 실행할 수 있습니다. Sail은 전적으로 Rust로 작성되었으며 JVM에 의존하지 않습니다.
Sail은 Apache Arrow와 Apache DataFusion을 기반으로 하며, 컬럼형 인메모리 포맷과 벡터화 실행을 사용합니다. 배치 처리, 스트림 처리와 Python UDF, UDAF, UDWF, UDTF 워크로드를 지원합니다. sail 명령이나 pysail Python 패키지로 시작하는 로컬 서버 또는 Kubernetes 클러스터 모드로 실행할 수 있습니다.
데이터 접근을 위해 Sail은 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 클라이언트를 코드 변경 없이 연결할 수 있습니다.
- 02Python UDF, UDAF, UDWF, UDTF를 포함해 Spark SQL과 Spark DataFrame API를 지원합니다.
- 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
PyPI에서 Sail 설치
pip install pysail - 2
PySpark 클라이언트 설치
pip install "pyspark-client" - 3
로컬 Sail 서버 시작
sail spark server --port 50051 - 4
PySpark를 sc://localhost:50051 서버에 연결하고 코드를 변경하지 않고 실행
사용 전 알아둘 점
- PySpark 호환성 확인 스크립트는 실험 단계이며, Spark와의 동작 호환성을 검증하지 않습니다.
- Kubernetes에 프로덕션 배포하려면 Docker 이미지를 빌드하고 매니페스트를 작성해야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- sail은(는) 무엇인가요?
- 기존 PySpark 코드를 Spark Connect 프로토콜로 실행하는 Rust 기반 Apache Spark 대체 엔진 Sail은 Apache Spark를 대체하는 분산 컴퓨팅 엔진입니다. 클라이언트는 Spark Connect 프로토콜로 Sail에 연결하므로, 기존 PySpark DataFrame 및 Spark SQL 코드를 수정하지 않고 Sail에서 실행할 수 있습니다. 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 통계는 매일 갱신됩니다.
관련 프로젝트
데이터 엔지니어링 학습 자료를 모아 정리한 링크 중심 핸드북으로, 책, 커뮤니티, 강의, 도구, 블로그 등을 다룹니다.
Scala, Java, Python, R API를 제공하는 대규모 데이터 처리를 위한 통합 분석 엔진입니다.
AWS Glue에서 ETL 작업과 데이터 통합 파이프라인을 구축하기 위한 코드 샘플, 튜토리얼 및 유틸리티입니다.
pandas와 기타 데이터 도구에서 사용할 수 있는 Python 바인딩을 제공하는, Delta Lake 테이블 읽기·쓰기를 위한 네이티브 Rust 라이브러리입니다.
Spark 개발을 빠르게 진행할 수 있도록 DataFrame 검증, 컬럼 변환, 스키마 유틸리티용 PySpark 헬퍼 함수를 제공합니다.