본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
EPL과 유튜브 데이터로 배우는 DuckDB

데이터 분석에서의 DuckDB의 의미

by 아참형인간 2026. 6. 16.

보다 상세한 내용은 EPL과 유튜브로 배우는 DuckDB에 수록되어 있습니다.

 

LUVIT EPL과 유튜브 데이터로 배우는 DuckDB | 이기준 - 교보문고

LUVIT EPL과 유튜브 데이터로 배우는 DuckDB | 복잡한 데이터 분석 흐름을 더 단순하게 만드는 DuckDB 최근 주목받고 있는 DuckDB를 활용해 SQL 기반 데이터 분석과 실전 프로젝트를 학습할 수 있도록 구

product.kyobobook.co.kr

데이터 과학자의 도구 상자ToolBox

데이터 과학자들은 종종 외부 데이터베이스를 설정하고 사용하는 과정을 번거롭게 여기는 경우가 많습니다. 그들은 자신들의 다양한 분석 작업을 위해 데이터를 즉시 액세스하고 조작하기 쉬운 일반 텍스트나 바이너리 데이터 파일(: CSV 또는 Parquet)로 작업하는 것을 선호합니다.

이러한 데이터 과학자들에게 DuckDB는 중요한 도구로 활용이 가능합니다. 복잡한 설정, 설치가 필요 없고, 파이썬, R과 같이 데이터 과학자들에게 친숙한 도구와 원활하게 통합되어 친숙합니다. 또한, 파이썬, R에서 불가능했던 대용량 데이터에 대한 처리가 가능하기 때문에 데이터 과학자들이 파이썬과 R에서 불편하거나 불가능했던 작업을 가능하게 해주는 도구로써 매우 훌륭한 도구입니다.

DuckDB의 개발자 중 한 명인 Mark Raasveld에 따르면, 이것이 이 엔진을 구축하는 주요 설계 목표 중 하나였다고 합니다. 또한, DuckDB는 관계형 SQL 데이터베이스와 같이 대화형 쿼리로 작업할 수 있기 때문에, 데이터 과학자들의 데이터베이스에 대한 장벽을 허물었다는 점은 DuckDB가 데이터 과학 분야에 큰 역할을 한 것으로 여겨집니다.

개인 컴퓨팅 분석 모델

개인용 컴퓨터와 노트북의 성능이 점점 강력해지면서, DuckDB개인 컴퓨팅기반의 분석 모델을 현실화하는 데 기여하고 있습니다.

DuckDB의 핵심 개발 철학은 데이터 분석가가 자신의 로컬 PC에서 직접 사용할 수 있는 분석 전용 데이터베이스를 만드는 것이었습니다. 이러한 철학에 따라, 데이터 분석가는 데이터가 로컬에 저장되어 있든, 클라우드에 저장되어 있든 관계없이, 자신의 로컬 컴퓨터를 활용해 공유 데이터를 분석할 수 있습니다. 예를 들어, 클라우드에 호스팅된 데이터 파일이나 외부 데이터베이스 시스템에도 쉽게 연결할 수 있으며, 이 데이터를 DuckDB의 로컬 처리 능력으로 분석할 수 있습니다.

이러한 특성은 소규모 연구팀이나 협업 프로젝트에서도 매우 유용하게 작용합니다. 분석 작업의 일부는 클라우드에서, 나머지 일부는 로컬에서 처리하는 하이브리드 모델도 가능하기 때문입니다. 특히, DuckDB 개발팀이 운영하는 클라우드 기반 DuckDB 서비스인 MotherDuck은 이러한 로컬 컴퓨팅 성능과 클라우드 확장성을 결합한 대표적인 사례로, 데이터 분석 환경의 유연성과 효율성을 동시에 확보할 수 있는 새로운 방식으로 주목받고 있습니다.

데이터 엔지니어링으로 역할 확장

DuckDB의 파이썬 패키지는 DuckDB와 파이썬을 연결하여, 사용자가 DuckDB 데이터를 Pandas 데이터프레임과 같은 파이썬의 객체로 사용할 수 있도록 지원합니다.

이 기능은 파이썬보다 SQL에 더 익숙한 사용자도 데이터프레임에 SQL로 쉽게 접근할 수 있게 해주기 때문에, 기존에 SQL을 주로 사용하던 데이터 엔지니어들도 파이썬 환경에서 데이터프레임을 보다 친숙하게 활용할 수 있게 됩니다. 이를 통해 데이터프레임의 활용 범위가 분석 도구에서 데이터 엔지니어링 도구로까지 확장되는 효과를 가져옵니다.

또한 SQL을 활용하여 데이터 변환 파이프라인을 구축할 수 있기 때문에, 파이썬 기반의 데이터 처리 워크플로우 내에서 DuckDB을 효율적으로 적용할 수 있습니다. 예를 들어, DuckDB SQL 인터페이스를 활용하여 데이터프레임 위에 dbtdata build tool와 같은 변환 모델을 적용함으로써, 데이터 엔지니어링 워크플로우에서 DuckDB의 역할을 한층 더 확장할 수 있습니다.

HTAP

데이터베이스의 생태계는 수십년간 끊임없이 진화해 왔으며, 새로운 기술의 등장으로 점점 복잡해지고 있습니다. 과거에는 트랜잭션 처리(OLTP)와 분석(OLAP)을 위한 시스템을 분리하여 운영하였지만, 최근에는 두 기능을 동시에 처리할 수 있도로 지원하는 HTAPHybrid Transational Analytical Processing라는 새로운 접근 방식이 도입되고 있습니다.

HTAP OLTP OLAP의 강점을 하나의 시스템에 결합한 비교적 새로운 개념입니다. 이 방식은 시스템 성능에 영향을 주지 않으면서 트랜잭션 데이터에 대한 실시간 분석을 제공하는 것을 목표로 합니다. HTAP를 활용하면, 트랜잭션 데이터에 대한 분석 쿼리를 실시간으로 수행할 수 있기 때문에, 분석을 위해 별도의 시스템으로 데이터를 이동하거나, 일괄 처리(batch processing)가 끝날 때까지 기다릴 필요가 없습니다.

HTAP  개념 ( 출처: https://www.postgresql.fastware.com/blog/enabling-postgresql-applications-with-htap )

 

사실 DuckDB를 사용하다 보면, PostgreSQL과 닮은 부분이 상당히 많다는 점을 느끼게 됩니다. 실제로도 DuckDB의 구현 과정에서 PostgreSQL이 많이 참조되었으며, 흥미롭게도 최근에는 PostgreSQL에서 DuckDB 엔진을 사용할 수 있는 확장 기능인 pg_duckdb도 개발되었습니다. pg_duckdb를 사용하면, 별도의 분석 시스템으로 데이터를 옮기지 않아도 PostgreSQL 내부에서 직접 분석 쿼리를 빠르게 실행할 수 있습니다.

또한, pg_analytics라는 또 다른 확장 기능을 사용하면, DuckDB를 기본 쿼리 엔진으로 활용하여 S3와 같은 클라우드 저장소에 있는 데이터에 대해서도 직접 쿼리를 실행할 수 있습니다. 나아가, PostgreSQL 내에서 Iceberg Delta Lake와 같은 최신 오픈 테이블 포맷을 직접 열어 사용할 수 있는 기능도 제공됩니다.

이처럼 PostgreSQL과 같은 OLTP 데이터베이스에 DuckDB 엔진을 보완적으로 통합하여 사용함으로써, OLTP OLAP의 장점을 모두 활용할 수 있는 HTAP(Hybrid Transactional/Analytical Processing) 환경으로 확장하는 것이 가능해졌습니다.

브라우저 내에서 SQL 분석

브라우저 내 데이터 분석은 DuckDB WebAssembly 기능(DuckDB-WASM)을 통해 현실화되고 있습니다. 이 기능을 활용하면 데이터베이스를 별도로 설치하지 않아도, 웹 브라우저 상에서 SQL을 사용한 데이터 분석을 직접 실행할 수 있습니다.

WASM을 사용하여 데이터 분석을 클라이언트 측에서 수행하게 되면, 서버에 걸리는 부하를 줄일 수 있기 때문에, 공개 데이터를 제공하는 기관이나 조직에 비용적으로 매우 효율적인 솔루션이 됩니다. 예를 들어, Hugging Face는 최근 데이터 탐색기를 Chrome 확장 프로그램 형태로 제공하고 있으며, 사용자는 이를 통해 브라우저 내에서 SQL을 직접 실행하며 데이터를 탐색할 수 있습니다.

이 기능 역시 DuckDB의 엔진을 기반으로 구현된 것입니다. 이러한 기술적 혁신 덕분에, 공개 데이터셋을 그 어느 때보다 쉽고 빠르게, 그리고 설치 없이 브라우저에서 직접 분석할 수 있는 환경이 마련되었습니다.

Hugging Face의 WASM(출처: https://huggingface.co/docs/hub/datasets-viewer-sql-console)

댓글