Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
手軽に始めるDuckDB
Search
iWonder118
January 25, 2025
58
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
手軽に始めるDuckDB
funabashi.devにて飛び入りLT
https://funabashidev.connpass.com/event/334065/
iWonder118
January 25, 2025
More Decks by iWonder118
See All by iWonder118
極小Reactで描画を理解しながら追う
iwonder118
0
78
マフィアを目指そう※超健全
iwonder118
0
200
Tamagawa.dev #3 OP&ED
iwonder118
0
260
経験談から伝える! AIによって既に変わってしまった転職事情
iwonder118
7
3.7k
多摩川.dev #2 OP&ED
iwonder118
0
64
「積極的_無職のすすめ」ー U39
iwonder118
0
280
多摩川.dev OP&ED
iwonder118
0
370
今更RSCについてのお話 Full RSC vs RSC as Data Next.jsとTanStack Start比較
iwonder118
0
44
React Tokyo フェス 2026 の裏側
iwonder118
1
640
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Accessibility Awareness
sabderemane
1
210
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
RailsConf 2023
tenderlove
30
1.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
680
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Designing for Performance
lara
611
70k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
Deep Space Network (abreviated)
tonyrice
0
310
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 調べる限り黒ラバーのラバーダックがドイツにしかない