Snippets

対抗して作ってみた。

Dremelから見る Googleの強さ

Quipper社では、mixpanelっていう toolをつかっていろいろユーザが残していったデータをみていってます。で、今やってるプロジェクトでちょっとそこらへん歯がゆい感があります。もちろん、自分も mixpanelに通暁してるわけではないので、使いこなせてない可能性があるままこういうことをいうのもなんですが。

例えば、ログ上から異常な行動をしているユーザが発見されたとします。しかも一人だったらおかしなことをするユーザもいるな、で済むんだけど、それが無視出来るかどうか微妙なぐらいの数いたりする。素直に解釈すれば想定外のユーザが結構いるということになるんだけど、開発陣としてはバグを入れてしまった可能性に怯えることになる。

そこで、バグだったら仮設を立てて、ここでバグっていたらログのシーケンス上こういう特徴が出てくるはずだ、とかみて検証していくわけです。しかし mixpanelではこういう作業は辛い。お仕着せのデータ解析GUIしかないし(多分)。とういわけで、生データを引っ張ってきてそれをデータ解析メインの人と力を合わせて色々するわけですが、これも結構面倒くさい。

一方、そのころ Amphitheater Pkwyでは

Googleではそこらへんのところに Dremel を使っていた。Dremelは簡易SQLみたいのを使えて、それこそ山のようなログデータの中から目的のデータをそれなりに高速に対話的に見つけ出せるわけです。対話的っていうのが重要で、そこでエンジニアは自分の仮説を裏付けるデータを引っ張りだしたり、反証がないか検証したりできる。さらにそれを Pythonで噛み砕いたりする。

そもそも Dremelは mixpanelとは違うレイヤーのものでしょう。データをためて、indexをつくっただけのものと、それを一定のデータ処理をして傾向とか GUIでみせてくれるものと。

でも逆に言えば、Dremelというエンジニア向けのむき出しのレイヤーが人口に膾炙してるところが、やはり Googleの強さだったんだなあ、という気がします。単なるコード馬鹿じゃなくて、馬鹿でかいデータに関するモデルを言語化(SQLとか)にして自由にいじれるだけの地頭の良さ。それが一部のエンジニアだけじゃなくて、エンジニアだったら当然のようにみんなそれをやっている。そしてそれを Design documentとかにまとめて、別のエンジニアが Dremelを叩いて検証したり、ハックしてよりいい結果を出したりしてる。それがコミュニケーションのベースになっている。考えてみると贅沢な環境だったんだなあ。

翻って

実を言うと、そういうでかいデータをのぞく仕事はあんまり好きじゃありませんでした。SQLもすらすらは書けないし。とはいうものの、昔取った杵柄でそういうやり方を知っている以上、そこらへんをもう少し極めて見るのが Quipper内ではいいのかなあ、という気もする昨今でした。