質問: ログ分析を行うのにApache Sparkを検討しています。しかし、本当にSparkを使うことが他の手段よりも効果的なのかの判断がなかなか難しく悩んでいます。 このサイトでは、1ノードに収まるディスクで対応できるならHadoopなどを使う必要はないという主張がされています。 現在ではSparkなどの高速なHadoop技術も成長しているので、この記事が書かれたころとは状況は変わっていると思います。 それでもこのサイトが主張するように1つのノードに収まるデータ量であれば集計はMySQLやC/C++などを選択すべきでしょうか。 明確な答えでなくてもかまわないので、自分なりの指標などを持っている方がいらっしゃいましたらお教えいただきたく思います。 お願い致します。 ### 追記 質問のデータ量という話からはちょっとズレますが、MySQLで1億レコードのベンチを取ってみました。 1億レコードともなると簡単な処理でも1クエリ1分以上はかかりそうです。 マシンの性能アップやチューニングで改善すると思いますが、10億レコードくらいになってくると さすがにMySQLなどで集計するのは辛くなるのではないでしょうか。 ちなみに1億レコードの元データはSQLのプレーンテキストで約10GBほどなので、データ量の話しに直すと10億レコードは100GBほどということになります。 CPUの使用率があがってないので、C/C++などでマルチスレッドで処理した場合はもっと性能が出そうです。
回答: 想定している処理の並列度および要件(応答時間),データの性質などに深く依存します.よって,「データ量が1台に収まる」という条件のみでは決定が難しいです.性能要件,データの流量および増加量,用意できる計算機などから逆算すると良いでしょう. 以下のスライドの4ページ目から13ページ目が参考になるかと思いますので,参照してみてください.