[논문 리뷰] Building a serverless Data Lakehouse from spare parts
이 논문은 기존 오픈소스 컴포넌트를 재사용하여 새로 구현하거나 레거시 빅데이터 툴에 의존하지 않고 서버리스 데이터 레이크하우스인 Bauplan을 구축한다. Apache Iceberg, DuckDB, 그리고 커스텀 컨테이너라이즈드 런타임과 같은 기존 시스템을 조합함으로써, 낮은 지연 시간의 함수 실행과 효율적인 캐싱을 지원하는 통합적이고 개발자 중심의 인터랙티브 쿼리 및 확장 가능한 파이프라인 실행 환경을 제공한다.
The recently proposed Data Lakehouse architecture is built on open file formats, performance, and first-class support for data transformation, BI and data science: while the vision stresses the importance of lowering the barrier for data work, existing implementations often struggle to live up to user expectations. At Bauplan, we decided to build a new serverless platform to fulfill the Lakehouse vision. Since building from scratch is a challenge unfit for a startup, we started by re-using (sometimes unconventionally) existing projects, and then investing in improving the areas that would give us the highest marginal gains for the developer experience. In this work, we review user experience, high-level architecture and tooling decisions, and conclude by sharing plans for future development.
연구 동기 및 목표
- 기존의 데이터 레이크하우스 구현에서의 열악한 개발자 경험과 이상적인 데이터 레이크하우스 비전 사이의 격차를 해소하기 위해.
- 인터랙티브 쿼리와 프로덕션 수준의 데이터 파이프라인을 모두 지원하는 유연하고 확장 가능하며 부담이 적은 데이터 플랫폼을 제공하기 위해.
- 기존 빅데이터 프레임워크를 재작성하거나 개조하는 대신, 기존 오픈소스 툴을 재사용함으로써 개발 오버헤드를 줄이기 위해.
- 개발자 작업 흐름을 향상시키기 위해 동기 및 비동기 워크플로우를 개발 및 프로덕션 환경에서 모두 지원하는 CLI 우선 설계를 통해 개발자 유저 인터페이스를 개선하기 위해.
- 스타트업이 기술적 실현 가능성을 고려하면서도 혁신을 추구할 수 있는 실용적인 길을 탐색하기 위해.
제안 방법
- Apache Iceberg를 테이블 포맷으로, DuckDB를 SQL 엔진으로, Nessie를 버전 제어로 사용하며, 이를 기반으로 하는 '레고 브릭'처럼 작동하는 기반 시스템을 재사용한다.
- 파이썬 실행을 위해 로컬 디스크 기반 캐시를 갖춘 커스텀 컨테이너라이즈드 런타임을 구축하여, 패키지 사용 빈도의 파워-법칙 패턴을 활용해 기동 시간을 최적화하고 종속성 다운로드 오버헤드를 줄인다.
- 가벼운 컨테이너 관리자로 함수 수준의 격리와 커스터마이징 가능한 공유 정책을 지원함으로써 DAG 실행 내에서 동기 및 비동기 모드를 모두 구현한다.
- 객체 스토리지 기반 캐싱을 활용하고, 특히 단일 테넌트 및 '자신의 클라우드를 가져오세요' 배포 환경에서 빠른 기동(300ms)과 최소한의 오버헤드를 제공하는 서버리스 실행을 지원한다.
- CLI 우선 인터페이스는 두 가지 핵심 명령어를 제공한다: 'bauplan query'는 동기식, 시점 기반 데이터 탐색을 위해, 'bauplan run'은 재생 및 디버깅 기능이 있는 비동기식 DAG 기반 파이프라인 실행을 위해 사용된다.
- 브랜치 인식 쿼리를 통해 시간여행 세마antics를 네이티브로 지원하여 사용자가 버전 기록의 다양한 시점에서 데이터를 검토할 수 있도록 한다.
실험 결과
연구 질문
- RQ1기존 오픈소스 컴포넌트를 재사용함으로써 새로 구현하거나 기존 빅데이터 프레임워크를 확장하는 대신 서버리스 데이터 레이크하우스를 효과적으로 구축할 수 있는가?
- RQ2조립 가능한 서버리스 아키텍처에서 인터랙티브 쿼리와 프로덕션 파이프라인 실행 간에 일관된 개발자 경험을 어떻게 달성할 수 있는가?
- RQ3서버리스 데이터 플랫폼에서 파이썬 함수를 위한 컨테이너라이즈드 런타임을 사용할 경우 발생하는 성능 및 개발자 유저 인터페이스의 트레이드오프는 무엇인가?
- RQ4패키지 사용 빈도 패턴 기반 캐싱 전략이 서버리스 데이터 함수의 쿨스타트 오버헤드를 어느 정도 줄일 수 있는가?
- RQ5조립 가능한 데이터 관리 시스템에서 버전 관리된 데이터, 시간여행, 재현 가능한 파이프라인을 어떻게 네이티브로 지원할 수 있는가?
주요 결과
- 공통적으로 사용되는 패키지의 효율적이고 로컬 디스크 기반 캐싱을 통해 서버리스 파이썬 함수의 기동 시간이 300ms로 매우 빠르게 구현된다.
- 패키지 사용의 파워-법칙 분포를 활용함으로써 캐싱 전략이 전체 다운로드 시간을 크게 줄이고 함수 초기화 성능을 향상시킨다.
- CLI 우선 설계 덕분에 기존 개발 워크플로우와의 원활한 통합이 가능하며, 인터랙티브 탐색과 복잡하고 재현 가능한 파이프라인 실행 모두를 지원한다.
- 개발 및 프로덕션 환경에서 동기 및 비동기 실행 모드를 일관된 의미론과 함께 지원하며, Nessie를 통한 완전한 버전 관리가 가능하다.
- 세밀한 격리와 커스터마이징 가능한 공유 정책을 갖춘 컨테이너라이즈드 런타임을 사용함으로써, 하나의 DAG 내에서 안전하고 확장 가능한 데이터 파이프라인 실행이 가능하다.
- 오픈소스 컴포넌트를 재사용하는 접근 방식 덕분에 팀은 빠르게 작동 가능한 종단 간 시스템에 도달했고, 초기 사용자들과 함께 핵심 가정을 검증할 수 있었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.