【51CTO.com原创稿件】2016年11月25-26日,由51CTO.com主办的WOT 2016大数据技术峰会在北京粤财JW万豪酒店隆重召开。自2012年以来,WOT品牌大会秉承“专注技术、服务技术人员”的理念已成功举办了十二届,不仅积累了大量的专家资源,更获得广大IT从业者和技术爱好者的认可和好评,已成为业界重要的技术分享及人脉拓展平台。
在本届WOT2016大数据技术峰会的“系统架构”主题专场,来自腾讯的高级工程师周东祥做了“腾讯游戏大数据应用技术架构”的精彩主题演讲。
【讲师简介】
周东祥,从2010年毕业进入腾讯互动娱乐部门工作,一直致力在腾讯游戏运营开发工作。先后负责业务受理系统,盗号自助系统,游戏大数据平台系统以及近2年在腾讯游戏大数据运营开发中积累大量的大数据开发与应用经验。先后在公司内分享腾讯游戏大数据开发和应用平台多次。同时,负责公司IEG互动娱乐运营开发、Web前端开发、数据分析、基础研究等通道晋级评审委员秘书。
会后,51CTO记者对周东祥老师进行了采访,分享了他在腾讯游戏大数据应用技术架构方面的心得。
腾讯游戏大数据应用技术架构的设计思路
腾讯游戏大数据应用技术架构
平台内游戏急速增长,游戏个数多;数据源异构化突出,数据量大;一游戏一世界,数据抽象模型困难。如何利用大数据技术帮助产品快速、有效的实现游戏数据精细化运营?这些都是摆在游戏大数据应用面前的问题。
据周东祥介绍,大数据的架构大同小异,基本上都包含采集、传输、存储、计算、应用,还有相关数据挖掘。在游戏特定场景下有一些应用的服务痛点和想要突破的问题。在游戏大数据应用服务高频营销场景中,需要用户行为的实时规则。
在王者荣耀等游戏中,都会看到游戏内实时任务奖励体系,例如,玩几局排位赛可以立刻领钻石,同样的累计登录、连胜、杀人、推塔等任务完成也会给到相应的奖励。在以前没有大数据技术与游戏运营结合情况下,游戏后台开发更多是以事务性DB来做核心方案实施。
这样做主要有如下问题和痛点: 功能方面,支持玩家的历史数据、时间多维度、千人千面差异化等功能会有比较高的开发和运营成本。运营层面,这种实时规则营销场景运营调整频率高、变化快。结合游戏版本开发重度耦合起来实施比较慢。腾讯现在提供的方案更多的是通过大数据技术能力,结合腾讯游戏的应用场景,帮助游戏快速有效的做相关的数据精细化运营服务。他认为,一个游戏就像一个人的虚拟人生,无论是规则模型还是挖掘模型,通用的很少。基于实时的针对于不同用户的维度,时间维度或者空间维度,再结合营销场景、渠道等等,跟游戏相关的场景做结合,提供给游戏更高速、更低成本方式的实现游戏数据精细化运营。
腾讯游戏大数据应用技术架构
对游戏大数据的处理一些方式和经验
在游戏的后台,数据源复杂多样。这些异构化的数据源带来了巨大的挑战,把玩家有效的数据转变成大数据实时存储,腾讯为此做了大量的工作。经过几年的实践发现,开源的组件解决的都是某一点的问题,在实际产品过程中会碰到各种各样的问题,所以往往要做一些实际的优化,使之更加适于公司运维、网络环境,例如标准化和差异化服务结合:标准化传输和延迟性的数据传输相结合。
所有数据一定是要实时采集的,采集之后有两个计算路径,***路径需要放在离线流程里,主要计算用户画像和标签。对于用户标签来说,更多的是用户来自于哪个地方,是来自于用户行为,还是来自于客户端,或者后台的基于计算任务的监控数据。基于用户行为还会打几种标签,例如:活跃标签、付费标签等。这个标签可以分层处理的时候来快速适配,而不是像以前拿到一个原数据表,看到的就是一个表,而看不出来这个表是为了实现付费还是为了实现活跃。在整个游戏大数据运营环境中,这是最耗费精力和资源的事。第二路径就是实时计算流程,也是目前应用最多的数据流程。实时计算流程,可以做实时用户标签计算、实时统计分析计算、实时用户规则触发等。每种处理方式都有核心应用场景。同时,处理方式和用的组件也会有差异。
对于产品来说,获取的数据越多越好,数据被放弃的理由主要有两种:一,游戏版本增加了生化对战模式,只实行一个月,一个月之后这个模式没有了,数据就会自动消失。二,数据量比较大,使用率比较低。从数据管理层面给产品进行反馈,说明这个数据意义不大,存储浪费很多空间。
数据的重要性,更多的是指游戏用户行为关键的数据,例如能影响到游戏运营的关键环节:活跃还是流失,或是付费等。这些数据关系到游戏内部的核心运营数据,就会要求游戏开发商必须上报,否则将无法提供标准化、模块化数据经营分析的基础服务。所以,每次跟游戏开发做对接的时候,会给一个标准化,必要的日志模板,剩下的日志可以选择性上报,根据游戏的运营节奏适当的增加或减少。
规则模型应用案例
在此,周东祥例举了三个场景。
一.在与游戏《王者荣耀》合作中,用户在登录时,如果是***次注册,会有需求引导,这个新手引导的过程,对于高手玩家,或者职业玩家来说,可能会有干扰。一个新手引导大概需要二三十分钟,有些用户认为过于繁琐,就会放弃游戏,这些用户在这个阶段流失了。而腾讯为此游戏提供了用户画像,这个用户可能在其他游戏里表现的非常好,那么就没必要给他推荐很低级的新手引导的过程,向这些用户提供用户画像的接口,就相当于游戏一开始,他就是高玩,也可能会推荐一段简短的引导视频。如果是菜鸟级别,会推出原版新手引导的流程,这个场景可以总结为用户画像与游戏运营结合。
二.游戏核心的应用指标是要有营收和用户。《王者荣耀》有时候会有打折,不同的用户折扣不同,这就是千人千面的精准推荐非常经典的案例。这样一来,给游戏带来的收入非常可观。也可以做一些非常灵活的调整,例如,有的用户是核心用户,可能给他的折扣就高,他留下来的意愿就更加强烈,这实际上是经过数据挖掘的模型精准的匹配。
三.所有的规则模型都是基于多年的运营经验,例如在十一活动期间,可能会有大量的玩家有空闲时间,就会出很多规则活动。以前的方式是在游戏开发的后台做很多规则,这个开发量若要保证准时上线,会有非常大的成本投入。实时规则出来之后,有了已经之前就实时计算和清洗出来的用户行为指标,只需要做一次规则配置,这个过程就非常简单了。统一的指标的规则平台已经建好,就可以轻松地使用,也可以随时在线上针对时间窗口、指标取值范围等规则做调整,灵活、高效且低成本。
对实时计算体系的要求更高
在电商或者微信领域,场景比较单一,更多的经历放在推荐场景上。而游戏里的场景多种多样,变化很快,在游戏内产生的行为规则也非常多,数据的维度或扩散的度量也很多。如何通过实时运算来保证在清晰的实时规则指标下快速清洗完,反馈到游戏里来做实时干预,是至关重要的。目前,腾讯做到的是用户行为在游戏内产生,到***触达到游戏用户可以控制在200~600毫秒左右。如果维度扩散很大,例如这个玩家在游戏内用英雄杀了多少人,每杀一个人就是一次计算,这个并发量还是比较大的。
还是以《王者荣耀》为例,十一活动的时候,一天***峰每秒钟日志量超过一百万,对于后端来说,既要把一百万承接下来,又要做实时计算,还要把实时计算反馈到游戏里,这个过程需要做很多优化,包括采集端、存储端、传输端,还有实时计算。
为了保证数据处理的完整性和一致性,在处理一次失败之后,会写到异步流程里,尽量保证计算不是为了容错而导致拥塞,引起后面的堆积,一定要采用这样一个同步加异步处理的过程。在传输和采集端必须是非阻塞,不能期望用户长链接,不停地吐数据,这个吞吐量很大。如果后台的网络有问题,连接有问题,并发数有问题,相关的网络状态有问题,也会导致连接不上,此时,采用的是无连接的UDP的方式,并且做了大量的优化,基本保证百万分之一左右的丢包率,所有的用户行为都会实时监测到。
游戏大数据实时统计计算体系
对大数据新人的建议
周东祥认为,作为一个新人想要做游戏大数据,可以从两个核心的阶段去做。***阶段,只提供基础服务。观察游戏的在线容量,用户留存情况,这部分在游戏运营层面算是基础的服务,还包括做在线的用户分析。
第二阶段,基于***阶段的用户分析的基本完成,就会发现一些问题:有些用户不付费,有的用户玩一天后就流失了,或者游戏关卡设置、游戏内容设置有问题等,可能针对这些情况提供一些相关建议。有的用户参与度不够,在某个营销活动中触达效果不好,需要基于之前的营销方案不停地沉淀,结合自信心场景,才能给游戏产品和策划提供优秀的、可靠的推荐模型、分析模型。
在增值服务的过程中,如何使用基于之前的分析和沉淀下来的模型?在这个阶段要做的就是增值服务,怎样和游戏内的产品结合,帮助游戏提高运营的质量,包括运营的效率,运营指标的提升,这是游戏产品开发最关心的。第二,如何通过实时的,更加精准的挖掘,来做精准推荐,做一些可能帮助游戏增长收入、增长活跃度的工作。
游戏大数据与微博电商大数据的区别
说到微博、电商与游戏的区别,周东祥表示,大数据架构在底层来说一定是一致的,也没有太大区别,游戏中也有所谓的精准推荐,也有实时规则。包括现在比较火的如何把分析做的更快,一定是结合到自己产品的实际场景当中来做相关的区分,举个例子,在电商平台购物,用户关注的物品,平台就会为用户做推荐,甚至跳过任何一个网站,都能看到之前浏览的产品。电商平台会把用户的行为推给第三方,在登录第三方平台的时候,如果用户确实在之前买过这个产品,就会受到弹出的方式的不停干预。互联网任何一个网页里面都可以实时的干预用户。实际上电商已经做好了模型,这个网站已经有这个模型做所谓的广告推荐的方式。
同样在微博产品中,一些内容咨询的推荐,例如今日头条,产品推荐、内容推荐是比较核心的,基于用户和用户看到的文章不停地做模型训练,这样就可以不停地加实时规则向用户推荐。
对于游戏,实际上也是如此。游戏有很多渠道,不仅是游戏内,还有平台渠道:微信手Q,官网等,将这些渠道分层,例如官网,游戏用户在上面去点,就会把规则类嵌到平台或者营销渠道里,思路和方法都是一样的,只是说如何利用大数据架构把这种推荐放在合适的游戏和营销场景里来,帮助产品或平台做更多的精细化运营。如果数据做不到实时与产品和游戏相结合,提供给产品更多的大数据的增值精细化服务价值,那么***大数据服务可能只是数据咨询服务了。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】