본문 바로가기
Study/SQL

[DuckDB] 0. DuckDB에 대하여

by kimdapadata 2024. 11. 12.

 

출처 : https://github.com/duckdb/duckdb

 

요즘 관심이 생긴 툴이 있다.

 

바로 DuckDB라는 것이다.

 

요즘 회사에서 데이터 베이스 설계를 하면서 SQL에 관심이 더 생기게 되었었는데,  마침 인프런(현재 게시글에 있음!)에 있는 강의를 들으면서 DuckDB에 대해서 알게 되었다.

 

단순히 찾아봤을 때 내가 자주 다루는 csv 파일이라던지 jupyter notebook이랑도 잘 연동된다고 해서 한번 공부를 해보려고 한다!

 

근데, 아쉬운 점이 한글판으로 나온 도서가 없다는 것이다. (못찾는 것일지도..)

 

그래서 공식 사이트와 각종 사이트 등을 읽으며 하나하나 공부를 해볼 예정이다!

 


 

DuckDB란?

  • 임베디드 분석 데이터베이스로, 대규모 데이터 처리를 로컬 환경에서도 빠르고 효율적으로 수행할 수 있도록 설계된 시스템
  • SQLite와 비슷하게 작동하고, 주로 데이터 분석 워크로드에 최적화되어 있다.

 

특징

  • 컬럼 기반 저장소 : 데이터는 컬럼 단위로 저장되어 압축 효율이 높고, 쿼리 성능 우수
  • 임베디드 DB : 서버를 필요로 하지 않으며, 로컬 환경에서 바로 사용할 수 있음
  • 대규모 데이터 처리 : 메모리 내 분석을 지원, 디스크 기반의 데이터 처리 기능을 제공
  • 통합된 분석 기능 : 파이썬, R 등과 통합되어 있으며 Pandas, Numpy 등과 쉽게 연동
  • 빠른 성능 : OLAP 쿼리에 최적화되어 있어 대용량 데이터셋에서 뛰어난 성능 발휘
  • 다양한 데이터 소스 지원 : CSV, JSON, Parquet 등의 파일, S3, MySQL, PostgreSQL 등을 지원

 

장점

  • 빠른 쿼리 성능 : 분석 워크로드에서 매우 빠른 성능 제공
  • 경량성 : 서버리스 환경에서 가볍게 실행
  • 쉬운 통합 : Python, R, SQL과 같은 언어와 쉽게 연동하여 바로 사용
  • 비용 효율적 : 클라우드 서버를 사용할 필요가 없으므로 비용이 절감

 

단점

  • 제한된 동시성 : 대규모 트랜잭션 기반의 OLTP에는 적합하지 않음
  • 메모리 의존성 : 메모리 내 작업이기 때문에 큰 데이터를 다룰 때 메모리 부족 문제 발생 가능

 

더보기

여기서 잠깐!

OLAP, OLTP의 주요 차이점은 다음과 같다.

 

 

 

 

출처 : https://dadev.tistory.com/entry/DuckDB-what-is-duckDB