ビッグデータ時代でもログ収集は面倒な作業のまま…
2013年になってもバズり続けている"ビッグデータ"ですが、データ分析において最も重要となるプロセスは何かというと、やはり肝心のデータを集める作業ではないでしょうか。そしてデータからビジネスに役立つ情報を高い精度で得ようとするなら、やはり母集団となるデータの量は多いに越したことはありません。
中でもソーシャルネットワークやソーシャルゲーム、eコマースなどBtoCなWebサービスを提供している企業の場合、ユーザの振る舞いを記録した膨大なアクセスログは、ビジネスを展開していく上で何よりも大切な宝ものだといえます。サービスの品質を向上し、収益性を高め、競合と差別化を図っていくためには、ログから何を読み取るかが勝負の分かれ目になります。そしてログ解析の精度を高めるには、当然ながら大量のログが必要です。つまりログ収集という作業は本来、Webアプリケーションを使ったビジネスであれば最も手を抜いてはいけないプロセスのはずなのです。
ところがこの大事なはずのログ収集、実はデータ分析のライフサイクルにおいて最もおざなりにされがちな部分でもあります。その理由はずばり「面倒だから」に尽きるといえます。
ログはたいてい、あちこちのサーバに分散して存在しているので、分析するためには1カ所に集約して管理したり、別のシステムに転送する必要がありますが、その作業はかなり面倒です。また、ログの一括収集や一括管理を可能にするツールもそれほど多くありません。複数のログを連携させて別のデータベースに書き込むのも手間がかかります。またログがsyslogdで記録されている場合、構造化されていないテキストデータなので、アドホックな分析をするには、集めたログをいったん別のパーサに通さなくてはなりません。さらにログはどんどん書き込まれていくので、ファイルサイズがすぐに大きくなりますが、必要なログの一部だけを抜き出したり、差分だけを収集する方法も用意されていないことがほとんどです。
要するにログというものは非常に扱いにくい存在であり、ログを集めるという作業は、面倒で、時間がかかって、つまらなくて、地味なので、みんなテキトーにお茶を濁してきたというのが実情ではないでしょうか。本来、データ分析のための最も重要なプロセスのはずなのに、その面倒さからデータ分析のボトルネックと化してしまっている。「1日に数回、rsyncで同期を取る」「複数のログを連携させることはしないで、1つのログを単独で利用する」といった運用のままでは、いまの時代、精度の面でもスピードの面でも残念な分析結果しか得ることができずに終わってしまいそうです。