본문 바로가기

개발

[python]DuckDB와 데이터 처리

최근 재미있는 DB에 대한 소개를 받았습니다.

바로 DuckDB라는 건데요. 2019년에 등장하여 이미 인기있는 데이터 분석을 위한 DB로 소개되고 있네요.. 

https://duckdb.org/

 

An in-process SQL OLAP database management system

DuckDB is an in-process SQL OLAP database management system. Simple, feature-rich, fast & open source.

duckdb.org

 

DuckDB는 in-process SQL OLAP DBMS라는데요..
in-process 즉, 응용(app) 내에서 in memory 방식으로 처리되며, 벡터화된 쿼리 엔진에,
분석 처리(OLAP)를 목적으로 하는(트랜잭션 처리(OLTP)가 아닌) 빠르고 효율적인 DB라고 합니다.

(SQL 사용 시 column 기반의 Apache Parquet 방식을 사용한다고 합니다.. 열 기반(!!)도 재미있네요)

 

0) 설치

설치는 pip를 이용해서 설치할 수 있습니다. 

pip install duckdb

pip install duckdb
(그림 1) pip를 이용한 duckdb 설치

(2024.05.12. 기준으로 v0.10.2.가 릴리즈 중이네요)

 

1) 이용

# import libs
import duckdb

# ...

# import data from pandas dataframe(df0)
sql1 = 'select col1, col2, avg(col3) as avg from df0 group by col1, col2'
df_res1 = duckdb.sql(sql1).df() # res to dataframe

print(df_res1)

 

 

 

참고)

  https://duckdb.org/docs/data/overview

  https://duckdb.org/docs/sql/functions/overview

  https://duckdb.org/docs/sql/aggregates

  https://duckdb.org/docs/api/python/overview.html

 

  https://motherduck.com/blog/duckdb-versus-pandas-versus-polars/

  https://www.infoq.com/articles/analytical-data-management-duckdb/

 

 

반응형