ディスカッション (11件)
今話題の分析向けインメモリデータベース「DuckDB」について、その内部で一体何が起きているのかを紐解く連載の第1回です。DuckDBがいかにして驚異的なパフォーマンスを実現しているのか、その仕組みを深掘りしていきます。
DuckDBがこれだけ普及したのは、とにかくめちゃくちゃ使いやすいからだよ。
まさにそこが、俺が最初に導入した大きな理由だな。それ以来ずっと使い続けているのは、驚くほど高性能で汎用性が高くて、しかも速いからだ。
もし使い方が難しかったら、あの時導入しなかったと思う。エルゴノミクス(使い勝手)が本当にすごいよ。今でも定期的に感動させられる。
DuckDBのおかげでかなり助かってるよ。大規模な問題で使ったことはないんだけどね。『select * from 'data.json'』って書くだけで動くのが最高に心地いい。これだけ強力なのに、小さい問題(俺が扱ってるようなやつ)でも大きい問題でも両方こなせるっていうのがすごいよね。普通はどっちか片方しか得意じゃないプロジェクトが多いから。
一緒に働いてるデータサイエンティストがこれを使ってるんだよね。何で使ってるのかよく知らないんだけど、頻繁に見かけるんだ。普段MySQLかPostgreSQLしか使わないからさ。DuckDBの強みって何?みんなPandasの代わりとして使ってるみたいだけど。
もし興味があるなら、DuckDBのコミュニティ拡張機能*を書いたり、既存のプロジェクトにコントリビュートすることを検討してみてよ。
DuckDBは、普段は互換性がないようなデータエコシステム(GIS、可観測性、分析、レイクハウス、オブジェクトストレージなど)を繋ぐデータ用のスーパー接着剤になりつつあるんだ。2026年に向けてチェックしておく価値はあるよ。
DuckDBは、ノートPCに収まるくらいの小規模なデータを高速分析するなら最高だよ。
最近仕事で、社内の全エンジニアのClaudeコードセッション(S3にアップロードしてるやつ)を分析するのに使ってるんだけど、開発体験のギャップを見つけるのにすごく役立ってる。改善のインパクトを裏付ける明確な指標も出せるしね。
あと、Claudeのスキル利用状況のメトリクスをとって、トランスクリプトを見ながらユースケースを深掘りするのにも重宝してる。
DuckDBを一度も触ったことがない他のエンジニアも、AIエージェントが俺たちのデータセットに対してクエリを書くのがいかに簡単かを見て驚いてたよ。
AppStoreのコンテキストみたいに動的リンクが使えない人にとっては、大きな難点があるね。DuckDBは選択肢として微妙だよ。拡張機能を静的にリンクするのがすごく難しいから。
ここがArrowの勝ち目だと思う。例えばArrow CPPは非常にポータブルなビルドが可能だし、Cインターフェースはバインディングを作るのにすごく使いやすい。
DuckDBは素晴らしいけど、ライブラリというよりはブラックボックスに近いんだよね。
追記:ロボットと会話した結果、DuckDBとArrowCPPのC APIは補完的な関係みたいだ。だからそれぞれの強みを活かしてアプリ内で共存させることは十分可能だよ。例えばArrow CPPには単純なSQLの仕組みがないからね。
仕事でDuckDBをガッツリ使ってるけど、これマジでゲームチェンジャーだよ。毎日テラバイト級のデータを振り分けて、結合して、更新して、フィルタリングしてるけど、DuckDBに並ぶものはないね。まだ使ったことがない人は、完全に損してるよ。
DuckDBはかなりイケてるよね。最近PHP用にPDOインターフェースを追加したよ。
https://github.com/iliaal/pdo_duckdb
まだちょっと荒削りだけど、良くなってきてる。
面白いプロジェクトだけど、Hacker Newsでの議論は変な感じがするね。数週間おきに話題に出てきて[1]、みんなして「速い」っていうコメントをスパムみたいに書き込むんだ。
DuckDBは『特定のワークロードに対しては』速い。でも大半の用途で使うと、SQLiteより少なくとも一桁は遅いよ。あと現時点では実行できるSQLにいくつかの制限もある(例えば、再帰クエリで即座に問題にぶつかった)。そのうち改善されるだろうけどね。
[1] Hacker Newsで「sqlite」と「duckdb」を検索すると、それぞれ4,310件と2,398件ヒットする。SQLiteはどこにでもあって25年も歴史があるのに、DuckDBは事実上2年前に登場したばかり。これを考えるとかなり偏ってるよ。
自分のローカルマシンで、2億レコードあるテーブルと関連するテーブル2つを扱ってる。一番複雑なクエリでも、DuckDBのブラウザプレイグラウンドUIにコードを貼り付けて実行するまで1分もかからないし、結果は必ず5秒以内で返ってくる。しがないプロダクトマネージャーからすると、まるでスーパーパワーだよ。