Skip to content

DuckDB

DuckDB is an embeddable SQL OLAP database management system.

Features

  • SQLite for Analytics
  • 복잡한 분석쿼리에 최적화된 임베디드 RDBMS
  • C++11로 작성된 의존성 없는 싱글 바이너리로 호스트 프로세스내에서 실행
  • Python/R/Java/C/C++/Node.js API 제공
  • SQLite 처럼 한개의 파일에 DB저장
  • 적합한 Usecase
    • CSV/Parquet 등의 tabular 데이터 처리 및 저장
    • 여러 큰 테이블들을 Join & Agggreate 하는 인터랙티브 데이터 분석
    • 여러개의 대형 테이블에 동시에 큰 변경을 할 때 (여러 줄을 추가 또는 컬럼 추가/삭제/변경 등)

2025년을 위한 7개의 데이터베이스 중 하나

  • Database#2025년을 위한 7개의 데이터베이스 (GeekNews) 참조
  • DuckDB는 OLAP에 특화된 임베디드 데이터베이스
    • SQLite처럼 애플리케이션과 함께 작동하지만 OLTP 대신 OLAP 작업에 중점
    • 데이터 분석 및 쿼리 중심으로 설계된 시스템
  • DuckDB의 "쿼리-애니씽(Query-Anything)" 특성
    • 다양한 데이터 소스를 직접 SQL로 쿼리 가능:
      • CSV, TSV, JSON 등 일반 파일 형식
      • Parquet 등 고급 파일 형식 지원
    • 이 기능은 유연성을 제공하며, 예: Bluesky의 데이터 스트림 분석
  • 확장성 및 생태계
    • DuckDB에도 확장 기능이 존재하나, Postgres만큼 풍부하지 않음 (상대적으로 젊은 프로젝트)
    • 커뮤니티 기여 확장이 많이 있으며, gsheets(Google Sheets 연동)가 주목할 만함
  • DuckDB 활용 학습 권장
    • Python 노트북이나 Evidence를 통해 데이터 분석 및 처리 실험
    • SQLite와 결합: SQLite 데이터베이스의 분석 쿼리를 DuckDB로 위임해 성능 향상

See also

Favorite site