HN🔥 427
💬 128

爆速分析DB「DuckDB」の内部構造を徹底解剖:第1回

marklit
4日前

ディスカッション (11件)

0
marklitOP🔥 427
4日前

今話題の分析向けインメモリデータベース「DuckDB」について、その内部で一体何が起きているのかを紐解く連載の第1回です。DuckDBがいかにして驚異的なパフォーマンスを実現しているのか、その仕組みを深掘りしていきます。

1
steve_adams_86
1日前

DuckDBがこれだけ普及したのは、とにかくめちゃくちゃ使いやすいからだよ。

まさにそこが、俺が最初に導入した大きな理由だな。それ以来ずっと使い続けているのは、驚くほど高性能で汎用性が高くて、しかも速いからだ。

もし使い方が難しかったら、あの時導入しなかったと思う。エルゴノミクス(使い勝手)が本当にすごいよ。今でも定期的に感動させられる。

2
anitil
1日前

DuckDBのおかげでかなり助かってるよ。大規模な問題で使ったことはないんだけどね。『select * from 'data.json'』って書くだけで動くのが最高に心地いい。これだけ強力なのに、小さい問題(俺が扱ってるようなやつ)でも大きい問題でも両方こなせるっていうのがすごいよね。普通はどっちか片方しか得意じゃないプロジェクトが多いから。

3
jdw64
1日前

一緒に働いてるデータサイエンティストがこれを使ってるんだよね。何で使ってるのかよく知らないんだけど、頻繁に見かけるんだ。普段MySQLかPostgreSQLしか使わないからさ。DuckDBの強みって何?みんなPandasの代わりとして使ってるみたいだけど。

4
smithclay
1日前

もし興味があるなら、DuckDBのコミュニティ拡張機能*を書いたり、既存のプロジェクトにコントリビュートすることを検討してみてよ。

DuckDBは、普段は互換性がないようなデータエコシステム(GIS、可観測性、分析、レイクハウス、オブジェクトストレージなど)を繋ぐデータ用のスーパー接着剤になりつつあるんだ。2026年に向けてチェックしておく価値はあるよ。

5
0xferruccio
1日前

DuckDBは、ノートPCに収まるくらいの小規模なデータを高速分析するなら最高だよ。

最近仕事で、社内の全エンジニアのClaudeコードセッション(S3にアップロードしてるやつ)を分析するのに使ってるんだけど、開発体験のギャップを見つけるのにすごく役立ってる。改善のインパクトを裏付ける明確な指標も出せるしね。

あと、Claudeのスキル利用状況のメトリクスをとって、トランスクリプトを見ながらユースケースを深掘りするのにも重宝してる。

DuckDBを一度も触ったことがない他のエンジニアも、AIエージェントが俺たちのデータセットに対してクエリを書くのがいかに簡単かを見て驚いてたよ。

6
willtemperley
1日前

AppStoreのコンテキストみたいに動的リンクが使えない人にとっては、大きな難点があるね。DuckDBは選択肢として微妙だよ。拡張機能を静的にリンクするのがすごく難しいから。

ここがArrowの勝ち目だと思う。例えばArrow CPPは非常にポータブルなビルドが可能だし、Cインターフェースはバインディングを作るのにすごく使いやすい。

DuckDBは素晴らしいけど、ライブラリというよりはブラックボックスに近いんだよね。

追記:ロボットと会話した結果、DuckDBとArrowCPPのC APIは補完的な関係みたいだ。だからそれぞれの強みを活かしてアプリ内で共存させることは十分可能だよ。例えばArrow CPPには単純なSQLの仕組みがないからね。

7
axegon_
1日前

仕事でDuckDBをガッツリ使ってるけど、これマジでゲームチェンジャーだよ。毎日テラバイト級のデータを振り分けて、結合して、更新して、フィルタリングしてるけど、DuckDBに並ぶものはないね。まだ使ったことがない人は、完全に損してるよ。

8
ilia-a
1日前

DuckDBはかなりイケてるよね。最近PHP用にPDOインターフェースを追加したよ。
https://github.com/iliaal/pdo_duckdb

まだちょっと荒削りだけど、良くなってきてる。

9
romaniv
1日前

面白いプロジェクトだけど、Hacker Newsでの議論は変な感じがするね。数週間おきに話題に出てきて[1]、みんなして「速い」っていうコメントをスパムみたいに書き込むんだ。

DuckDBは『特定のワークロードに対しては』速い。でも大半の用途で使うと、SQLiteより少なくとも一桁は遅いよ。あと現時点では実行できるSQLにいくつかの制限もある(例えば、再帰クエリで即座に問題にぶつかった)。そのうち改善されるだろうけどね。

[1] Hacker Newsで「sqlite」と「duckdb」を検索すると、それぞれ4,310件と2,398件ヒットする。SQLiteはどこにでもあって25年も歴史があるのに、DuckDBは事実上2年前に登場したばかり。これを考えるとかなり偏ってるよ。

10
globalise83
約19時間前

自分のローカルマシンで、2億レコードあるテーブルと関連するテーブル2つを扱ってる。一番複雑なクエリでも、DuckDBのブラウザプレイグラウンドUIにコードを貼り付けて実行するまで1分もかからないし、結果は必ず5秒以内で返ってくる。しがないプロダクトマネージャーからすると、まるでスーパーパワーだよ。