グリー株式会社 橋本 泰一 さんの講演。前回拝聴したのは去年の 第3回GREE Tech Talk『サービスづくりにおけるデータの活用』 の 『GREEプラットフォームにおけるビッグデータの活用』でおよそ5ヶ月前だった。
今回はデータ解析そのものというよりはタイトル通り基盤システムの紹介でした。
グリーのデータ分析基盤
- 社内の各所でデータがほしい人が増えてきたが、エンジニアとしてもデータ提供が正直しんどくなってきた
- コンセプト : Accessability (誰でも自由に) x Scalability (どれだけ溜め込んでも)
基盤その1 : TreasureData ベースのゲームのアクセスログ解析基盤
- ログフォーマットがころころ変わることがあるのでスキーマレスなのが嬉しい
- 20ゲームタイトルのログを処理
- Web サーバー x 2,000 台以上
- Log aggregator 40 台以上
- 1TB/月の送信データを TD に送っている
- ログデータをゲーム改善のアクションにつなげるためのアクセス遷移分析
- Web サイト分析では一般的な手法をソーシャルゲームに導入
- 起点ページから何割のユーザが目的のページに到達したか?離脱率の高いステップなどを (Google Analytics のような画面で)可視化
- ページ遷移 x ユーザセグメントという軸で離脱原因分析
- ボタンやバナーに対する CTR も実画面上にオーバーレイして一目でわかるような Chrome エクステンションを開発
- ランキングなど配置が変わるようなエレメントでも追従できる
- ジョブ管理をしっかりするためのツールも開発
- データを社内に開放すると非効率なジョブが大量に投げ込まれる
- TreasureData の APi を使ってモニタリング
- ジョブを可視化
- ジョブの送信元の特定
- スロークエリの可視化
- 誰が投げたクエリかわかりやすくするようにコメントを付加している
- Web サイト分析では一般的な手法をソーシャルゲームに導入
基盤その2 : Hadoop ベースの GREE Platform データ(API ログ、ユーザ情報)解析基盤
- JDK7 x CDH4 x Apache Hive (v0.12 + α)
- 基本的にはWeb HDFS を通して格納(だけど Fluentd x Web HDFS の取り込みまだ不安定)
- CDH とは別にHive サーバに関しては別途更新
- 追加パッチや独自拡張を行っている
- 5,000ジョブ/日
- 60TB 圧縮した状態、レプリカを除くので x 3 = 180T くらい(ここ数ヶ月)
- 社内約 120 ユーザが非エンジニア
- Thrift のおかげで Shell/Python/R/PHP へのAPI は1、2日程度でドライバ作って必要に応じて提供できている
- SQuirreL SQL Client を使用
- Macaron というデータのグラフ化ツールを自社開発
- いったん投げたクエリに関してはローカルキャッシュをしてクエリを投げなくしている
- レポート画面の URL を吐き出してシェアできたりする
- HQL の中で Ruby のコードを組み込めるツールを自社開発、OSS として公開 (https://github.com/gree/hive-ruby-scripting)
- db-express という Sqoop のラッパーの自社開発
近い将来の話
- より速くより高度に (speedy and intelligently)
- Spark と Presto に注目。直近一、二ヶ月でプラットフォームに乗せていく予定
- YARNで リソース管理をやりやすく
- 開発用、実験用などをクラスタから切り分けたりできる
- Presto についてベンチとった
- パフォーマンス的には Impala が良い(縦軸が時間)
- Hive だと遅いので(社内)ユーザーから文句が出る
- 一方 Impala のメモリの使い方は厳しい、OOM のエラーが多い
- Presto は OSS なので認証周りなどの改変がしやすい
- Spark
- 非同期の MR、こちらも導入予定
所感
Impala/Presto/Spark/YARN あたりの最近割とホットな感じの話題についてはもう少し聞いてみたかったものの、既存のゲーム解析画面とかいろいろ面白かったです。あと何で Fluentd から Web HDFS 経由の投入が上手くいかなかったんだっけというのが若干ひっかかっております。