ログ解析における統計値の妥当性

ログ解析における統計値の妥当性をどうやって担保するのかは難しい問題だと思っていてぶっちゃけ最終的にはオレを信じろ、でも間違ってたらゴメンの世界な気がする。

社内で閉じていて外に出ない統計値ならまあいいんだけど、世の中そんな統計値ばかりではない。

例えばWebサービスを展開していてそこに広告を出稿してもらって売り上げをたてたいとする。広告を出す方としてはそのサイトにどれぐらいPV/UUがあるか知りたいと思うのは当然ですよね。

広告を出したら出したでインプレッション数が知りたいとかあるかもしれない。

このような統計値はログを集めて集計することによって求めるわけなんだけど、数値が正しいかどうかをどうチェックするかというのは難しい問題ですよね。

本来ならいろんなバリエーションのテストデータを作ってテストするんでしょうけど、テストデータ作るの大変だし、このビッグデータ時代?にはどんなデータが来るかわからず、結局本番データでさっさと開発したほうが早いし、確実でしょ、みたいな。Hadoopでログ解析する場合は本番データ、本番環境が開発環境みたいなところありますよね。

統計値の妥当性をチェックするQAというのも聞いた事が無いし、あったとしてもどうやってQAするんだろ。まあ有識者にレビューしてもらうぐらいはするかもだが、例えば2人が同じ仕様のプログラムを書いて相互チェックするとかまではやらないんじゃないかな。

いったんリリースしてその後に統計値の計算ロジックにバグがあることに気づいたとして、過去データを計算し直すかっていうとしないケースが多いんじゃないかな。

鉄道とか銀行の料金計算とかならもっと厳密にQAするんだろうけど、PV/UUのチェックにそこまでリソース避けないというのが現実だろう。

それにですね、、、計算ロジックが合っていたとしてもですね、ログ収集プロセスがちゃんとしてるかってのはわからんですよね。ログのロストが無いということを担保するのは難しい、というか事実上不可能なのでは。。。

あとログのロストに気づく場合ってのは、ログの収集プロセスの障害があって二次的に気づくとか前日と比べて明らかに量が減ってるからPV/UUが激減して気づいたとかそんなですよね。ぶっちゃけ少量のデータならロストしていても気づかない可能性はある。

で、もしロストに気づいたとして、ログのロスト量を見積もる場合はログの量が先週の同じ時間帯と比べてどれぐらい減ってるかってのを見たりします。

僕の経験上だとログ解析現場はこんな感じかなと思ってますが、他はどんな感じなんだろ。