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
手軽に始めるDuckDB
Search
iWonder118
January 25, 2025
0
30
手軽に始めるDuckDB
funabashi.devにて飛び入りLT
https://funabashidev.connpass.com/event/334065/
iWonder118
January 25, 2025
Tweet
Share
More Decks by iWonder118
See All by iWonder118
OODAループを回すVibe_Coding.pdf
iwonder118
0
10
Reactで見る!純粋関数で深ぼる副作用
iwonder118
0
440
花開くWebAssembly(Wasm)の可能性 in 2025/06/21 まさるの勉強会
iwonder118
0
6
SSG___CSRで乗り切るiframe内ルーティング_AIコーディング拡張版_in_Funabashi.dev.pdf
iwonder118
0
34
SSG + CSRで乗り切るiframe内ルーティング in React Tokyo LT 2025_05_17
iwonder118
0
4
React ToDoアプリをClineで作りながら考える フロントエンドエンジニアは AIによってなくなるのか?
iwonder118
1
1.1k
開発においての気配り
iwonder118
1
17
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Building Adaptive Systems
keathley
43
2.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Designing Experiences People Love
moore
142
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Transcript
⼿軽に始めるDuckDB in Funabashi.dev 2025/1/25
自己紹介 社内システムを改修したり、インフラを作ったり、APIを生やしたり...etc 趣味:トンチキ技術グッズを作ったり 河村 直樹(@iwonder118) かわむら なおき
グッズ①:Rustyなカニペンホルダー
グッズ②:Pug(Data dogの置物) ※余談:名前は「STRIKE JADE」Pug記法で JADE
DuckDBは組み込み可能で、サーバー不要な簡単導⼊のデータベース サーバー不要の利便性 DuckDBは独⽴したサーバープロセスを必 要とせず、単⼀のライブラリを⽤いること で素早く導⼊できます。シンプルな運⽤が 可能。 組み込み可能な設計 SQLiteのように、DuckDBはアプリケー ションに組み込み可能な設計です。サー バーの管理を不要にし、既存のシステムに
直接統合できる。 インプロセスデータベース
データを列単位で保持することで、 分析と集計の速度を⾶躍的に向上。 ⾼速な集計性能 列指向ストレージにより、特定の列の集計 やフィルタリングを⾼速に⾏うことができ るため、OLAPクエリのパフォーマンスが 劇的に改善。 列単位でのデータ保持 データを列単位で保存することで、特定の 列のデータだけを効率よく読み込むことが
できるため、分析と集計の処理速度が⼤幅 に向上。 列指向ストレージ
DuckDBのベクトル化エンジンとマルチスレッド実⾏が、 ⾼速で効率的なデータ処理を実現します。 ベクトル化エンジン DuckDBはベクトル化エンジンに より、データを効率的に処理しま す。ベクトル単位で連続したデー タを処理するため、CPUのキャッ シュ効率が向上し、クエリの実⾏ 速度が⼤幅に向上。 01
マルチスレッド並列実⾏ マルチスレッド設計により、 DuckDBは複数の処理を同時に実 ⾏できます。これは、データ量が 多く複雑なクエリを短時間で完了 させるのに⾮常に有効で、全体の 処理速度を⾼める。 02 ⾼いパフォーマンス
安全なデータ操作 トランザクション内での操作が完 全に実⾏されるか、まったく⾏わ れないかを保証します。これによ りデータの不整合を防ぎ、システ ムの整合性を確保するためアプリ ケーションの信頼性が増加。 柔軟な操作性 DuckDBはデータの更新や挿⼊が必 要な場⾯にも効率的に対応可能で
す。様々なスクリプトからの操作 に柔軟に対応でき、⽇常的なデー タ処理が容易。 ACID特性の重要性 ACID特性により、トランザクショ ンの⼀貫性が保証され、システム の信頼性が向上します。期待され たデータの正確性と完全性を保つ ことで、ビジネス状況における正 確なデータ判断を促進。 DuckDBはACID特性を備え、データの整合性を保ちながら 信頼性の⾼い処理を提供。 ACIDトランザクションサポート
DuckDBは多⾔語‧多ツール対応で、既存の分析基盤に容易に統合が可能。 分析基盤との連携 pandasやSparkなど、⼈気の分析ツールと も連携しやすく、SQLベースでのクエリ実 ⾏をスムーズに⾏います。業務の効率を⾼ める。 幅広い⾔語サポート Python、Rだけでなく、C++、Java、 Node.jsなど多種多様な⾔語に対応してい ます。これにより、既存の開発環境と容易
に統合。 複数⾔語‧ツールとの統合
DuckDBはライブラリ形式で簡単に導⼊でき、外部依存が少ない軽量な設計。 外部依存が少ない設計 DuckDBは外部ライブラリへの依存性が低 く、シンプルな環境構築で利⽤可能です。 ユーザーは⼿軽にシステムをセットアッ プ。 ライブラリ形式の利点 DuckDBはライブラリ形式で提供されてお り、アプリケーションに直接組み込むこと ができます。これにより、導⼊⼯程が簡素
化。 シンプルな導⼊
DuckDBはオープンソースで活発に開発が進⾏し、 迅速な改善と機能の追加が⾏われている。 開発の活発さ DuckDBはGitHubで開発が進⾏中 で、多くの開発者が参加し、⽇々 コードや機能の改善が⾏われてい ます。このことにより最新技術が 取り⼊れられ、⾼品質なソフト ウェアが提供。 01
頻繁なアップデート 新機能や最適化が頻繁に更新さ れ、ユーザーは常に最新のパ フォーマンスと機能を利⽤できま す。この頻度の⾼いアップデート はユーザーの多様なニーズに迅速 に応えることに貢献。 02 オープンソースプロジェクト
ローカルでの⼤きなCSV加⼯ これまで ⾃由にプログラミングができる。 ⼀⽅でpandasとしての操作で直感的かと ⾔われると疑問 No.01 PythonのpandasでCSVを加⼯ テーブルっぽい形でみやすい。 ⼀⽅で1万⾏ぐらいで応答性が怪しくなる No.02
スプシで加⼯ ⾃分が使っている⽅法
select * from "/Users/iwonder/Downloads/140007_public_facility_library.csv"; 神奈川県公⽴図書館等データ⼀覧https://catalog.opendata.pref.kanagawa.jp/dataset/7762fb99daa687050cd86e85403dc81e 型定義⼀切不要(⾃動でやってくれる)でCSVをSQL操作ができる
select * from '/Users/iwonder/Downloads/140007_public_facility_library.csv' as t1 where t1."多⽬的トイレ(1=有、0=無)" = 1;
神奈川県公⽴図書館等データ⼀覧https://catalog.opendata.pref.kanagawa.jp/dataset/7762fb99daa687050cd86e85403dc81e 型定義⼀切不要(⾃動でやってくれる)でCSVをSQL操作ができる
DuckDB-wasmをフロントエンドで使ってみたい とはいえ、データを引き抜かれる可能性があるのでどんなデータを使うか悩み中 サーバサイドに負荷をかけずにできる フロントでSQL分析のできるUIを作ってみたい やってみたいこと1
(おそらく)DuckDBのアイコンは上からアヒルを⾒たもの DuckDBのラバーダックを作る やってみたいこと2 調べる限り黒ラバーのラバーダックがドイツにしかない