Summary

  • DuckDB는 파일 기반 또는 메모리 기반으로 동작하는 임베디드 분석용 데이터베이스다
  • 로컬 parquet 파일을 SQL로 바로 조회·적재할 수 있다
  • -ui 옵션이나 start_ui()로 웹 UI를 띄운다

설치

pip install duckdb

데이터베이스 연결

파일 기반.db 파일에 데이터베이스를 생성·연결한다.

import duckdb
 
con = duckdb.connect('my_database.db')

메모리 기반은 현재 메모리에 생성하고 종료 시 삭제한다.

import duckdb
 
con = duckdb.connect()   # duckdb.connect(':memory:')

사용법

main 스키마에 자동 업로드된다.

로컬 parquet 파일을 테이블로 적재한다.

con.sql("""
    CREATE TABLE IF NOT EXISTS yellow_tripdata AS
    SELECT *
    FROM './data/yellow_tripdata_2024-01.parquet'
""")
 
con.sql('select * from yellow_tripdata limit 10')

현재 테이블 목록과 특정 테이블 스키마 정보를 확인한다.

# 현재 스키마 확인
con.sql('select current_schema()').show()
 
# 특정 테이블 스키마 정보
con.sql("PRAGMA table_info('{table_name}')")

UI

종료 조건

  • shell로 작성 시 con.close()되면 창이 종료된다
  • Python으로 작성 시 파일 종료 시 창이 종료된다
duckdb -ui
con.sql('CALL start_ui();')

Reference