lakehq/sail

Drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads.

해결하는 문제

Sail은 Apache Spark의 고성능 Rust 네이티브 대체제입니다. Spark가 요구하는 메모리 오버헤드, 가비지 컬렉션 지연, 복잡한 튜닝을 제거하면서도 Spark Connect 프로토콜, Spark SQL, DataFrame API와 완전히 호환됩니다.

작동 방식

Sail은 Rust, Apache Arrow, Apache DataFusion를 기반으로 구축되었습니다. 열 기반 메모리 내 형식과 SIMD 명령어를 사용하여 벡터화된 실행을 구현합니다. 호환성을 유지하기 위해 Spark SQL용 사용자 정의 Rust 파서를 구현하고 Spark Connect 프로토콜을 지원하여 기존 PySpark 세션을 코드 재작성 없이 Sail 서버에 연결할 수 있습니다. 또한 Arrow 배열 포인터를 통해 Python UDF에 대한 제로 코피 데이터 공유를 가능하게 하여 직렬화 오버헤드를 줄입니다.

대상 사용자

배치 및 스트림 처리 또는 계산 집약적인 AI 워크로드에 Apache Spark를 사용하고 있으며, 기존 코드베이스를 이전하지 않고 인프라 비용을 줄이고 실행 속도를 높이고자 하는 데이터 엔지니어 및 AI 전문가.

주요 특징

  • 드롭인형 Spark 호환성: Spark Connect를 통해 Spark SQL과 DataFrame API를 지원하며 코드 재작성 없이 사용 가능.
  • Rust 네이티브 성능: JVM 오버헤드를 제거하여 즉시 시작과 예측 가능한 메모리 안정성 제공.
  • 매우 큰 비용 및 속도 향상: 벤치마크 결과 Spark 대비 최대 10배 빠른 실행과 98% 낮은 인프라 비용을 달성.
  • 광범위한 통합: Delta Lake, Apache Iceberg 및 다양한 클라우드 스토리지 백엔드(S3, Azure, GCS 등)를 네이티브로 지원.
  • 효율적인 데이터 셔플링: 워커 간에 Arrow 열 기반 데이터를 직접 교환하여 조인 및 집계 처리 비용을 최소화.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트