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
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
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.8k
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
9.1k
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
120
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
490
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
430
symfony/aiとlaravel/boost
77web
0
130
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
230
継続モナドとリアクティブプログラミング
yukikurage
3
600
琵琶湖の水は止められても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
380
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
2
1.4k
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.9k
Technical Leadership for Architectural Decision Making
baasie
3
440
Embracing the Ebb and Flow
colly
88
5.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
GraphQLとの向き合い方2022年版
quramy
50
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
KATA
mclloyd
PRO
35
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
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