概要
- 2012年製MacBook ProでDuckDBの性能を検証し、分散アーキテクチャの必要性を再考する提案。
- 古いハードウェアでも現代的なSQL分析が十分に実行可能であることを示す確認。
- 2023年モデルとの比較で約20倍の速度向上を記録するも、絶対的な差はユーザー体験に大きな影響を与えない指摘。
- DuckDBの移植性と依存性の少なさが、古いOS上での動作を容易にする利点を強調。
- 分散処理への過度な投資が本当に必要だったのか、歴史的観点から再評価することを推奨。
2012年製MacBook ProでDuckDBをベンチマーク:分散アーキテクチャの10年は無駄だったのか?
データ分析基盤の進化に関する背景
- データ量の成長よりも ハードウェア性能の進化 が速い現状を指摘すること
- ほとんどの有用なデータセットは 単一ノードで処理可能 になる「データ特異点」の到来を予測する提案
- Amazon RedshiftやSnowflakeの実測値では、 中央値100MB、99.9パーセンタイルでも300GB未満 のデータ読み込みである確認
- 2012年当時の MacBook Pro の性能に着目し、データ分析革命が既に可能だったのではないかという疑問を提示すること
2012年製Retina MacBook Proの特徴
- 初の内蔵SSD搭載 モデルであり、4コア2.6GHz Core i7 CPUを装備する確認
- 16GB RAMへのアップグレードが可能で、当時としては高性能ノートPCであった説明
- 現在もDuckDB Labsオフィスで現役稼働していることを紹介すること
ソフトウェア環境とDuckDBの移植性
- OSを OS X 10.8.5 “Mountain Lion” にダウングレードし、当時の環境を再現すること
- DuckDBは 依存性が少なく高い移植性 を持つため、最小限の変更で古いOS上で動作可能である確認
- C++11対応のコンパイラ不足等、当時のビルド環境の制約も考慮すること
TPC-Hベンチマークによる性能測定
- TPC-Hベンチマーク(スケールファクタ1000) を用い、lineitemとordersテーブルでそれぞれ60億・15億行を処理すること
- DuckDBデータベースサイズは約265GBで、16GB RAMでは キャッシュによる高速化が限定的 となる説明
- 22クエリを5回ずつ実行し、中央値を測定することでノイズを除去する手法を採用すること
- すべてのクエリが完了し、1分~30分程度の待ち時間で現実的な分析が可能である実証
2023年製MacBook Pro(M3 Max)との比較
- GeekBench 5スコアで CPU性能約7倍(全コア)、シングルコアでも約3倍 の差を示すこと
- RAM・SSD速度も大幅に向上しているが、 ディスプレイのサイズ・解像度はほぼ同等 である確認
- 各クエリの実行時間は7~53倍高速化、 幾何平均で約20倍の改善 を記録すること
再現性と公開リソース
- GitHubでバイナリ・スクリプト・クエリ・結果を公開 し、再現性を担保すること
- TPC-H SF1000のデータベースファイルもダウンロード可能である案内
考察と歴史的再評価
- 2012年製ノートPCでも 6億行規模の分析クエリが現実的な時間で完了 することを確認
- 新旧マシンの差は 定量的なものであり、ユーザー体験としては許容範囲 である主張
- DuckDBの アウトオブコア処理機能 により、メモリ不足でもディスク利用で大規模データ分析が可能である説明
- 2012年時点で既に 単一ノードSQLエンジンによる分析基盤構築が可能だった のではないかという歴史的仮説を提示すること
- ベクトル化クエリ処理技術も2005年には登場しており、分散システムへの過度な投資が本当に必要だったのか再考する提案
結論
- 2012年の高性能ノートPCと現代的なSQLエンジン(DuckDB)があれば、 分散アーキテクチャに頼らず大規模分析が可能 であった提案
- この10年間で失われた可能性や、 今後のデータ分析基盤の設計方針 を再検討すること