首发于VPGAME
VARENA-FunData使用教程与场景介绍

VARENA-FunData使用教程与场景介绍

什么是FunData

FunData是VARENA推出的电竞数据API服务,目前提供DOTA2赛事统计数据、单局数据分析、战队综合数据与个人综合数据。使用者无需担心Steam平台接口的稳定性与访问流量控制,也无需花费大量资源搭建数据挖掘、数据存储与DOTA2录像分析等系统;根据使用者业务的需要,访问FunData的API就能轻松获取数据。在使用FunData的过程中,使用者可通过选择不同粒度的接口,来满足不同应用场景的需求。

图1: 应用场景总图

FunData有什么优势

一般来说,自建DOTA2数据服务很难满足下面几点要求:

1. 为了满足大量电竞数据的需求,数据服务需要使用大量计算与存储资源。

2. 为了保证自建服务的高可用性,需要做到服务随时可用,或者在出现异常时具备快速恢复能力。

3. 对于新增数据点,系统应具备可扩展性,快速支持不同维度的数据需求。

4. 作为公共数据服务,需要考虑系统的性能问题,能够支持高流量的访问。

5. 频繁访问Steam接口容易导致API-KEY被禁用,因此需要预备大量API-KEY并合理管理。

与自建数据ETL(Extract, Transform and Load)系统和API服务相比,VARENA提供的FunData服务具有以下优势:

图2: FunData系统架构总图

海量数据

FunData自上线以来,已存储不同版本下近亿场DOTA2比赛的基础数据及录像分析数据,其中包括近万场职业比赛数据,对职业战队与队员数据有一定的积累与分析。无论是使用FunData的基础数据接口自行分析比赛,还是通过FunData的高阶数据接口直接获取比赛的分析统计数据,FunData都能满足使用者的需求。

低延迟

FunData接口响应为百毫秒级,全球动态加速使FunData可以支持全球各个地区发来的请求,并快速做出响应。作为国内第一个开放电竞数据接口的服务,FunData比Opendota(海外站点)要快3倍之多。从国内访问比赛详情数据接口的平均响应时间在1.5s左右,而FunData的访问平均响应时间则为500ms左右。

多粒度

FunData支持不同粒度的数据需求,除了单局比赛详情接口,我们还提供单局比赛的聚合接口,同时也提供更细粒度的接口将ban/pick数据、玩家数据和技能加点路径等数据分别拆分,以适应不同场景需求,减少冗余数据的传输。

批量处理

FunData数据服务支持同时拉取200场比赛的数据。如果需要大量数据做采集与分析,可以使用批量接口快速获取数据。

应用场景

为了正常使用以及保证平台的安全性,FunData开发者需要先在open.varena.com平台上申请API-KEY,基于API-KEY签名后才能正常使用FunData的接口。

签名算法请参考open.varena.com的鉴权板块,我们还提供了多语言版本的SDK,详情见

• python版 github.com/fundata-vare

• golang版 github.com/fundata-vare

• php版 github.com/fundata-vare

战队对比数据

图3:赛事列表示意图

赛事主办方如需在赛前展示两个战队的数据并做对比(如图3),可以使用FunData职业联赛数据/战队信息的接口。

首先可以调用战队数据接口/data-service/dota2/pro/team/{team_steam_id}/match-stats,获取战队的基本数据,如图4。

图4:战队数据接口返回数据,对应图3接口1的数据

两支职业战队的交手数据调用/data-service/dota2/pro/team/{team1_steam_id}/{team2_steam_id}/vs-stats。

图5:战队交手记录接口返回数据, 对应图3接口2的数据

比赛详情

图6:单局比赛详情

一些第三方平台为了帮助玩家或观众更好的理解比赛,提升赛后数据的观赏性(参考VPGAME DOTA2)单局比赛基础数据,可以调用FunData比赛信息模块的比赛详情接口/data-service/dota2/public/match/{match_id}/general_info。

图7:单局详情接口返回数据,picks_bans对应图6区域1,players对应图6区域2

待续

后续FunData将陆续推出通用英雄数据、通用道具数据、各职业赛事统计数据与实时数据接口。如需申请开发权限,请访问open.varena.com,有任何改进建议请发邮件至fundata@varena.com,或者加入我们的群744379327。

编辑于 2018-06-08 12:32