Developers Summit 2014

グリーを支えるデータ分析基盤の
過去と現在
2014/02/14

グリー株式会社
Web Game 事業統括本部

橋本 泰一

Copyright © GREE, Inc. All Rights Reserved.
自己紹介:
橋本 泰一(はしもと たいいち)
Self-introduction

• 1997年 東京工業大学 情報工学科 卒業
• 2002年 東京工業大学 大学院情報理工学系研究科 修了
博士(工学)
• 2002年 東工大 助手 & 特任准教授
• 2012年 グリー株式会社

• 自然言語処理、情報検索、〇〇マイニング、機械学習…
• GREE PlatformおよびWebベースのソーシャルゲームの
データ分析基盤を担当

Copyright © GREE, Inc. All Rights Reserved.
過去の話…

Copyright © GREE, Inc. All Rights Reserved.
過去の話
2011年

ディレクタ
エンジニア

Copyright © GREE, Inc. All Rights Reserved.
過去の話
2012年

ディレクタ
エンジニア

Analytics DB
(SQL Server)

Copyright © GREE, Inc. All Rights Reserved.
過去の話
だんだんと困ってきたこと…

• データほしい人が増えてきた…
• 理由:サービスが増えた、人が増えた、…

• データ提供が正直しんどくなってきた…

Copyright © GREE, Inc. All Rights Reserved.
今の話…

Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
コンセプト
• Accessability
• だれでも自由に
• Scalability
• どれだけ貯めこんでも

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
グリーのデータ分析基盤

• ゲーム
• Treasure Data ベース
• ゲームへのアクセスログ

• GREE Platform
• Hadoop ベース
• ゲームからAPIへのログ
• ユーザ情報

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
Treasure Data
● Hadoopクラスタの構築が不要ですぐに利用可能
● ログのコレクトからストアまでワンストップで提供
● fluentd のプラグインで実現

● スキーマレスで自由度の高いログフォーマット
● time int, v map<string, string>

● データ・ウェアハウスの運用コストの低減
● BIツールとの容易なインテグレーション

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
基本的な構成

ある ゲームサービス

Web Server

Log Aggregator Server
2台

Treasure Data

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
データについて

●

約20ゲームタイトル

●

Web サーバー x 2000台 以上

●

log aggregator サーバー 40台以上

●

送信データ量 1TB/月

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
ダッシュボード

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
データを使って何をやるかが大事

• ログデータをゲーム改善のアクションにつなげる
• アクセス遷移分析
• Webサイト分析では一般的な手法を、ソーシャルゲームに導
入

• ジョブ管理をしっかりする
• ジョブ管理ツール

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
アクセス遷移分析

• ページ遷移
•

起点のページから何割のユーザーが目的のページに到達したか?

• 離脱
•

離脱率の高いステップはどこか?

• クリック
•

ページ内のどのリンクがクリックされているか?

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
ページ遷移分析

TOPページから
アイテムをクリッ
ク

アイテムを選
ぶ

庭に種を植
える

完了

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤

TOPページから次のページへ遷移した
ユーザーの割合を表示

アイテム一覧に遷移したユーザーは全
体の○○%

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤

TOPページからアイテム一覧で
イベントアイテムを選んで、庭
に種を植えたユーザーは、全
体の○○%
Copyright © GREE, Inc. All Rights Reserved.
離脱分析

•

ゲームをプレイしてくれたけど、すぐにやめてしまったユーザーの行動?

•

新規ユーザー

•
•

休眠復帰(n日以上間あけて遊びにきてれた)ユーザー

•
•

チュートリアル?

カムバックボーナス?

どういう遷移の後、最後にどのページで離脱してしまうのか?

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
離脱分析
• ページ遷移 + ユーザセグメント → 離脱原因をさぐる

プレイをやめてしまうまでの経
路と割合を分析

プレイ時間も参考に

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
クリック分析
<a href=”.....”>
<span class=”....”>
10.01%
</span>
</a>

● データソースは、アクセス遷移分析結果
● Chrome Extension を利用して、実際の画面にオー
バーレイ表示

● UI・UXの改善に
Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
クリック分析

● クリックのログをJavaScript で
サーバーへ送信
● お知らせやランキングの効果などで活用

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
ジョブ管理ツール
• データを社内に開放

• 非効率なジョブが大量に投げ込まれる

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
リソースは限られているのです

• ジョブのモニタリングと管理が重要
• Treasure Data の API を使ってモニタリング
•
•
•
•

ジョブを可視化
ジョブの送信元の特定
スロークエリの可視化と特定
強制KILL

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
ジョブの可視化

• 時系列に実行中とキューイングされているjobを集計

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
ジョブの送信元を特定

• クエリ実行の際に送信者を自動付与
-- analysis bi
SELECT
TO_DATE( FROM_UNIXTIME(time) ) AS day,
COUNT(DISTINCT uid) AS dau
FROM
access
GROUP
BY TO_DATE( FROM_UNIXTIME(time) )

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
スロークエリの可視化と特定

• 閾値以上時間のかかっているジョブの統計と一覧を表示

Copyright © GREE, Inc. All Rights Reserved.
ゲームのデータ分析基盤
まとめ
• Treasure Data を使ってます
• ログデータをゲーム改善のアクションにつなげる
• アクセス遷移分析
• Webサイト分析では一般的な手法を、ソーシャルゲームに導
入

• ジョブ管理をしっかりする
• ジョブ管理ツール

Copyright © GREE, Inc. All Rights Reserved.
グリーのデータ分析基盤

• ゲーム
• Treasure Data ベース
• ゲームへのアクセスログ

• GREE Platform
• Hadoop ベース
• ゲームからAPIへのログ
• ユーザ情報

Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
概要
サービス
速報用
Storage
Analysis Data Hub
Webサーバ
zookeeper

Azkaban

Hive
db-express

Web
HDFS

HDFS
MR

Macaron
Presto

MySQL

Storage Solaris

ディレクタ
エンジニア

HBase

(log archives)
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
主な構成

• JDK7 + CDH4 + Apache Hive (v0.12+α)
• HiveServer2
• 追加パッチ
• Kryo serialization (Hive 1511, etc.)
• …

• 独自拡張
• 社内認証システムとの連携
• auto-load extra UDFs
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
利用状況

• 5000ジョブ/ 日
• 60TB
• 圧縮, レプリカを除く

• 100ユーザ
• ほとんどが非エンジニア

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
概要
サービス
速報用
Storage
Analysis Data Hub
Webサーバ
zookeeper

Azkaban

Hive
db-express

Web
HDFS

HDFS
MR

Macaron
Presto

MySQL

Storage Solaris

ディレクタ
エンジニア

HBase

(log archives)
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
データへのアクセス方法
• 直接アクセス
• SQuirreLSQL
• JDBC, ODBC 接続できるものなら

• グラフ化
• Macaron
• 自社製

• その他
• Shell, Python, R, PHP, …
• thanks to Thrift
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
SQuirrelSQL

Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
Macaron
•
•
•
•

データのグラフ化
RDB/Hiveに対応
キャッシュ機能
出力:画像、HTML

画像内のデータはサンプルです
Any questions?
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤

Ruby Scripting in Hive Query Language
• HQL の中に Ruby のコードを埋め込む
• HQL(SQL)で書きにくいクエリを処理できる
• https://github.com/gree/hive-ruby-scripting
HQLの中でRubyの関数を定義

定義した関数を実行
Any questions?
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
概要
サービス
速報用
Storage
Analysis Data Hub
Webサーバ
zookeeper

Azkaban

Hive
db-express

Web
HDFS

HDFS
MR

Macaron
Presto

MySQL

Storage Solaris

ディレクタ
エンジニア

HBase

(log archives)
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
データのインポート

• ログデータのインポート
• ハイブリッド: bulk copy + streaming log events
• Fluentd & WebHDFS(まだ不安定)
• MySQLからのインポート: db-express
• Sqoopのラッパー
• Cooperation w/ in-house DSN catalog
• Parallel import Sharded DataBases / Tables
• 手動インポート
• ブラウザからアップロード

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
GREE Platformのデータ分析基盤
まとめ
• GREE Platform のデータ分析基盤は、
Hadoopをベースにして自作
• CDH4 + Hive + α
• Macaron
• Ruby Scripting in Hive Query Language
• db-expess

Copyright © GREE, Inc. All Rights Reserved.
近い未来の話

Copyright © GREE, Inc. All Rights Reserved.
近い未来の話
コンセプト

Speedy
より速く
Intelligently
より高度に
Copyright © GREE, Inc. All Rights Reserved.
近い未来の話
必要な機能
機能
ダッシュボード・ BI
データカタログ
ジョブ管理・ワークフロー
クエリ言語(エンジン)

分散処理

選択肢
Macaron, Metric Insights, Tableau, …
Hive (HCatalog), …
Azkaban, Oozie, …
Hive, Pig, Cascading,

MR,
MPP ( Vertica, RedShift, … )
Impala,

分散ファイルシステム

Spark, FlumeJava, …

Presto, …

HDFS, S3, MapR FS, Tachyon, CFS …

• Presto と Spark(YARN) に注目

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
近い未来の話
YARN
• リソース管理をやりやすく

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
近い未来の話

Presto
• OSSな分散SQLエンジン: http://prestodb.io/
• Facebookが開発
• Hiveよりも速い

Copyright © GREE, Inc. All Rights Reserved.
近い未来の話
Spark
• データ処理フレームワーク
• 開発: AMPLab in UC Berkeley
• 速いのが特徴

• 機械学習での利用に最適

Any questions?
Copyright © GREE, Inc. All Rights Reserved.
まとめ

• Accessability、Scalability
• ゲーム:Treasure Data
• プラットフォーム:Hadoop

• Speedy、Intelligently
• クエリの高速化
• 機械学習を利用したデータの活用

Copyright © GREE, Inc. All Rights Reserved.
Copyright © GREE, Inc. All Rights Reserved.

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