データ分析基盤は応答性を重視、誰もが気軽に使えるように
データ分析基盤の構成は下図のとおり。アプリケーションサーバからFluentdでログを抽出し、Streaming InsetでBigQueryへ。対象となるデータは大きいので、一定の期間が経ったら、Google Cloud Storageにエクスポート。過去のデータも含めて分析したい場合は、Google Cloud Storageからインポートすると、BigQueryで分析できる。またGoogle Cloud StorageはオンプレミスのSparkからも読み書きができるようなっている。「分析用のログ以外のデータソースにアクセスしてデータ処理をしたい場合はSparkを使っている」と神田氏。
こういう構成にしたのは、「とにかく応答性を重視したから」と神田氏は説明する。分析ツールにBigQueryを採用した理由については、「使いたかったということもあるが、BigQueryはIndex的なものの定義が不要で、アドホック分析に向いていたから」と語る。とにかくBigQueryにデータを入れておけば、思いついたクエリーが投げられるので便利なのだそうだ。
またSparkは分析ログに含まれないデータを処理したい場合に使うほか、機械学習を使いたいときなどにも使用しているという。「機械学習はSparkやscikit-learnを使っている。用途やデータソースによって環境を使い分けている」(神田氏)。
なぜこれほどまで応答性を重視するのか。それは先述したように、直観などのフィーリングを大事に考えているからだ。「直観は案外正しいが、根拠がない直観はダメ。しかし根拠のための調査をしようと思っても、結果を得るのに時間がかかると、コストと得られるメリットを天秤にかけてしまい、興味があるから調べるというような遊びのある調査は行わなくなってしまう。しかし10分以内で結果がでるのであれば、やってみようと思う人も増えると考えた」と神田氏は言う。
だがデータ分析環境ができたものの「最初はあまり使われなかった」と神田氏。理由は2つ。1つは使い方が分からなかったこと。「BigQueryもSparkもあり、UIも2種類といろいろありすぎた」のだという。2つめはそもそも何に使えるかわからなかったこと。「私たちのチームはあくまでも開発チーム。したがって分析の環境を作っても、『これで何をするんだっけ』ということになってしまう」というのだ。
そこで神田氏は使い方を共有するために、チュートリアルを開催したり、ドキュメント化をしたりしたという。「最も効果があったのは、ノートブックの活用」と神田氏は力強く語る。つまり他の人が分析した手順をノートブックに残すことで、「こういうことがしたい」と思ったときに参考にできるからだ。
ここまで解説したところで、実際に構築した分析基盤によるデモを実施。エンジニアでも簡単にデータ分析ができることを披露した。分析の手法はノートブックで共有できたが、「何に使えるのか」については、まだ共有する手段を試行錯誤しているからだ。
「基礎集計の結果と手順はチーム内のチャットグループで共有したり、有用なものは定型ジョブとして自動化したりしている。またTableauなどを使って可視化し、共有している」(神田氏)
エンジニアはデータ分析基盤を何に使えばよいのか。神田氏は「開発工程の選定やシステム改善の事前・事後の評価、運用フローの改善などに使える」と語る。開発項目の選定であれば、現状をより正確に把握し、開発すべき根拠を導き出してくれる。データ評価・分析のレベルを上げることや可視化、ワークフローの自動化などこれからの課題はいろいろあるが「BigQueryを使って人生が変わった」と神田氏は熱く語る。
気軽にデータ抽出できることで、新たな気づきがあるだけではない。今まで理解していたことよりも、さらにより深く、自分たちが作っているシステムの理解ができるようになったからだ。そして開発者がリリースした機能を自分で評価でき、改善サイクル回すスピードも上がる。
「データ分析のスキルは特異なものではない。データを見られないことはもはやリスクと捉えるべきではないか」こう参加者に問いかけ、神田氏はセッションを締めくくった。
お問い合わせ
株式会社サイバーエージェント
TEL: 03-5459-0202