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
5分でわかるDuckDB
Search
chanyou0311
December 14, 2024
Technology
4.7k
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
5分でわかるDuckDB
「合同勉強会 in 大都会岡山 -2024 Winter-」の発表資料です。
https://gbdaitokai.connpass.com/event/330065/
chanyou0311
December 14, 2024
More Decks by chanyou0311
See All by chanyou0311
5分でわかるDuckDB Quack
chanyou0311
4
320
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.8k
LookerとADKで作る社内AIエージェント
chanyou0311
0
550
「リリース後」に向き合うAI駆動開発の実践
chanyou0311
0
100
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
10
4.4k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
2k
データの信頼性を支える仕組みと技術
chanyou0311
6
2.4k
Pulumi に入門してみた
chanyou0311
1
400
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
1.3k
Other Decks in Technology
See All in Technology
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
270
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
150
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
360
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
2.2k
AI時代における最適なQA組織の作り方
ymty
3
460
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
170
Baseline対応のDOMの型定義を作った
uhyo
3
720
Zoom2Youtube.Claude
kawaguti
PRO
3
460
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
190
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2.1k
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
220
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
220
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
640
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
420
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
Tell your own story through comics
letsgokoyo
1
990
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
Code Review Best Practice
trishagee
74
20k
The Spectacular Lies of Maps
axbom
PRO
1
850
Transcript
5分でわかるDuckDB 合同勉強会 in ⼤都会岡⼭ -2024 Winter- chanyou
Yu Nakamura - chanyou ‧ 広島在住でリモートワークしてます ‧📊 普段は事業会社でデータ基盤を作っています ‧🐍 Python
とか Google Cloud とかよく使っています ‧🍓 おうち Kubernetes クラスタ ‧📢 mutable.stream という Podcast を2年くらい?
DuckDB 使ったことあるよ 🙋
DuckDB 知らない! 聞いたことあるけどよくわからない 🙋
DuckDB とは?
‧OLAP(オンライン分析処理)特化のDB Engine ‧要はめっちゃ早い ‧SQLite のようなインプロセス型のデータベース ‧⾼いポータビリティが特徴 ‧MIT ライセンスで C++ 実装
DuckDB の特徴 ‧シングルバイナリでセットアップが容易 ‧充実したクライアントAPI ‧豊富な外部データソースの対応と拡張機能
シングルバイナリでセットアップが容易 https://duckdb.org/docs/installation/?version=stable&environment=cli&platform=linux&download_method=direct&architecture=arm64
シングルバイナリでセットアップが容易
充実したクライアントAPI 公式 CLI ODBC API C C++ Java Julia 公式
Python R Rust Swift WebAssembly (Wasm) Node.js コミュニティからも C# Dart Elixir Go Ruby
Pythonだと ‧Pandas, Polars などの DataFrame と相互変換が可能 ‧PySpark にも対応 https://duckdb.org/docs/installation/?version=stable&environment=cli&platform=linux&download_method=direct&architecture=arm64
豊富な外部データソースの読み書きに対応 ‧ SQLite, PostgreSQL, MySQL などの RDBMS ‧ CSV, JSON,
Parquet といったファイル これらに直接クエリできる。 https://duckdb.org/docs/data/parquet/overview.html
豊富な拡張機能‧コミュニティ拡張機能 ‧S3, Azure Blob Storage, GCS などのオブジェクトスト レージ上のファイルの読み書き https://duckdb.org/docs/extensions/httpfs/s3api.html
豊富な拡張機能‧コミュニティ拡張機能 ‧BigQuery, Google Spreadsheet の読み書き ‧地理空間関数、H3関数
DuckDB を取り巻くツール‧サービス ‧dbt-duckdb ‧dbt の DuckDB アダプタ ‧MotherDuck ‧フルマネージド DuckDB
‧BemiDB ‧ PostgreSQL のデータを同期して S3 に書き出す ‧ 内部で DuckDB のクエリエンジンで⾼速にクエリできる
DuckDB のユースケース
オブジェクトストレージへのクエリエンジン ‧主要なオブジェクトストレージ‧ファイル形式に対応して いて、たいていのデータが読み込める
オブジェクトストレージへのクエリエンジン ‧今までも Pandas などで読み込めたが、シングルバイナリ でより⼿軽にデータアクセスできる ‧Athena や BigQuery Omni のようにロックインされない
分散したデータを横断した前処理‧分析 ‧S3, GCSを横断したマルチクラウドな分析も可能 ‧マルチプロダクト環境でスタックが異なっても、 ストレージへの認証さえ通せばほとんど同じクエリで動く ‧組織間のデータ連携でもオブジェクトストレージが使われがち ‧そういった場⾯でも恩恵を受ける
スクリプト内での利⽤(データ品質保証の事例)
スクリプト内での利⽤(データ品質保証の事例) ‧複雑なデータテストを⾏いたい場合やデータそのものを販売し ているケースにおいて、継続的なテストが軽量に実施できる ‧インメモリモードで揮発しても問題ない
セルフホスト型の BI ツールへの統合 ‧アプリケーションに SQLite を組み込むアーキテクチャ ‧同じように BI ツールに DuckDB
を組み込むことで、⾼速化でき そう https://superset.apache.org/
DuckDB の苦⼿なシーン
きめ細かな権限管理への対応が難しい ‧データをオブジェクトストレージに配置して、DuckDB に設定す るシークレットで権限管理する? ‧それでも⾏レベル、列レベルのセキュリティは現時点では実施 できない
SSoT がやりにくい ‧複数のデバイスで DuckDB ファイルを同期できない ‧ちゃんと運⽤ルールを敷かないと、どの DuckDB ファイルが最 新なのか分からなくなる ‧オブジェクトストレージを
SSoT として保持して、DuckDB はク エリエンジンとして割り切って使うのがよさそう
頻繁に更新されるデータの同期には⼯夫が必要 ‧RDB に直接接続するのはあまりやりたくない ‧RDB に SELECT * FROM users クエリ打った結果を
DuckDB テー ブルとして保存してから重い処理をさせる、とかはできる ‧定期的に RDB から fetch するのも体験が悪い ‧デイリーで S3 書き出されるファイルや国勢調査の⼩地域ごとの 結果など、更新頻度の低いデータとの相性がよさそう
ところで なんでアヒル?
Why 🦆DB? DuckDB の FAQ によると… ‧⾶べて、歩けて、泳げる、どこへでも⾏ける! ‧そして雑⾷性で何でも⾷べて、環境変化への耐性が⾼い! そんなアヒルは多⽤途で⾼耐久性を求められる DBMS
のマスコッ トとして完璧 💯
まとめ ‧DuckDB を使うとデータの置き場所や形式を問わず、あらゆる データをサクッとクエリできる ‧⼤規模組織でデータ分析⽤途で使おうとするとガバナンス周り が⼤変だけど、前処理に限定するなどして活⽤できそう ‧すぐ使い始められるので、ぜひ試して⼀緒に知⾒交換しましょう!
おわり 🦆