데이터분석

DuckDB-1 (파일SQL)

DEDS 2025. 4. 8. 17:58
728x90

DuckDB는 데이터 분석가, 엔지니어, 사이언티스트들 사이에서 Pandas를 대체할 차세대 도구로 주목받는 초고속 분석용 데이터베이스입니다.

  • DuckDB는 "SQLite for Analytics" 라고 불리는 경량 분석용 SQL 데이터베이스
  • 로컬에서 설치 없이 사용할 수 있는 내장형(in-process) DB
  • SQL 문법으로 대규모 데이터를 빠르게 분석 가능
  • Pandas, Arrow, Parquet, CSV 등 다양한 형식 지원
  • 메모리 사용량이 적고, 병렬 처리로 매우 빠름
  • Pandas로 다루기 벅찬 대용량 파일 처리
#csv 파일 생성
import duckdb
from sklearn.datasets import load_iris
import pandas as pd

# iris 데이터 불러오기
iris = load_iris()

# DataFrame으로 변환
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['target'] = iris.target
df.columns = df.columns.str.replace(' ', '_')
df.columns = df.columns.str.replace('_(cm)', '')

# CSV 파일로 저장
df.to_csv('iris.csv', index=False)
print(df.head())

iris.csv 파일을 생성하였습니다.

 

duckdb.sql("select target,count(*) as cnt from read_csv('iris.csv') group by target order by 1").df()
#CSV 파일에서 직접 SQL문 수행
#Pandas는 메모리에 모두 올리지만 duckdb는 메모리 사용하지 않음

 

csv 파일로 직접 sql문을 사용할 수 있습니다. dataframe도 직접 SQL문을 사용할 수 있습니다.

parquet 등 다양한 포맷의 파일도 사용이 가능합니다.

만약 duckdb가 미설치되어 있으면 pip install duckdb로 설치하시면 됩니다.

 

다음글은 DB 테이블 생성 및 입력등에 대해서 글을 쓰도록 하겠습니다.

728x90

'데이터분석' 카테고리의 다른 글

DuckDB-3 (Parquet 및 Copy)  (0) 2025.04.10
DuckDB-2(테이블 활용)  (0) 2025.04.09
pandas 컬럼명 변경  (0) 2025.04.08
비모수검정  (0) 2025.04.08
정규성 검정(Normality Tests)  (0) 2025.04.08