DuckDB - Embedded OLAP DB 오픈소스
(duckdb.org)"SQLite for Analytics"
- 복잡한 분석쿼리에 최적화된 임베디드 RDBMS
- C++11로 작성된 의존성 없는 싱글 바이너리로 호스트 프로세스내에서 실행
- Python/R/Java/C/C++/Node.js API 제공
- SQLite 처럼 한개의 파일에 DB저장
- 적합한 Usecase
ㅤ→ CSV/Parquet 등의 tabular 데이터 처리 및 저장
ㅤ→ 여러 큰 테이블들을 Join & Agggreate 하는 인터랙티브 데이터 분석
ㅤ→ 여러개의 대형 테이블에 동시에 큰 변경을 할 때 (여러 줄을 추가 또는 컬럼 추가/삭제/변경 등)
임베디드 DB에서 OLTP는 SQlite, OLAP는 DuckDB 로 양분하는 걸 목표로 하는듯 한데
20년전에 나와서 이젠 임베디드 쪽은 장악해 버린 SQLite 와는 달리 0.1 나온지 1년반 정도 밖에 안된 신참 오픈소스 입니다. ^^
몇일 전에 node.js API가 새로 추가되어서 다양하게 쓰기 편해진 듯
맞아요 보통 접하는 설명이 트랜잭션이랑 분석(이름 그대로)이다보니 유명 RDB들은 넣고 빼는 것도 빠르고 분석 작업도 빠르잖아요. 예로 오라클이나 포스트그리가 어느쪽에 특화되었다 할 것이 딱히 없는데다가... 빅데이터 시대의 분석은 어차피 그런 녀석들에서는 이미 아득히 멀어져 있다는 느낌이 드는데 지금도 oltp olap 구분하는게 어떤 의미가 있는지 잘 모르겠다는 얘기였습니다 ^^;
음.. 제가 설명하는 방식은
- OLTP 는 가로 : 한 줄 단위로 뭔가가 추가되는 것 (새로 주문이 들어옴)
- OLAP 는 세로 : 특정 컬럼 전체를 읽어서 계산하거나 변경하거나 하는 것 (일 매출 평균 계산)