一种数据处理方法和数据处理装置制造方法

文档序号:6624233阅读:169来源:国知局
一种数据处理方法和数据处理装置制造方法
【专利摘要】本发明实施例公开了一种数据处理方法,包括:从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据;通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构;输出所述数据结构本发明还公开了数据处理方法终端,采用本发明,解决了现有技术中统计字段不够结构化,可读性不强的技术问题,更加有利于技术人员分析用户的使用数据,能满足快速发布产品的需求。
【专利说明】一种数据处理方法和数据处理装置

【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种数据处理方法和数据处理装置。

【背景技术】
[0002]随着电子科技以及互联网的发展,电子终端的功能越来越强大,比如只要用户按照自身的需求在电子终端上安装各种客户端产品(例如在智能移动终端上安装移动app),便可以得到很多咨询信息,甚至可以足不出户地完成很多事情,人们的生活越来越离不开电子终端。
[0003]随着客户端产品的体验和功能不断增加,到底哪些是用户真正关心的,哪些是用户更加想要的,需要技术开发人员和产品设计人员在研发出各种客户端产品后,通过采集得到用户使用产品的习惯,或者用户使用产品的条件(如硬件配置)等等数据,去改善产品,使产品更加完善;然而,在采集分析数据的过程中,往往以传统的超文本传输协议(HTTP-Hypertext transfer protocol,HTTP)来上报数据,统计字段不够结构化,可读性不强,不利于技术开发人员和产品设计人员去分析用户使用产品的习惯。


【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供数据处理方法以及数据处理装置,解决了现有技术中统计字段不够结构化,可读性不强的技术问题,更加有利于技术人员分析用户的使用数据。
[0005]为了解决上述技术问题,本发明实施例第一方面公开了一种数据处理方法,包括
[0006]从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据;
[0007]通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构;
[0008]输出所述数据结构。
[0009]结合第一方面,在第一种可能的实现方式中,所述将所述二进制数据反序列化为对应的proto文件中的数据结构包括:
[0010]根据protobuf的语言库中提供的应用程序编程接口,将预定好的数据结构解析成语言能够解析的数据结构,以递归地读取到所述二进制数据对应的proto文件中的原始数据。
[0011]结合第一方面,在第二种可能的实现方式中所述输出所述数据结构包括:
[0012]将所述数据结构存储到指定的数据库表中;或者
[0013]将所述数据结构生成指定的图表格式的数据,并进行输出。
[0014]结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述从预设的指定表中获取二进制数据之前,还包括:
[0015]确定需要采集的数据结构,根据所述确定的数据结构采集得到原始数据;
[0016]通过protobuf库将采集的原始数据进行序列化得到二进制数据;
[0017]将所述二进制数据上报到预设的指定表中。
[0018]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述确定需要采集的数据结构之后,还包括对所述确定的数据结构进行以下至少一项处理:
[0019]添加上报的数据结构;或者
[0020]删除上报的数据结构;或者
[0021]修改上报的数据结构。
[0022]本发明实施例第二方面公开了一种数据处理装置,包括:
[0023]数据获取模块,用于从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据;
[0024]数据解析模块,用于通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构;
[0025]数据输出模块,用于输出所述数据结构。
[0026]结合第二方面,在第一种可能的实现方式中,所述数据解析模块包括:
[0027]递归读取单元,用于根据protobuf的语言库中提供的应用程序编程接口,将预定好的数据结构解析成语言能够解析的数据结构,以递归地读取到所述二进制数据对应的proto文件中的原始数据。
[0028]结合第二方面,在第二种可能的实现方式中,所述数据输出模块包括:
[0029]数据存储单元,用于将所述数据结构存储到指定的数据库表中;或者
[0030]生成输出单元,用于将所述数据结构生成指定的图表格式的数据,并进行输出。
[0031]结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0032]确定采集模块,用于在所述数据获取模块从预设的指定表中获取二进制数据之前,确定需要采集的数据结构,根据所述确定的数据结构采集得到原始数据;
[0033]数据序列化模块,用于通过protobuf库将采集的原始数据进行序列化得到二进制数据;
[0034]数据上报模块,用于将所述二进制数据上报到预设的指定表中。
[0035]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
[0036]数据结构处理模块,用于在所述确定采集模块确定需要采集的数据结构之后,对所述确定的数据结构进行以下至少一项处理:
[0037]添加上报的数据结构;或者
[0038]删除上报的数据结构;或者
[0039]修改上报的数据结构。
[0040]本发明实施例第三方面公开了一种计算机存储介质,所述计算机存储介质存储有程序,所述程序执行时包括本发明实施例第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式中公开的数据处理方法的全部步骤。
[0041]实施本发明实施例,具有如下有益效果:
[0042]通过实施本发明实施例,通过protobuf的语言库中提供的应用程序编程接口对采集得到的二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构,实现了动态地转换数据结构,解决了现有技术中统计字段不够结构化,可读性不强的技术问题,更加有利于技术人员分析用户的使用数据,在需要统计分析用户的指定数据时,当需要添加上报数据时,无需在解析端对应地添加解析字段,实现了同步快速地进行数据结构的解析,能更加灵活地解析数据,能满足快速发布产品的需求。

【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]图1是本发明提供的数据处理方法的流程示意图;
[0045]图2是本发明提供的指定的图表格式的示意图;
[0046]图3是本发明提供的数据处理方法的另一实施例的流程示意图;
[0047]图4是本发明提供的数据处理装置的结构示意图;
[0048]图5是本发明提供的数据输出模块的结构示意图;
[0049]图6是本发明提供的数据处理装置的另一实施例的结构示意图;
[0050]图7是本发明数据处理装置的另一实施例的结构示意图。

【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]参见图1,是本发明提供的数据处理方法的流程示意图,该方法包括:
[0053]步骤SlOO:从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据;
[0054]具体地,数据处理装置可以定时地从指定表中获取二进制数据,比如以天为单位,可以预设地在每天的凌晨I点(不限于该指定时间,还可以为2点、3点等其他时间)从预设的指定表中获取或拉取前一天上报的二进制数据。
[0055]步骤S102:通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构;
[0056]具体地,protobuf是一个开源项目,是用于结构化数据串行化的灵活、高效、自动的方法;本发明实施例中的protobuf的语言库包括但不限于C、C++、python等语言的语言库;该数据处理装置通过protobuf的语言库(比如python库)中提供的相应的应用程序编程接口(Applicat1n Programming Interface, API)对该二进制数据进行解析,将该二进制数据反序列化为对应的proto文件中的数据结构;本发明实施例中的proto文件是通过protobuf语言来定义消息类型生成的文件,proto文件可以定义多个消息类型。
[0057]进一步地,根据protobuf的语言库中提供的应用程序编程接口,可以将预定好的数据结构解析成语言能够解析的数据结构,以递归地读取到所述二进制数据对应的proto文件中的原始数据,实现了动态地转换数据结构,当后续需要添加上报数据时,无需在解析端对应地添加解析字段,特别是需要添加或修改大量上报数据时,避免了现有技术中需要大量人力来修改解析字段的问题,实现了同步快速地进行数据结构的解析,能更加灵活地解析数据。
[0058]步骤S104:输出所述数据结构。
[0059]具体地,该数据处理装置可以将所述数据结构存储到指定的数据库表中;或者将所述数据结构生成指定的图表格式的数据,并进行输出,例如生成指定的超文本标记语言(HyperText Mark-up Language, HTML)图表格式,例如图2示出的本发明提供的指定的图表格式的示意图,通过发送邮件或其它方式输出给相关技术人员。
[0060]再进一步地,如图3示出的本发明提供的数据处理方法的另一实施例的流程示意图,该方法包括:
[0061]步骤S300:确定需要采集的数据结构,根据所述确定的数据结构采集得到原始数据;
[0062]具体地,可以针对不同的客户端产品确定需要采集的数据结构,比如针对某产品确定了采集用户的机器配置,包括系统类型、CPU核心数、物理内存等数据结构,或者用户单击、双击或者右键单击某个区域时,采集相关被单击、双击或右键单击的区域信息,那么在用户启动该产品时,即采集上述确定的数据结构,得到原始数据;确定需要采集的数据结构可以通过下面字段来实现:
[0063]
messagePerfProcessInfo
{
opt1nal uint32 uint32_curcpu_usage = 当前的工作 CPU 数目
opt1nal uint32 uint32_totalcpu_usage = 2;\\CPU 总核心数
opt1nal uint32 uint32_curvm_usage = 3;\\A拟内存
opt1nal uint32 uint32_ciiiphy_usage = 4;W物理内存
opt1nalboolbool_isXhelper_exec = 5;\\是否?吏用 X 伴侣软件
opt1nalboollx)ol_isYsoftware_exec = 6;\\是否使用 Y I之件
repeated TopSCpuUsagetop5_cpu_usage = 7;\\占用 cpu 最高的 5 个进程
}
[0064]可理解的是,进行数据采集的时可以预先设置采集的时间段,比如用户启动操作某产品的整个过程,或者用户启动某产品的前5分钟内等等,在该预设的时间段内来采集原始数据。
[0065]步骤S302:通过protobuf库将采集的原始数据进行序列化得到二进制数据;
[0066]步骤S304:将所述二进制数据上报到预设的指定表中;
[0067]步骤S306:从预设的指定表中获取二进制数据;
[0068]步骤S308:通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构;
[0069]步骤S310:输出所述数据结构。
[0070]具体地,步骤S306至步骤S310可以参考上述实施例中的步骤SlOO至步骤S104,这里不再赘述。
[0071]需要说明的是,本发明实施例在步骤S300之后,还可以包括对所述确定的数据结构进行以下至少一项处理:
[0072]添加上报的数据结构;或者
[0073]删除上报的数据结构;或者
[0074]修改上报的数据结构。
[0075]具体地,例如以上述确定采集的message为例,当技术人员需要增加一个上报数据,比如添加一个用户分辨率时,只需要添加一个字段“opt1nal string str_resolut1n=8”即可,增加后的messagePerfProcessInfo可以如下:

【权利要求】
1.一种数据处理方法,其特征在于,包括: 从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据; 通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构; 输出所述数据结构。
2.如权利要求1所述的方法,其特征在于,所述将所述二进制数据反序列化为对应的proto文件中的数据结构包括: 根据protobuf的语言库中提供的应用程序编程接口,将预定好的数据结构解析成语言能够解析的数据结构,以递归地读取到所述二进制数据对应的proto文件中的原始数据。
3.如权利要求1所述的方法,其特征在于,所述输出所述数据结构包括: 将所述数据结构存储到指定的数据库表中;或者 将所述数据结构生成指定的图表格式的数据,并进行输出。
4.如权利要求1-3任一项所述的方法,其特征在于,所述从预设的指定表中获取二进制数据之前,还包括: 确定需要采集的数据结构,根据所述确定的数据结构采集得到原始数据; 通过protobuf库将采集的原始数据进行序列化得到二进制数据; 将所述二进制数据上报到预设的指定表中。
5.如权利要求4所述的方法,其特征在于,所述确定需要采集的数据结构之后,还包括对所述确定的数据结构进行以下至少一项处理: 添加上报的数据结构;或者 删除上报的数据结构;或者 修改上报的数据结构。
6.一种数据处理装置,其特征在于,包括: 数据获取模块,用于从预设的指定表中获取二进制数据;所述指定表中存储的二进制数据为通过protobuf库将采集的原始数据进行序列化而得到的二进制数据; 数据解析模块,用于通过protobuf的语言库中提供的应用程序编程接口对所述二进制数据进行解析,将所述二进制数据反序列化为对应的proto文件中的数据结构; 数据输出模块,用于输出所述数据结构。
7.如权利要求6所述的装置,其特征在于,所述数据解析模块包括: 递归读取单元,用于根据protobuf的语言库中提供的应用程序编程接口,将预定好的数据结构解析成语言能够解析的数据结构,以递归地读取到所述二进制数据对应的proto文件中的原始数据。
8.如权利要求6所述的装置,其特征在于,所述数据输出模块包括: 数据存储单元,用于将所述数据结构存储到指定的数据库表中;或者 生成输出单元,用于将所述数据结构生成指定的图表格式的数据,并进行输出。
9.如权利要求6-8任一项所述的装置,其特征在于,还包括: 确定采集模块,用于在所述数据获取模块从预设的指定表中获取二进制数据之前,确定需要采集的数据结构,根据所述确定的数据结构采集得到原始数据; 数据序列化模块,用于通过protobuf库将采集的原始数据进行序列化得到二进制数据; 数据上报模块,用于将所述二进制数据上报到预设的指定表中。
10.如权利要求9所述的装置,其特征在于,还包括: 数据结构处理模块,用于在所述确定采集模块确定需要采集的数据结构之后,对所述确定的数据结构进行以下至少一项处理: 添加上报的数据结构;或者 删除上报的数据结构;或者 修改上报的数据结构。
【文档编号】G06F17/30GK104199879SQ201410414584
【公开日】2014年12月10日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】涂飞, 陈国乐 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1