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

5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ
Takao Oyobe
 
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjpChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
K Kinzal
 

What's hot (20)

プレゼン基礎講座 2016.11
プレゼン基礎講座 2016.11プレゼン基礎講座 2016.11
プレゼン基礎講座 2016.11
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjpChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
ChatGPTをシステムに組み込むためのプロンプト技法 #chatgptjp
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
 
20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
 
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しようARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
 
事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり事業成長にコミットするエンジニア組織への道のり
事業成長にコミットするエンジニア組織への道のり
 
Iocコンテナについて
IocコンテナについてIocコンテナについて
Iocコンテナについて
 
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらない
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
 

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

Karpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しようKarpenterで君だけの最強のオートスケーリングを実装しよう
Karpenterで君だけの最強のオートスケーリングを実装しよう
Kohei Nagase
 
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
Shintaro Fukushima
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
 

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などを用いた モバイルゲーム分析環境