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 작업에 중점
- 데이터 분석 및 쿼리 중심으로 설계된 시스템
- 다양한 데이터 소스를 직접 SQL로 쿼리 가능:
- CSV, TSV, JSON 등 일반 파일 형식
- Parquet 등 고급 파일 형식 지원
- 이 기능은 유연성을 제공하며, 예: Bluesky의 데이터 스트림 분석
- DuckDB에도 확장 기능이 존재하나, Postgres만큼 풍부하지 않음 (상대적으로 젊은 프로젝트)
- 커뮤니티 기여 확장이 많이 있으며, gsheets(Google Sheets 연동)가 주목할 만함
- Python 노트북이나 Evidence를 통해 데이터 분석 및 처리 실험
- SQLite와 결합: SQLite 데이터베이스의 분석 쿼리를 DuckDB로 위임해 성능 향상