Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyistのみんなに 私の推しのDuckDBを 紹介させてください
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kei-q
September 29, 2024
Programming
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyistのみんなに 私の推しのDuckDBを 紹介させてください
kei-q
September 29, 2024
More Decks by kei-q
See All by kei-q
春の鎌倉 Tech&Product Meet発表資料
keqh
0
45
Repro_Tech_Meetup__1_Docker.pdf
keqh
4
730
KeyRemac4MacBook.rb
keqh
0
150
PSD.rbでiPhoneアプリ開発のギョームをカイゼンしたい(仮)
keqh
0
200
すごいErlang楽しく学んだ!
keqh
0
230
Other Decks in Programming
See All in Programming
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.5k
Performance Engineering for Everyone
elenatanasoiu
0
270
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.8k
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
850
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
440
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
190
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.5k
symfony/aiとlaravel/boost
77web
0
130
1B+ /day規模のログを管理する技術
broadleaf
0
140
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
370
共通化で考えるべきは、実装より公開する型だった
codeegg
0
240
Featured
See All Featured
Between Models and Reality
mayunak
4
370
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
720
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
The Mindset for Success: Future Career Progression
greggifford
PRO
0
420
A Modern Web Designer's Workflow
chriscoyier
698
190k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
330
Google's AI Overviews - The New Search
badams
0
1.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Transcript
Rubyistのみんなに 私の推しのDuckDBを 紹介させてください 2024-09-29 TokyuRuby会議15 @kei_q
DuckDBとは 2
DuckDBとは https://duckdb.org/ のトップページより引用 3
4
https://mytherin.github.io/papers/2019-duckdbdemo.pdf Figure 1 5
6
組み込みOLAPのRDBMSの用途は - インタラクティブなデータ分析 - 「エッジ」コンピューティング これらのニーズを満たすための組み込み+OLAP領域が空白 これを埋めるのが 7
DuckDBは 早くて: - 実行ファイル一個で動作、他システムへの組み込みも容易 - 分析のユースケースに合った便利な機能や拡張余地を提供 速い: - 分析むけqueryの爆速処理 -
https://duckdblabs.github.io/db-benchmark/ 8
データ分析って…… 9
データ分析ってBig Dataを扱うのでは? BigQueryとか Snowflakeとか Redshiftとか 他にもいろいろ 10
だいぶ強いタイトルだが BigQueryにおける話ということに留意しておく必要あり https://motherduck.com/blog/big-data-is-dead/ 2023/02/07 11
https://www.fivetran.com/blog/how-do-people-use-snowflake-and-redshift 2024/09/17 12
https://www.fivetran.com/blog/how-do-people-use-snowflake-and-redshiftより引用 > Of queries that scan at least 1 MB,
the median query scans about 100 MB. The 99.9th percentile query scans about 300 GB. 13
世の中は思っているほど • そもそもBigなDataを持ってないし ◦ 分析対象がSalesforceなどが主体だとデータは小さいけど十分価値があるとか • 持っていたとしてもほとんどの場合全体の一部しか一度にスキャンしない ◦ 特定の期間のデータをみる ◦
特定の顧客のデータをみる ◦ 特定の列のデータをみる ◦ 事前に集計済みのデータをみる その大多数のクエリをシンプル・高速・低コストで処理できるとしたら??? ……もちろんここが速いだけではデータの理解や意思決定が速くなるわけではないが、大事な要素ではある 14
DuckDBの使用例 15
とあるVlogのデータを処理する例 動画のメタデータ1100件、圧縮前で合計530MBのjson処理 16
今日は機能の詳細は話さないので…… https://speakerdeck.com/ktz/duckdbza-shao-jie-1-dot-1dui-ying-ban-at-duckdbzuo-tan-hui 17
でも…… 18
正直、DuckDBの良さを伝えるのは難しい https://www.thoughtworks.com/insights/podcasts/technology-podcasts/exploring-duckdb からgoogle翻訳して引用 19
でもそれ〇〇で良くない? - でもそれPandasで良くない? - でもそれBigQueryで良くない? - でもそれGoogle Scheetで良くない? - でもそれjqで良くない?
- でもでもでもでもでもでもでも 20
でもそれ〇〇で良くない? - でもそれPandasで良くない? - でもそれBigQueryで良くない? - でもそれGoogle Scheetで良くない? - でもそれjqで良くない?
- でもでもでもでもでもでもでも → YESでもありNOでもある → 置き換えだけではなく、共存もあるし、そのままの方が良いこともある 21
DuckDBの使い道 から考えてみる 22
(再掲) 組み込みOLAPのRDBMSの用途は - インタラクティブなデータ分析 - 「エッジ」コンピューティング これらのニーズを満たす領域が空白 これを埋めるのが 23
使い道の一部 - small data(~1TB) をシンプル・高速に分析処理 - 最初のVlog処理の例 - GIS -
ツールへの組み込み・backendとしての利用 - dataframe library、vscode extension、browser extension - Operational BI - rill, evidence, jupySQL - データ処理のCI、データ検証、前処理 - dbtのdata_testsなど - 他ツールとの連携・共存 - pg_duckdbでOLTP+OLAP - エッジでの処理 - クライアントサイドでの分析処理 - クライアントサイドでの前処理してからのデータ転送 24
利用例: DuckDB単体での利用 - DuckDBでlocalでの分析 - - CLIツールとしての利用 25
利用例: ツールの組み込み・backendとしての利用 - ibis - vscode extension - evidence 26
Operational BI Rill Operational BI vs. Traditional BI 27
データの検証 https://github.com/borjavb/dbt-iceberg-poc 28
クライアントサイドでの分析処理 https://zenn.dev/voluntas/scraps/e5d7c900726ad7 https://voluntas.github.io/duckdb-wasm-parquet/ 29
私がDuckDBを推す きっかけ 30
ある日のBigQueryでの各種作業 Bigqueryのデータパイプライン構築における各種処理 データソースの把握・探索、生成したデータの検証、中間データの品質管理 31
BigQueryでの各種作業での課題感 困ったポイント:BigQueryでのqueryの実行速度 検証を繰り返すには遅いと感じる状況 扱っている多くのデータがGBレベルですらなかった 32
推しになったきっかけ 各種ステージのデータの探索がキビキビできる → データの理解がどんどん深まってどんどん良くなる → 楽し 33
DuckDBに少しでも興 味を持ったあなたへ 34
とりあえず試してみたい https://duckdb.org/docs/installation/ https://shell.duckdb.org/ 35
機能面に興味がある方 https://speakerdeck.com/ktz/duckdbza-shao-jie-1-dot-1dui-ying-ban-at-duckdbzuo-tan-hui 36
OLAPでDuckDBが重要な理由がピンとこない人は BIG DATA IS DEAD Redshift Files: the Hunt for
Big Data How do people use Snowflake and Redshift? 37
体系的に学びたい人は DuckDB IN ACTION (August 2024) Getting Started with DuckDB
(June 2024) DuckDB: up & running (January 2025) 全てlearning.oreillyで読める DuckDB IN ACTIONはmotherduckが無料で公開中 38
DuckDB関連のイベント - Small Data SF - https://www.smalldatasf.com/2024 - DuckCon -
https://duckdb.org/2024/08/15/duckcon5.html 39
DuckDB関連のyoutube channel https://www.youtube.com/@duckdb https://www.youtube.com/@motherduckdb 40
41