Slide 1

Slide 1 text

DuckDBを使ってみたら 分析プロジェクトが動き出した ふくすけ (@tonegawa07) 2025/04/25 | めぐろLT 1

Slide 2

Slide 2 text

自己紹介 ふくすけ (@tonegawa07) スタークス株式会社 仕事: Engineer 主戦場はバックエンド Ruby on Rails, TypeScript(Node.js) 趣味: サッカー観戦 (Jサポ) 2025/04/25 | めぐろLT 2

Slide 3

Slide 3 text

自社プロダクトの成果指標を計測したい 指標が決まっているわけではなく、まず仮説を出す必要がある 仮説は出たが、データソースは複数 データレイクやDWHに一元化されておらず、気軽に分析できない 2025/04/25 | めぐろLT 3

Slide 4

Slide 4 text

とりあえず検証結果を出したい 仮説段階でETLパイプラインを作り込むわけにもいかず、 とりあえずRawデータをJSONやCSVでストレージに置いて手を動かしてみることに 2025/04/25 | めぐろLT 4

Slide 5

Slide 5 text

分析どうしよう Python (pandas) データフレームを扱う 一通り触ったことはある 忘れた R (dplyr) データフレームを扱う 学生時代めっちゃ使ってた 忘れた 2025/04/25 | めぐろLT 5

Slide 6

Slide 6 text

SQLで考えたほうが楽かも Python (pandas) で始めてみたものの、 、 、 出したい数字が出せているのか? LLMの出力が合っているのか? ちょっとデータ出力想定と違うけどどこがおかしいんだ? SQLで出してくれれば判断できるんだけどな〜 2025/04/25 | めぐろLT 6

Slide 7

Slide 7 text

DuckDB https://duckdb.org OLAP(オンライン分散処理)分析に特化した組み込み型DBMS SQLiteのOLAP版のイメージ CSV、JSON、Parquet、Excelなど、様々なファイル形式に対応 2025/04/25 | めぐろLT 7

Slide 8

Slide 8 text

DuckDBならSQLで書けた LLMに出力してもらったSQLを修正しつつ分析結果確認 SQLで思考できるのが本職バックエンドにはかなりありがたい import duckdb duckdb.sql(''' SELECT * FROM users WHERE 1=1; ''') 2025/04/25 | めぐろLT 8

Slide 9

Slide 9 text

DuckDBでPoC用軽量ETLができた 2025/04/25 | めぐろLT 9

Slide 10

Slide 10 text

検証スピードUP!! 分析プロジェクトが動き出した 2025/04/25 | めぐろLT 10

Slide 11

Slide 11 text

社内LT会でも発表してみた pandasとの速度比較 行数、列数ともに大きくなるほどDuckDBが速い 2025/04/25 | めぐろLT 11

Slide 12

Slide 12 text

まとめ DuckDBを採用することで検証スピードが上がった やっぱり速かった 2025/04/25 | めぐろLT 12

Slide 13

Slide 13 text

ご清聴ありがとうございました 2025/04/25 | めぐろLT 13