Show GN: DuckDB 위에서 dplyr 스타일 파이프라인을 실험해봤습니다
(duckdb.org)DuckDB를 분석 작업에 쓰면서
SQL만으로도 충분히 많은 일을 할 수 있다고 느꼈습니다.
다만 개인적으로는,
SQL을 쓰다 보면 분석 과정이 길어질수록
CTE를 점점 많이 쓰게 되는 패턴이 반복됐습니다.
중간 상태를 이름 붙여 고정하지 않으면
제가 어떤 생각 순서로 이 쿼리를 만들었는지를
스스로도 놓치기 쉬웠기 때문입니다.
dplyr 문법이 떠오른 이유
R을 오래 써온 사용자라서인지,
filter → mutate → group_by → summarise처럼
테이블을 단계적으로 다루는 dplyr 문법이
계속 머릿속에 남아 있었습니다.
SQL로도 같은 작업은 가능하지만,
사고의 순서를 코드에 그대로 남기기에는
조금 불편하다고 느꼈습니다.
그래서 DuckDB 위에서 작은 실험을 해봤습니다
R 런타임을 다시 얹고 싶지는 않았고,
그렇다고 이 감각을 설명만으로 전달하기도 어려워서,
DuckDB extension 형태로 dplyr 스타일 파이프라인을
SQL로 변환하는 작은 실험을 만들어봤습니다.
현재는 다음 정도만 다룹니다.
-
select,filter,mutate -
arrange -
group_by,summarise - 기본적인 집계 함수들
조인이나 복잡한 재구조화(pivot 등)는 아직 다루지 않습니다.
완전한 dplyr 호환을 목표로 한 프로젝트도 아닙니다.
아직은 제 개인적인 불편함에서 출발한 실험이라,
비슷한 고민을 해보신 분들의 의견도 궁금합니다.