요즘 관심이 생긴 툴이 있다.
바로 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의 주요 차이점은 다음과 같다.
'Study > SQL' 카테고리의 다른 글
[solvesql] 2단계 쿼리문제 해결 (0) | 2024.12.02 |
---|---|
[solvesql] 1단계 쿼리문제 해결 (3) | 2024.11.03 |
[solvesql] SQLite 쿼리 연습 문제(2024-10-26 ~ ) (0) | 2024.10.26 |