SlideShare a Scribd company logo
1 of 58
Download to read offline
Copyright 2016 CYBIRD Co., Ltd.
SparkやBigQueryなどを用いた
モバイルゲーム分析環境
株式会社サイバード
小松 裕一
ハッシュタグ : #devsumiD
セッションID : 18-D-L
自己紹介
名前:小松 裕一
所属:株式会社サイバード
ビジネス戦略統括本部
データ戦略統括部
仕事:分析環境の構築
データ処理全般
出身:宮城県
分析処理でよく使うもの:Hive、Spark、MySQL、BigQuery、
Embulk、Perl、Scalaなど
会社紹介
女性向け恋愛ゲーム -イケメンシリーズ-
会社紹介
• イケメン達との恋愛ストーリー
を楽しめる恋愛ゲーム
• 7タイトル、7プラットフォーム、
156カ国で配信
• 累計会員数1,200万人
• 3DCGのリッチな試合シーンが
楽しめる本格派サッカークラブ
育成ゲーム
• 世界140カ国配信、累計
300万DL
• 香港ではAppStoreセールス
ランキングNo.1獲得
BFB2016
会社紹介
情報コンテンツ
会社紹介
チーム紹介
多様なメンバーで構成され、必要なスキルを補い合っています
チーム紹介
アナリスト
- マーケティング部門出身
- Webマーケティング知識
- Excel,SPSS,R
アナリスト
- ゲームプランナ出身
- 統計学,データ処理
- SQL,R,Excel
データ分析エンジニア兼BI開発エンジニア
- バイオインフォマティクス業界出身
- 機械学習,統計学,フロントエンド開発
- Java,Python,JavaScript
データ分析エンジニア
- BtoBソリューション部門出身
- システム設計,Hadoop関連技術,DB管理
- Perl,PHP,Scala
データ分析エンジニア
- ゲーム開発専門学校出身
- Hadoop関連技術,DB管理,機械学習
- Python
チームリーダ兼アナリスト
- 経営企画出身(M&A,事業戦略策定,等)
- 問題解決,ビジネス知識
- Excel,R,SPSS
アナリスト
- マーケティングリサーチ会社出身
- 統計学,アンケートリサーチ
- Excel,SPSS
ビジネス力
データサイエンス力
(統計学/機械学習,等)
データエンジニアリング力
出所:データサイエンス協会「データサイエンティストに求められるスキルセット」より引用
スキルセット説明
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
分析環境はAWS及びGCPで構成されています
1. 分析環境の概要 1-1. 概要図
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
分析環境の用途は主に3つです
1. 分析環境の概要 1-2. 用途
1. BIツール(Cynapse)
=> 毎日、KPIなどの指標をモニタリング
(e.g. ログイン頻度別にDAUを切り分けることで、広告の成果を測る)
2. アドホック分析(エンジニア利用)
=> 大量データの集計
(e.g. レコード数の多いテーブルのJOIN)
3. アドホック分析(アナリスト利用)
=> ユーザごとの行動履歴から知見を得る
(e.g. 特定のイベントや行動を経験したユーザの課金率は高い)
CynapseではKPIを可視化し、施策に役立てています
1. 分析環境の概要 1-2. 用途
• 自社開発のモニタリングツール
• データを可視化し、複数のタイトルの状況
を複数の指標で確認
CynapseはEC2とRDSで構成されています
1. 分析環境の概要 1-2. 用途
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
アドホック分析(エンジニア利用)では主に2つの用途で活
用しています
1. 分析環境の概要 1-2. 用途
• 過去ログの集計
S3に格納された過去ログを基に、ある特定時点のデータを集計
=>現在と過去の状態比較による効果測定、施策改善
• RDBでは処理が難しい大量データの集計
RDBに格納されたレコード数の多いテーブルのJOINなどを実行
=>分析対応の即時性向上
アドホック分析(エンジニア利用)では要件に応じて最適な
処理手法を選択し、利用しています
1. 分析環境の概要 1-2. 用途
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
アドホック分析(アナリスト利用)では様々な用途で活用し
ています
1. 分析環境の概要 1-2. 用途
• ユーザ行動分析
e.g. タイトルをまたいでプレイしているユーザの動向を分析
=> 改善施策や新規タイトルのアイデア
• テキストマイニング
e.g. ユーザのアクション情報をもとにクラスタリングし、
クラスタごとの単語(N-gram)の頻度を比較
=> 新規開発のアイデアや改修の優先順位付け
江戸風タイトル
欧州風タイトル
幕末風タイトル
20%
80%
※数値は仮のものです
アドホック分析(アナリスト利用)ではBigQuery、GCS及
びEC2に構築したテキストマイニングサーバを利用しています
1. 分析環境の概要 1-2. 用途
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
Cynapseに表示するデータはS3→EMR→RDSで処理し、
KPI毎に最適な形でまとめています
2. データ処理の詳細 2-1. BIツール(Cynapse)
状況に応じてSQL、スクリプト
で処理
Amazon S3 Amazon EMR Amazon RDS
S3にログデータ
を集約
Sparkでデータ
を加工
RDSに処理
データを格納
各コンテンツのログデータは全タイトル共通のフォーマット、
また下記のタイミングでS3に収集しています
2. データ処理の詳細 2-1. BIツール(Cynapse)
基本的には
前日の更新データを毎日
分析要件によっては
1時間毎
⇒イベント効果は日単位、もしくは時間単位で十分に測定するこ
とができる
共通フォーマットを使用する利点は下記2つです
2. データ処理の詳細 2-1. BIツール(Cynapse)
・汎用的なバッチを作成することで新タイトルリリース時の対応がほぼ
必要なくなる
⇒リリース直後から分析が開始できる
[よくある問題]
複雑なデータ構造のためKPIを取得する分析実装が間に合わず、施策投入
のタイミングを逃してしまう
・必要なデータの所在や形式を特定するのが容易になる
⇒アドホック分析や、業務引き継ぎ等で無駄な作業がなくなる
[よくある問題]
分析要件に応じたデータを探すのが一苦労
ゲーム事業では主に5種類のログを利用しています
2. データ処理の詳細 2-1. BIツール(Cynapse)
ユーザプロフィール
ログイン
課金
アイテム
ガチャ
項目
共通ID
ユーザID
レベル
課金通貨の保持量
非課金通貨の保持量
国コード
チュートリアルの位置
登録日時
更新日時
タイトルID
プラットフォーム
OSバージョン
機種
推奨機種種別
Cynapseに表示するログデータをEMR(Spark)で処理する
場合は下記フローとなります
2. データ処理の詳細 2-1. BIツール(Cynapse)
(1)EMR(Spark)を起動、及びJSONで定義した処理((2)以降)を実行
(2)Sparkクラスタに設定ファイル、実行ファイルをS3から展開
(3)前処理及び集計処理実行
(4)処理完了(S3に結果を出力)
s3://XXXXXX/XXX/OUTPUT/retention/20160101/xxxxxxx
aws emr create-cluster --name "spark-cynapse-fmt"¥
--release-label emr-4.2.0¥
--log-uri "s3://xxxxxxx/emr_logs/"¥
--enable-debugging¥
--applications Name=Hadoop Name=Hive Name=Spark¥
--ec2-attributes KeyName=xxxxxx¥
--instance-type m3.xlarge¥
--instance-count 3¥
--use-default-roles¥
--auto-terminate¥
--steps "file:///xxxx/xxxx/xxxx/daily_batch.json"
[
{
"Name": "Download Files",
"Type": "Spark",
"ActionOnFailure": "CONTINUE",
"Args": [
"--deploy-mode",
"cluster",
"s3://xxxxx/xxxxx/download_files.py"
]
},
・
・
・
{
"Name": "Sumup",
"Type": "Spark",
"ActionOnFailure": "CONTINUE",
"Args": [
"--deploy-mode",
"client",
"file:///xxxxx/xxxxx/run.py"
]
}
]
EMRで処理されたデータはKPI毎にRDSに格納しています
2. データ処理の詳細 2-1. BIツール(Cynapse)
カラム
集計日 PRI
登録日 PRI
DAU
課金UU
売上
コンテンツコード PRI
プラットフォーム PRI
推奨端末 PRI
継続日数別KPI基本KPI
レベル別KPI ログイン頻度別KPI
累積課金別KPI
集計データからは下記のような指標が得られます
2. データ処理の詳細 2-1. BIツール(Cynapse)
• レベル
• 累積課金
• ログイン頻度
• 継続日数
など
ユーザセグメント毎にDAU、課金率、ARPPUなどを取得
特定のセグメントの
課金率が上昇している
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
アドホック分析(エンジニア利用)の用途
2. データ処理の詳細 2-2. アドホック分析(エンジニア利用)
• 過去ログの集計
S3に格納された過去ログを基に、ある特定時点のデータを集計
=>現在と過去の状態比較による効果測定、施策改善
• RDBでは処理が難しい大量データの集計
RDBに格納されたレコード数の多いテーブルのJOINなどを実行
=>分析対応の即時性向上
S3に格納された過去ログは主にEMR(Spark)で集計します
2. データ処理の詳細 2-2. アドホック分析(エンジニア利用)
aws emr create-cluster --name "sparktest"¥
--release-label emr-4.2.0¥
--applications Name=Spark¥
--use-default-roles¥
--ec2-attributes KeyName=xxxxxxx¥
--instance-type m3.xlarge¥
--instance-count 1
(1)EMR(Sparkクラスタ)を起動
(2)SSHログイン
(3)Scalaの場合はspark-shell、Pythonの場合はpysparkを起動
aws emr ssh --cluster-id j-XXXXXXXXXXX ¥
--key-pair-file ~/.ssh/XXXXXXXX.pem ¥
--region ap-northeast-1
spark-shell もしくは pyspark
実行サンプル(Scala)
2. データ処理の詳細 2-2. アドホック分析(エンジニア利用)
> spark-shell
// ケースクラス定義
case class Login(user_id: Int, regist_dt: String, level: Int)
case class Sales(user_id: Int, item_id: Int, price: Int, regist_dt: String)
// データ取り込み(RDD)
val loginRDD = sc.textFile("s3://xxxxxxxxx/xxx/xxx/login/201601/*")
val salesRDD = sc.textFile("s3://xxxxxxxxx/xxx/xxx/sales/*")
// データフレーム作成
val loginDF = loginRDD.map{ data =>
val tmpData = data.split("¥t")
val user_id = tmpData(0).toInt
val regist_dt = tmpData(1)
val level = tmpData(4).toInt
Login(user_id, regist_dt, level)
}.toDF
val salesDF = salesRDD.map{ data =>
val tmpData = data.split("¥t")
val user_id = tmpData(0).toInt
val item_id = tmpData(1).toInt
val price = tmpData(2).toInt
val regist_dt = tmpData(4)
Sales(user_id, item_id, price , regist_dt)
}.toDF
// テーブル登録
loginDF.registerTempTable("login_table")
salesDF.registerTempTable("sales_table")
// クエリ発行
val resultQuery = sqlContext.sql(s"""
SELECT login.user_id,SUM(sales.price)
FROM login_table login JOIN sales_table sales ON (login.user_id = sales.user_id)
WHERE login.regist_dt LIKE '2016-01-01%'
AND login.level = 100
AND sales.regist_dt LIKE '2015-12%'
GROUP BY login.user_id
""")
// 結果表示
resultQuery.show
読み込むデータのcaseクラスを定義
S3からデータを取り込みRDDを生成
RDDからDataFrameを生成
DataFrameを一時テーブルに登録
sqlメソッド(Spark SQL)でクエリを発行
結果を表示
2016/1/1にログインしたレベル100のユーザが2015/12に購入した金額の集計
アドホック分析(エンジニア利用)の用途
2. データ処理の詳細 2-2. アドホック分析(エンジニア利用)
• 過去ログの集計
S3に格納された過去ログを基に、ある特定時点のデータを集計
=>現在と過去の状態比較による効果測定、施策改善
• RDBでは処理が難しい大量データの集計
RDBに格納されたレコード数の多いテーブルのJOINなどを実行
=>分析対応の即時性向上
処理するRDBのデータはBigQueryに転送してクエリを実行
します
EmbulkでBigQueryにデータを転送する場合の詳細は下
記をご参照ください
2. データ処理の詳細 2-2. アドホック分析(エンジニア利用)
Qiita:「EmbulkとBigQueryが黄金コンビすぎる話」
http://qiita.com/yuichi_komatsu/items/3aae65c362b2a57f6fbf
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
アドホック分析(アナリスト利用)の用途
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
• ユーザ行動分析
タイトルをまたいでプレイしているユーザの動向を分析
=> 改善施策や新規タイトルのアイデア
• テキストマイニング
ユーザのアクション情報をもとにクラスタリングし、
クラスタごとの単語(N-gram)の頻度を比較
=> 新規開発のアイデアや改修の優先順位付け
使用するデータは下記の手順でBigQueryに格納しています
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
• テーブルは日付単位で分ける
(コンテンツコード_YYYYMMDD)
(1)S3からGCSにデータコピー(google-cloud-sdkを利用)
※赤字部分はスクリプトで動的に変更
(2)GCSからBigQueryにデータをロード(google-cloud-sdkを利用)
※赤字部分はスクリプトで動的に変更
gsutil -m cp s3://xxxxxx/<コンテンツID>/<テーブル名>/<YYYYMM>/*<YYYYMMDD>* gs://xxxxxx/<コンテンツID>/<
テーブル名>/<YYYYMM>/<YYYYMMDD>/
bq load --source_format=CSV --field_delimiter=‘¥t’ <データセット名>.<コンテンツID>_<YYYYMMDD> gs://xxxxxxx/<コ
ンテンツID>/<テーブル名>/<YYYYMM>/<YYYYMMDD>/* /home/xxxx/batch/gcp/fmt/schema/<フォーマットバージョン
>/<テーブル名>.json
[
{
"name": "user_id",
"type": "INTEGER"
},
・
・
・
{
"name": "regist_date",
"type": "STRING"
}
]
[ポイント]
JSONでスキーマ定義
実行サンプル(BigQuery)
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
SELECT
a.user_id,
SUM(b.price)
FROM
TABLE_QUERY(login,'REGEXP_MATCH(table_id, r"^aaa_20160101")') a
JOIN EACH
TABLE_QUERY(sales,'REGEXP_MATCH(table_id, r"^aaa_201512")') b
ON
a.user_id = b.user_id
GROUP EACH BY
a.user_id;
• 日付分割されたテーブルを正規表現で必要な単位に連結
⇒BiqQueryは従量課金のため無駄なデータ走査を発生させない
[ポイント]
2016/1/1にログインしたユーザが2015/12に購入した金額の集計
アドホック分析(アナリスト利用)の用途
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
• ユーザ行動分析
タイトルをまたいでプレイしているユーザの動向を分析
=> 改善施策や新規タイトルのアイデア
• テキストマイニング
ユーザのアクション情報をもとにクラスタリングし、
クラスタごとの単語(N-gram)の頻度を比較
=> 新規開発のアイデアや改修の優先順位付け
EC2上に下記のような構成のテキストマイニング環境を構築
しています
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
• RMeCab + Rstudio
=> EC2上に構築、アナリストがブラウザから直接利用
• 辞書(Wikipediaのタイトル + オリジナル単語で作成)
=> オリジナルに作成しているもの(ゲームの専門用語など)は定期的に更新
単語の出現頻度をRMeCabで集計するサンプル
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
(1)単語の出現頻度を計算する。
q2_words <- RMeCabFreq("q2.txt")
(2)結果表示を「名詞」、「動詞」、「形容詞」だけにする。
q2_words_results <- q2_words[(q2_words$Info1 == "名詞" | q2_words$Info1 == "動詞" | q2_words$Info1
== "形容詞"),]
(3)件数が多いものから降順にソートする。
q2_words_sort <- q2_words_results[order(-q2_words_results$Freq),]
(4)上位50件を表示
head(q2_words_sort,50)
連続する単語の出現頻度をRMeCabで集計するサンプル
(3単語を集計)
2. データ処理の詳細 2-3. アドホック分析(アナリスト利用)
(1)出現頻度を計算する。
q2_3gram <- Ngram("q2.txt", type=1, pos=c("名詞","動詞","形容詞"), N=3)
(2)件数が多いものから降順にソートする。
q2_3gram_sort <- q2_3gram[order(-q2_3gram$Freq),]
(3)上位50件を表示
head(q2_3gram_sort,50)
[アバター-保存-数] 1000
[キャラ-本編-配信] 900
[他-イケメン-シリーズ] 800
[ほしい-衣装-箱] 750
[早い-配信-する] 500
(e.g. 要望アンケート)
Agenda
1. 分析環境の概要
1-1. 概要図
1-2. 用途
2. データ処理の詳細
2-1. BIツール(Cynapse)
2-2. アドホック分析(エンジニア利用)
2-3. アドホック分析(アナリスト利用)
3. まとめと今後の展望
分析環境の概要
- AWSとGCPで構築
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
分析環境の概要
- 用途① BIツール(Cynapse)
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
分析環境の概要
- 用途② アドホック分析(エンジニア利用)
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
分析環境の概要
- 用途③ アドホック分析(アナリスト利用)
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
BIツール(Cynapse)におけるデータ処理
- データは共通フォーマットを利用
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
共通フォーマット
BIツール(Cynapse)におけるデータ処理
- データはS3に蓄積、EMR(Spark)で処理し、結果をRDSに格納
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
蓄積
処理
格納
アドホック分析(エンジニア利用)におけるデータ処理
- S3の過去データはEMR(Spark)で処理
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
過去データ集計
アドホック分析(エンジニア利用)におけるデータ処理
- RDBの大量データはEmbulkでBigQueryに転送して処理
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
RDBの大量データ処理
アドホック分析(アナリスト利用)におけるデータ処理
- S3のデータをGCSに転送
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
データコピー
gsutilコマンド
アドホック分析(アナリスト利用)におけるデータ処理
- GCSのデータをBigQueryにロード
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCPデータロード
bqコマンド
テーブルは
日付単位で作成
アドホック分析(アナリスト利用)におけるデータ処理
- ユーザ行動分析はBigQueryで実行
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
ユーザ行動分析
アドホック分析(アナリスト利用)におけるデータ処理
- テキストマイニングサーバはEC2上に構築
3. まとめと今後の展望
Amazon RDS
Amazon EMR
Amazon S3
DB
WEB/アプリ
データ転送用
データフロー
処理コマンド
分析環境各サービス
アドホック分析
(エンジニア利用)
Amazon EC2
Google BigQueryGoogle Cloud Storage
アドホック分析
(アナリスト利用)
Amazon EC2
GCP
テキストマイニング RMeCab+RStudio
辞書は
Wikipediaのタイトル
+オリジナル単語
今後は下記の実施を計画しています
3. まとめと今後の展望
• Spark進化への追随
• リアルタイム処理の導入
• 機械学習の積極的な活用
最後に
http://www.cybird.co.jp/recruit/
エントリーしてね!
エンジニア募集中!
ゲームを作りたい人
大量のアクセスを捌きたい人
などなど、複数の職種で
ご清聴ありがとうございました

More Related Content

What's hot

監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -Masahiko Sawada
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncKoji Shinkubo
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来Hiromasa Oka
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-RetryフレームワークY Watanabe
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...NTT DATA Technology & Innovation
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...NTT DATA Technology & Innovation
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話NipponAlgorithm
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadogNaoya Nakazawa
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろうCROOZ, inc.
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編Toru Makabe
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 

What's hot (20)

監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_sync
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろう
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編インフラ廻戦 品川事変 前夜編
インフラ廻戦 品川事変 前夜編
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 

Similar to SparkやBigQueryなどを用いた モバイルゲーム分析環境

Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報Kazuki Takai
 
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015Cloudera Japan
 
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析Tanaka Yuichi
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化gree_tech
 
Karpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKarpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKohei Nagase
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化suno88
 
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析Tanaka Yuichi
 
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回SORACOM,INC
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jlShintaro Fukushima
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformDaiyu Hatakeyama
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]DeNA
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
 
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Daiyu Hatakeyama
 
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsAmazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsyuichi_komatsu
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006Cloudera Japan
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話Satoshi Hirayama
 
大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用Shintaro Takemura
 
Amazon Elasticsearch Service & Open Distro for Elasticsearch Meetup
Amazon Elasticsearch Service & Open Distro for Elasticsearch MeetupAmazon Elasticsearch Service & Open Distro for Elasticsearch Meetup
Amazon Elasticsearch Service & Open Distro for Elasticsearch MeetupHibino Hisashi
 

Similar to SparkやBigQueryなどを用いた モバイルゲーム分析環境 (20)

Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報ArcBox のおさらいと最新情報
ArcBox のおさらいと最新情報
 
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
 
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
 
SEGA : Growth hacking by Spark ML for Mobile games
SEGA : Growth hacking by Spark ML for Mobile gamesSEGA : Growth hacking by Spark ML for Mobile games
SEGA : Growth hacking by Spark ML for Mobile games
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
 
Karpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKarpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しよう
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化
 
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
 
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回
SORACOM UG 九州 x JAWS-UG 熊本 共催 | #あのボタン 開発のちょっといい話とSORACOMアップデート&ブログの書き方を披露しちゃう回
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI Platform
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
 
Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版Azure Machine Learning services 2019年6月版
Azure Machine Learning services 2019年6月版
 
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTipsAmazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
 
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話
 
大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用
 
Amazon Elasticsearch Service & Open Distro for Elasticsearch Meetup
Amazon Elasticsearch Service & Open Distro for Elasticsearch MeetupAmazon Elasticsearch Service & Open Distro for Elasticsearch Meetup
Amazon Elasticsearch Service & Open Distro for Elasticsearch Meetup
 

SparkやBigQueryなどを用いた モバイルゲーム分析環境