분석용 SQLite
DuckDB 는 in-process OLAP SQL 데이터베이스. 핵심: pip install duckdb 하고 SQL 쓰면 Parquet 파일, Arrow 테이블, Pandas DataFrame, Polars DataFrame, CSV 를 직접 query — 복사 없이, 서버에 로드 없이. 현 stable: 1.5.2.
SQLite 가 트랜잭션 row-oriented 워크로드용 in-process DB 라면 DuckDB 는 분석 column-oriented 워크로드용 in-process DB. 같은 아이디어 — 서버 없음, Python 프로세스 안에서 — 다른 최적화 타겟.
잘하는 거
- Parquet 파일을 column pruning + predicate pushdown 자동으로 query.
- 여러 Parquet 파일을 테이블처럼 join.
- Pandas/Polars DataFrame 을 SQL 이 더 자연스러운 transformation 표현일 때 SQL 로 query.
- 중간 크기 데이터 (수백 GB) 분석 "warehouse" 역할 — Snowflake 띄우는 게 overkill 일 때.
아닌 것
DuckDB 는 고동시성 OLTP 용 아님 (Postgres 써). 분산 아님 (수십 노드 페타바이트엔 BigQuery/Snowflake/Spark). 그리고 read-heavy 분석 최적화라 row 한 번에 하나씩 안 써 — batch insert.