DuckDB
DuckDB
SQLite에서 영감을 받은 임베디드 OLAP(분석) 데이터베이스로, 단일 프로세스 내에서 고성능 분석 쿼리를 수행하고 벡터화 실행, 컬럼 저장소, Parquet/CSV 직접 읽기를 지원하는 인프로세스 분석 엔진
목적: 임베디드 분석, 로컬 데이터 분석, OLAP 워크로드, 간단한 설정
특징: 임베디드(서버 없음), 컬럼 저장소, 벡터화 실행, Zero-Copy, Parquet/CSV 네이티브, ACID 트랜잭션
구성요소: SQL 엔진, 벡터화 실행 엔진, 컬럼 저장소, 트랜잭션 관리, 외부 데이터 읽기(Parquet, CSV, JSON)
벡터화 실행: 한 번에 수천 개 행 처리(배치), CPU 캐시 효율, SIMD 명령어 활용
Zero-Copy: Parquet 파일 직접 읽기, 메모리 복사 없음, mmap 활용
트랜잭션: MVCC(Multi-Version Concurrency Control), ACID 보장, 단일 Writer/다중 Reader
시간 복잡도: 분석 쿼리 O(n), 벡터화로 상수 인수 감소
공간 복잡도: 컬럼 저장소(압축), 메모리 효율
장점: 빠른 분석(벡터화), 임베디드(설치 없음), SQL 표준, Parquet/CSV 직접 읽기, ACID, 작은 바이너리
단점: OLTP 부적합, 단일 노드(분산 불가), 동시 쓰기 제한(단일 Writer)
적용사례: 데이터 과학(Jupyter), 로컬 분석, BI 도구, 임베디드 분석, Parquet 쿼리, 프로토타이핑
비교: DuckDB(임베디드/OLAP/빠름) vs SQLite(임베디드/OLTP) vs Pandas(메모리 제약) vs ClickHouse(분산/서버)
연관: OLAP, 벡터화, Parquet, 임베디드 데이터베이스, 컬럼 저장소