DuckDB

로컬 실행에 최적화된 임베디드 분석 OLAP 데이터베이스


핵심 개념

DuckDB는 SQLite의 OLAP 버전이라 할 수 있는 임베디드 분석 데이터베이스다. 서버 설치 없이 프로세스 내에서 실행되며, 컬럼나 스토리지와 벡터화 실행으로 분석 쿼리에 뛰어난 성능을 제공한다.

SQL 트랜스파일링을 통한 비용 절감

클라우드 웨어하우스(BigQuery, Snowflake 등)의 컴퓨트 비용을 줄이기 위해 DuckDB를 활용하는 패턴이 등장했다:

Quack Mode (Carbonfact/lea)

  1. 웨어하우스용 SQL을 SQLGlot으로 DuckDB 문법으로 트랜스파일
  2. 필요한 업스트림 테이블만 DuckDB로 풀(pull)
  3. 로컬에서 실행하여 DuckLake에 저장
  4. 필요 시 결과를 웨어하우스로 푸시백

DAG 분석 기반 하이브리드 실행

  • 외부 의존성(Fivetran 등)이 있는 루트 스크립트 → 웨어하우스에서 실행
  • 의존성이 풀된 스크립트 → 로컬 DuckDB에서 실행
  • SELECT * FROM table로 테이블 풀링 (매우 저렴)
  • 오케스트레이터가 DAG를 분석하여 자동 판단

DuckLake

DuckDB를 데이터 웨어하우스로 격상시키는 기능. S3/GCS/FUSE 파일시스템을 스토리지로 사용 가능.

성능과 비용 수치

항목수치
로컬 실행 컴퓨트 비용$0.00 (웨어하우스 대비)
예시 실행 시간4개 의존성 pull + 1 테이블 실행 = 5초
관리 가능 테이블 규모283개 스크립트 (lea 오케스트레이터)

한계와 적용 판단

  • 대용량 테이블 풀링: 100GB 이상 테이블을 DuckLake로 가져오는 데 시간 소요
  • 해결책 방향: Iceberg를 통한 제로카피 접근 (DuckDB가 최근 Iceberg 쓰기 지원 추가)
  • DuckDB가 부적합한 경우: 고동시성 OLTP, 테라바이트급 조인, 멀티유저 동시 쓰기
  • 적합한 경우: 개발/테스트 환경 쿼리, 단일 사용자 분석, CI 파이프라인 검증
  • MotherDuck: 로컬/클라우드 하이브리드 오케스트레이션 관리형 서비스
  • Greybeam: DuckDB 트랜스파일링을 서비스로 판매 중 (현재 Snowflake 지원)

연관 개념


Source: Lower Warehouse Costs via DuckDB Transpilation