読者です 読者をやめる 読者になる 読者になる

kentana20 技忘録

技術ネタを中心に、セミナー、勉強会、書籍、会社での出来事を綴っていきます。不定期更新。

グリーを支えるデータ分析基盤の過去と現在@デブサミ2014(DevelopersSummit2014)

2/13(木)、14(火) に目黒の雅叙園で開催された「Developers Summit 2014」の参加レポート#8です。

f:id:kentana20:20140214183727p:plain

グリーを支えるデータ分析基盤の過去と現在(橋本泰一〔グリー〕)

GREE 橋本さんによる、自前の分析基盤とTresureDataを使ったデータ分析基盤のお話。13日の荒井さんのセッションもそうでしたが、今回のデブサミではGREEの大規模アプリの裏側を支えるインフラレイヤーのお話が多いですね。力を入れているということなんだと思います。

過去の話(2011年くらい)

  • Webサーバのログはログ蓄積用のサーバに同期し、分析用のKVSとMySQLに蓄積
  • エンジニアやディレクターは分析用管理画面を使用して分析を行っていた

過去の話(2012年くらい)

  • 2012年頃になると、サービスも増えてデータがほしい人が増えた
  • 分析用DBにSQLServerを導入した
  • 正直、データを提供するのがツラくなってきた

いま

「だれでも」「どれだけデータが増えても」使えるデータ分析基盤を作っている。

ゲームのデータ分析基盤

  • TresureDataにログをためて分析
    • Hadoopクラスタの構築をすることなく、ログを投げてすぐに分析に使える
    • ログ収集(コレクト)→蓄積(ストア)までをFluentdでワンストップで提供
    • スキーマレスで自由度の高いログフォーマット
    • DWHの構築・運用コスト削減
    • BIしやすい(BIツールとの相性良)

  • 構成
    • Webサーバ → LogAggregatorサーバ → TresureData へ
    • 現在の規模は以下
ゲームタイトル数 Webサーバ LogAggregatorサーバ 送信データ量
20 2,000+ 40+ 1TB/month

Webサーバから直接TresureDataに送らずに、Aggregatorサーバを経由していることについては特に言及されていなかったので、Ask the speakerで聞こうと思っていたのですが、めっちゃ混んでて萎えたので聞けませんでした。個人的に以下の理由かな、と勝手に解釈しました。

  • Webサーバの負荷
  • 役割を分ける
  • セキュリティ的な観点

  • データを使ってなにをやるかが重要
    • ログデータをゲーム改善のアクションにつなげる
    • アクセス遷移分析(一般的なWebサイトと同様の手法)
      • 起点のページから何割のユーザが目的のページに到達したか
      • 離脱率の高いステップはどこか
      • ページ内のどのリンクがクリックされているか
    • 離脱分析(例)
      • ゲームプレイ後、すぐにやめたユーザの行動
      • ページ遷移+ユーザセグメント(新規ユーザ/休眠復帰ユーザとか)毎で離脱原因を分析
    • クリック分析
      • クリック率をJSで送信
      • クリック率をChromeExtensionで可視化
      • 実際の画面でクリック率が見られることが大事

  • ジョブ管理
    • 課題:データを社内に公開すると、非効率なジョブが無秩序に投げ込まれる

    • 秩序を保つための対応策

      • TresureDataのAPIを使ってモニタリング
      • ジョブの送信元の特定
      • スロークエリの可視化と特定
      • 強制KILL

グリー(GREE Platform)の分析基盤

アーキテクチャのOverviewはこんな感じ。よく見る分析系の構成ですね。Fluentd経由でHDFS形式で取り込んで、Hive・最近話題のPrestoでクエリを作ってジョブを投げる感じでしょうか。HBaseはどのように使っているのか、聞き逃しましたが、分析結果とかジョブを保存してるのかな、と思いました。

f:id:kentana20:20140302144956j:plain

  • 利用状況
    • 5000job / day
    • 60TB(圧縮・レプリカを除く)
    • 100User(ほぼ非エンジニア)

  • データへのアクセス方法
    • 直接アクセス
      • SQurreLSQL (SQLクライアント for HIVE)
      • JDBC, ODBC接続できるならそれもアリ
    • グラフ
      • Macaron(自社内製ソフトウェア)
      • Hive/RDBに対応、キャッシュもできる、画像・HTML
    • その他
      • Shell, Python, R, PHP … Thriftのおかげで言語の差異を吸収

  • Macaron
    • データのグラフ化ができる社内ツール
    • HTML/画像での出力も可能
    • キャッシュ機能もある

  • Ruby scripting in Hive Query Language

  • ログデータのインポート

    • bulk copy + streaming log events にはFluentd+WebHDFSを使っているが、まだ不安定
  • MySQLからのインポート(db-express)

    • Sqoop のラッパー
    • Cooperation w/ in-house DSN Catalog
    • Parallel import Sharded Databases

近い未来の話

Speedy , Intelligently
より早く、より高度に

  • Presto
    • OSSな分散SQLエンジン
    • Hiveより早い

高度な部分にチャレンジしていきたい。例えば、機械学習で高度な分析基盤とか。

所感

GREE橋本さんによる、「ゲーム」「GREE Platform」という2つのデータ分析基盤のお話でした。採用したアーキテクチャや構成などから実際の使用事例(どういう観点で分析して、仮説を導き出すのか)まで、ひと通りの内容を説明いただき、すごくわかりやすいセッションでした。発表のスピードも丁度よく、メモをとりながら、納得しながら楽しく拝聴させていただきました。

ログの出し方については特に言及されていませんでしたが、分析屋観点から見る「良いログってXXXX」みたいなお話も聞きたかったのですが、Ask the speakerが混んでて聞けませんでした。。

一休では、データ分析基盤と呼べるものはまだ構築できておらず、エンジニアが気軽に分析用のログを出力することができないという現状があるので、まずは基盤を作りたいと思っているのですが、思い切ってTresureDataさんへ出すという選択肢もアリなのでは無いかと思いました。どちらにしても会社として分析にもっとリソースを振って力をかけて行かなくては、、と感じたセッションでした。