一种游戏玩家数据的存储、分析方法及装置的制造方法

文档序号:9708438阅读:849来源:国知局
一种游戏玩家数据的存储、分析方法及装置的制造方法
【专利说明】一种游戏玩家数据的存储、分析方法及装置 【技术领域】
[0001] 本发明涉及游戏中游戏角色群体的海量玩家数据的存储、分析方法及装置。 【【背景技术】】
[0002] 游戏中,例如网络游戏,手游等,涉及大量的游戏角色,各游戏角色均对应一部分 玩家数据,例如参与副本的次数,登录时长,活跃程度,消费情况等等。相应地,游戏中会产 生海量的玩家数据。现有的玩家游戏数据采用传统的关系型数据库进行存储。一般而言,游 戏数据需要保存每天的玩家数据,因此采用关系型数据库存储时,一般以天作为表的主键, 然后把游戏角色的id和角色的各种行为作为其他的列保存在表中,如表1所示。
[0003]表 1 [0004]
[0005] 表中,VI~Vn+Ι分别表示角色idl参与n+1中不同的行为的度量值,P1~Pn+1分别 表示角色id2参与n+1中不同的行为的度量值。在上述表格存储的情形下,在进行角色分析 时,查询语句通过对游戏行为的列进行筛选,获得符合条件的角色的id,再以获得的符合条 件的角色id作为筛选条件,查询它们的其他行为数据。
[0006] 上述过程中,存在分析效率非常差的问题。原因是,一般的游戏都有几百上千万, 甚至几千万的游戏角色,要从如此多的海量记录中查找出符合条件的角色id,查找困难,效 率较低。更进一步,在筛选出符合条件的角色id之后,这部分角色群体数量可能也不小,要 以这些角色id为条件进一步去查找它们的其他行为数据,效率也十分低下。因此,传统的存 储及分析方法的效率是非常差的。 【
【发明内容】

[0007] 本发明所要解决的技术问题是:弥补上述现有技术的不足,提出一种游戏玩家数 据的存储、分析方法及装置,可获得高效的筛选分析效率。
[0008] 本发明的技术问题通过以下的技术方案予以解决:
[0009] -种游戏玩家数据的分析方法,包括以下步骤:1),以第一表和第二表的形式存储 游戏角色群体的玩家数据,其中,第一表中,行名为日期,列名包括列簇名和子列名;其中, 列簇名为玩家的一类游戏行为,子列名为一类游戏行为下的具体行为;第一表的单元格中 存储参与具体行为的角色以及度量值;第二表中,行名为日期和角色的组合,列名包括所述 列簇名和所述子列名;第二表的单元格中存储了相应角色在相应日期参与具体行为的度量 值;2),根据分析条件提取筛选条件,从第一表中筛选出符合条件的角色群体;3),根据分析 条件,从第二表中获取所述角色群体的行为的度量值信息。
[0010] -种游戏玩家数据的存储方法,以第一表和第二表的形式存储游戏角色群体的玩 家数据,其中,第一表中,行名为日期,列名包括列簇名和子列名;其中,列簇名为玩家的一 类游戏行为,子列名为一类游戏行为下的具体行为;第一表的单元格中存储一天中参与具 体行为的角色以及度量值;第二表中,行名为日期和角色的组合,列名包括所述列簇名和所 述子列名;第二表的单元格中存储了相应角色相应日期参与具体行为的度量值。
[0011] -种游戏玩家数据的分析装置,包括存储模块、筛选模块和分析模块;所述存储模 块用于以第一表和第二表的形式存储游戏角色群体的玩家数据,其中,第一表中,行名为日 期,列名包括列簇名和子列名;其中,列簇名为玩家的一类游戏行为,子列名为一类游戏行 为下的具体行为;第一表的单元格中存储一天中参与具体行为的角色以及度量值;第二表 中,行名为日期和角色的组合,列名包括所述列簇名和所述子列名;第二表的单元格中存储 了相应角色相应日期参与具体行为的度量值;所述筛选模块用于根据分析条件提取筛选条 件,并从第一表中筛选出符合条件的角色群体;所述分析模块用于根据分析条件,从第二表 中获取所述角色群体的行为的度量值信息。
[0012] 本发明与现有技术对比的有益效果是:
[0013] 本发明的游戏玩家数据的存储、分析方法及装置,采用不同的表结构设计,将海量 数据同时存储为第一表和第二表的形式。这样,通过第一表,列簇和子列名的设计,把行为 的类别作为列簇,把具体行为名称作为子列名,在单元格内同时保存一天之中某个特定行 为的所有角色及该行为的度量值,从而有利于快速筛选出满足条件的角色。通过第二表,以 角色id和日期作为行键,基于行键进行过滤筛选,可快速定位到角色群体所在的行单元,便 于快速获取游戏角色的其他行为特征,进行高效的群体分析。通过上述两方面的作用,快速 筛选,快速定位分析,从而提高海量玩家数据进行分析时的分析效率。 【【具体实施方式】】
[0014] 本发明的构思是:按列存储游戏中海量的玩家数据,存储时采用双表结构,可以在 角色群体筛选和角色群体分析两个阶段都达到较高的筛选效率。第一表(群体筛选表)的表 结构设计,有利于快速筛选出符合条件的角色群体;第二表(群体分析表)的表结构设计,有 利于快速定位到角色的指定具体行为的度量值。相比于以往,从而分析效率更高。
[0015] 本【具体实施方式】的游戏玩家数据分析方法是一种对游戏中的游戏角色群体的海 量玩家数据进行分析的方法,首先将海量玩家数据按照第一表和第二表的形式存储,存储 成两种表格形式,分别用于角色群体筛选和角色群体行为分析。下文中分别称之为群体筛 选表(第一表)和群体分析表(第二表)。本【具体实施方式】选用HBase数据表作为存储系统。 HBase数据表的每一列由列簇名和子列名构成,8卩"列簇名:列名"。其中一个列簇下面可以 对应多个子列名,一个子列名只能归属于一个列簇。同一个列簇的数据保存在同一个文件 中。当列簇有多个,涉及的数据量比较大时,会划分为多个文件,分别保存在多个文件中,而 多个文件可分布在不同的服务器上。
[0016] 在群体筛选表(第一表)中,以日期作为行健,即每天的数据会对应到表中的行中, 可按单独一行的形式存储多个角色的玩家数据,也可按多行的形式分别存储多个角色的玩 家数据。游戏中的每一类游戏行为对应到一个列簇。每一类游戏行为可能的具体行为(属性 值)作为一个子列名,而参与了该具体行为的角色id及其行为属性的度量值则都保存在该 列下的单元格中,没有参与该具体行为的角色就不保存在该列下的单元格中。例如,如下表 2所示:
[0017] 表2
[0018]
[0020] 上表中,对于参与副本这个游戏行为,设置一个名为FB的列簇与之对应。一天中, 玩家参与的副本可能有多个,则子列名包括多个参与具体不同副本的行为,如参与第一副 本的行为FB1,参与第二副本的行为FB2,···,参与第N副本的行为FBN,则列簇FB下有FB1, FB2,…,FBN等N个子列名。度量值则为角色参与具体副本行为的次数。如果角色idl在2015 年7月25日有参与第一副本的行为(FBI),参与次数为2次,则存储时,在2015年7月25日对应 的行中,在列簇FB的FBI列下的单元格中存储为一条记录,例如idl :2,表示具有参与第一副 本行为的是角色idl,且参与了两次。类似地,列簇名为物品消费行为item时,相应地,子列 名包括多个购买具体不同物品的行为,度量值为角色购买具体物品的个数。
[0021] 上表仅列举了两类游戏行为一一参与副本行为和物品消费行为,在此仅为示例 性,不限制于此,还可包括其他类别的游戏行为。表2中这两种行为分别对应列簇FB和列簇 Item,列簇FB包含的列有FBI,FB2等,列簇Item包含的列有Iteml,Item2等。列簇FB中的列下 的单元格保存了角色id及角色参与相应副本的次数,同一天中一个单元格内的记录数有多 条,每一条对应一个角色id。如20150725行,FBI列下的单元格包含了两条记录,分别为角色 idl和角色id2参与第一副本行为的次数。列簇Item中的列下的单元格保存了角色id及角色 购买的相应物品的个数。
[0022] 设计上述结构的表用于后续群体筛选,能够快速定位到符合条件的行为所在的 列,从而通过直接读取单元格的数据就能够获得符合条件的角色id。该结构的表,定位到具 体行为所在的列之后,对单元格中表现了该具体行为的角色的度量值进行判断,是否满足 过滤条件。例如,需要筛选出参与第一副本行为FBI的次数大于10次的角色群体时,定位到 FBI这一列之后,对单元格中的[角色id:度量值]进行筛选,选出度量值>10的这部分角色id 即是要筛选出来的群体。而以表1为例的传统存储方案,则存在多种弊端:一方面,因为表1 的传统方案中数据是按行存储的,即便只是针对某一个具体行为进行筛选,也需要读取出 角色id的所有行为,才能筛选到具体行为,其无法快速定位到具体行为所在的列。另一方 面,需要对所有的角色id进行判断是否符合度量值条件。这是因为不能确定某个id是否有 表现某个具体行为。而本【具体实施方式】中定位到列之后,就可以判定,因为只有单元格内存 储的那些角色才具有该具体行为的表现,其他不在单元格内的角色id就没有该具体行为表 现,也不需要额外的判断。相比于传统存储方案筛选的过程,本【具体实施方式】的群体筛选表 基于列名以及单元格存储内容进行高效筛选,过滤效率较高。
[0023] 群体筛选表采用HBase数据表具有的一个效果是,在构建表时不会构建所有可能 会出现的列,但由于HBase数据表提供的可扩展性,可以在列出现时新建一个新的列,因此 无需担心列名不存在的情况。
[0024] 优选地,利用HBase数据表按列存储的特性,不同类的行为的玩家数据可保存在不 同的文件中。HBase数据表利用分布式文件系统的优势,还可进一步使得不同类的列数据对 应的不同文件分散到不同的服务器进行存储。利用这种存储特点,当群体筛选的条件有多 个且针对不同类的游戏行为时,可进一步优选地,把针对各类别行为的筛选任务进行独立, 例如,将FB行为与Item行为的筛选任务独立开来,根据文件的存放位置把筛选任务分发到 集群的各个不同的服务器,充分利用集群的计算能力。每个筛选任务得到一批符合条件的 角色id,最后在客户端对所有服务器返回的角色id进行合并,得到满足最终条件的角色id。 利用分布式集群的优势,把计算任务分散到集群的各个服务器,可进一步提高筛选过滤效 率。
[0025] 群体分析表(第二表)的表结构设计中,以日期和角色id作为行健。对于列簇和子 列名,与群体筛选表类似,把具体行为保存在列名中,同时把具体行为所在的一类行为类别 作为列簇,单元格中仅保存各具体行为下的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1