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,mutatearrangegroup_by,summarise- 基本的な集計関数
結合や複雑な再構造化(pivotなど)はまだ扱っていません。
完全なdplyr互換を目指したプロジェクトでもありません。
まだ自分の個人的な不便さから始まった実験なので、
似たような悩みを持ったことがある方の意見も気になっています。
まだコメントはありません。