Supercell如何利用大数据分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Supercell如何利用大数据分析打造爆款手游
张孝峰,AWS资深解决方案架构师
游戏作者的常见问题
•我有最好的架构/开发,最好的美工/策划,所以我有最好的游戏了
•我投了很多钱打广告,曝光率足够了,但是却不能让客户多留/多玩一些时间
•我和那家的游戏几乎就一模一样嘛,他就比较火/赚钱
Supercell –Scaling Mobile Games https://youtu.be/wqz7AunrzcU
Supercell-Scaling analytics
有弹性的分析系统
Supercell的“数据文化DataCulture”
Analytics can’t make a hit game -but can improve it 分析不能创造一款爆款——但可以改进他
Full transparency wrt data inside the company
完全透明的公司内部数据
Data scientist embedded in teams
数据科学家嵌入到每个团队当中
分析的数量级
~5 TB每天产生的数据量
~15B 单条数据(单个事件)
整个数据仓库容量~4PB
事件样例
{"type": "level_changed", "account": 2474, "sessionId":
"AAABYr437O0KBSX9AAACwA==", "levelType": "experience", "level": 1, "timestamp": 1523609760859, "game": "clash-royale"}
分析系统的发展历程2012
2018游戏数据库
事件事件流
数据仓库Amazon S3数据仓库
分析系统的早期版本——数据库时代
数据库
Data Pipeline——数据管道
2012,事件管道
客户端事件收集
2013,事件管道
客户端事件收集
服务器事件收集
事件管道的优劣势
+ 简单
+ 比数据库时代,多了更多细节
-不能实时访问
-如果本地磁盘满了,数据就丢失了-只能从S3消费数据
客户端事件收集
服务器事件收集
https:///cn/kinesis/data-streams/
客户端事件收集
服务器事件收集事件整合
流式管道
仪表板
第三方接入
实时分析
支持部门
客户端事件收集
服务器事件收集事件整合
流式管道的优势
本地故障不会引起数据丢失实时访问数据
多路消费数据
Supercell Kinesis设置
•两个主数据流
•客户端事件
•服务器端事件
•数据随机分区
•失去顺序
•在分片之间获得均匀的负载
•客户端使用KCL消费流数据
https:///zh_cn/streams/latest/dev/developing-consumers-with-kcl.html
Amazon Kinesis 分发
困难:
•主流相当大
•~200每个流的分片数量
•~100MB/s 每秒数据量
•混合着各种类型的数据
•不是所有客户端都需要所有类型数据解决方案:
•将主流拆分为多个不同应用需求的流
•应用只需要消费自己需要的事件子集
分析系统的发展历程2012
2018游戏数据库
事件事件流
数据仓库Amazon S3
数据仓库
Data warehouse——数据仓库
2013的ETL和数仓
数据科学家
用户
仪表板
BI工具
等等
遇到的困难
•集群上的尖峰负载
•在ETL期间查询速度变慢•扩展或者收缩会很困难
•储存与计算不分离
•即使是大型的列式存储也有局限性
数据科学家
用户仪表板
BI工具
等等
•限制Vertica中的数据量
•将计算与存储分开
•将ETL处理与查询分开
•保持数据的单一事实来源
•利用云的灵活性来优化资源使用
•Amazon S3作为单一事实来源
•数据存储为Parquet
•使用EMR进行ETL
•Vertica仅用于结果(帐户,汇总和KPI)
数据科学家
用户仪表板
BI工具
等等
当前方法的优势
计算和存储的分离
Amazon EMR可扩展到非常大ETL工作负载使用专用的临时集群对数据科学家友好的环境
分析系统的发展历程
20122018
游戏数据库事件
事件流
数据仓库
Amazon S3
数据仓库
经验与教训
扩展和故障恢复
•随心缩放的架构
•微服务架构和数据库分片•假设失败-并考虑到这一点
分析
储存与计算分离
专注于数据本身
仔细规划如何定义Schema 没有“数据规则”