以DOTA2单局比赛为例,如何秒级产出数据结果?

 

电子竞技项目中,由于职业玩家和业余玩家的,距离更近、业余玩家对于项,目的参与度更高,使得其比赛数据的体量和数据分析的技术要求较之,传统体育有着几何级数的增长。...



如果您对业务异常实时,自动化检测感兴趣,请关注 20 日晚 8 点的直播,长按下方二维码提报名哦!



直播主题:
《业务异常实时自动化检测——基于人工智能的系统实战》
主讲人:
DataPipeline Head of AI 王睿
直播时间:
2020年2月20日20:00
免费报名方式:
长按识别下方二维码。


● 长按识别报名 ●


备注AIX

拉您加入AIX大咖来了交流群

● 长按加我好友电子竞技作为近年来竞技体育项目中发展最迅猛的一个独特分支,正在引起大量的社会关注,和重视。和其他竞技体育项目一样,电子竞技对于数据的分析,和应用有着独特的要求。

电子竞技项目中,由于职业玩家和业余玩家的,距离更近、业余玩家对于项,目的参与度更高,使得其比赛数据的体量和数据分析的技术要求较之,传统体育有着几何级数的增长。

上期《大咖·来了》栏目邀请了 VPGame CTO 俞圆圆(Y3),进行了主题为《从游戏到科学:AI 和电子竞技》的分享,围绕如何利用前沿技术对海量电竞,数据进行处理、存储与分析展开。
***

FunData 大数据系统
电竞数据的量级远远大于传统竞技体育,所以 VPGame 是采用什么技术框架进行,处理的呢?

下面介绍一下 FunData 大数据系统以及其 ETL 层、接口层、数据处理层等部分的,具体细节。

如下图,为通用 FunData 大数据系统架构:
FunData 大数据系统分为四层:ETL 层的作用是数据提取、清洗过滤和加载,接口层的作用是为前端产品,应用提供服务,数据处理层的作用是运用,流计算、批计算等方式、对原始数据进行提取,最终得到可用性较高的,总结性、概览性数据,存储层作用是对数据,进行分级,选取不同的技术,方案进行存储。
1
FunData 大数据系统之 ETL 范式

如下图,为 FunData ETL 整体范式:
从厂商数据接口、直播视频或录像文件等渠道获取,到的数据源,通过外部消息队列推,送到数据上报模块,由内部消息列队通知不同的数据,清洗和分析系统,将原始数据进行分门别类,的归档和存储,再次通过内部消息队列一步步将这些数据加载或存入到,不同的底层存储服务中。
2
FunData 大数据系统之接口层

如下图,为基于 Kubernetes 的弹性 API 系统架构:
数据要如何运用呢?不管是服务于 VPGame 应用,还是第三方应用,都是通过基于 Kubernetes 搭建的 API 集群实现的。

API 系统架构不是一成不变的,当不断深入或拓展到,其他游戏 IP 时,会同步进行很多优化,同一个游戏在不同阶段会提供,丰富度不同的 API,当然整个扩容的过程一,定是平滑的。

API 系统架构一定要具备弹性,扩容能力,以便可以很好的应对,比赛过程中出现的 API 请求激增的情况。
3
FunData 大数据系统之数据处理层

数据处理层的挑战在于,不同游戏,甚至同一个游戏,的不同场景,数据逻辑都是不一样的,所以如果是采用基于,虚拟机的单体程序设计的话,对于弹性流量的适,应会存在很大困难。

如下图,为数据处理层的工作逻辑:
VPGame 的数据处理逻辑构建基于 Serverless 的弹性框架,对实时激增的数据,进行处理和计算。

于整个框架而言,对业务方的要求仅仅,是编写好业务逻辑即可,不必操心容量规划方面,的问题。

如下为 VM 系统与 Serverless 架构对比图:
VM 系统与 Serverless 架构存在明显差异,主要体现在资源利用率、资源的虚拟化和计算能力,等方面。

对于 VM 系统,当访问量增加时需要,联系运维新增机器,恢复正常访问量再联系运维,减少机器。

对于 Serverless 架构,可以依据实际请求量和机器,状况动态分布,统一由 Vfunctions 管理,不需要运维和业务,方的介入。

还有就是随时间推移,游戏数据量会存在突刺,热门时间(大赛/节假日)比赛数量激增的情况,原来基于 VM 的方式处理数据会,导致大量数据处理任务堆积,系统压力飙升,部分处理任务超时,不得不人工接入进行扩容。

改为 Serverless 架构,收到新的数据后,由 Serverless 调度器随机分配一个 Worker 启动对应的算法容器,进行数据处理与提取。

数据处理层还要面对,的问题是,不同维度和层面的数据,对于实时性的要求不同,对于资源和时间的计算、处理,其要求也是不同的。

这里就需要把,处理模块大致分为 Hadoop (数据批处理)和 Flink (数据流处理)。

批处理的数据一般是,全局性的统计数据,如这场比赛出现多少英雄,他们的装备、技能选择等数据,这些数据相对深入,访问频次相对较低,故对及时性的相对要求,也不高。

但像单局比赛的基础数据,就属于热点数据,需要比赛结束后第一时间,进行处理,这里就需要采用,流处理框架,保障收到数据后,秒级产出数据结果。

以 DOTA2 单局比赛个人数据处理为,例,详见下图:
通过消息队列进来的,数据信号会知道这些 ID 有新的比赛产生,接着Filter 会把无效的比赛 ID 过滤掉之后,进一步对数据结构做部分,转化,清理不需要的字段,将这些处理流写入,不同维度的算子,最后用 Reduce 算子做一些聚合。

综上所述关于大数据系统的内容为本次,分享的第一部分,后面还有对 FunData 海量存储和基于 OCR 与机器学习的数据识别,和挖掘两部分精彩内容,请戳视频:


    关注 51CTO博客


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册