数据分析的方法、装置及系统.pdf

上传人:000****221 文档编号:4033807 上传时间:2018-08-12 格式:PDF 页数:30 大小:1.17MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310413001.4

申请日:

2013.09.11

公开号:

CN104424339A

公开日:

2015.03.18

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20130911|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

腾讯科技(深圳)有限公司

发明人:

武磊; 李浩; 曾伟纪; 蔡馥晗

地址:

518000广东省深圳市福田区振兴路赛格科技园2栋东403室

优先权:

专利代理机构:

北京中博世达专利商标代理有限公司11274

代理人:

申健

PDF下载: PDF下载
内容摘要

本发明公开了一种数据分析的方法、装置及系统,涉及互联网技术领域,能够解决数据分析效率过低的问题。本发明的方法包括:从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;根据所述第二特征值列表分析得出指标量结果。本发明主要应用于联机分析处理OLAP系统的数据分析过程中。

权利要求书

权利要求书
1.  一种数据分析的方法,其特征在于,包括:
从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;
根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;
对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;
通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;
通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;
根据所述第二特征值列表分析得出指标量结果。

2.  根据权利要求1所述数据分析的方法,其特征在于,在所述根据预设维度中的属性值对读取的流水数据进行归一化排序的步骤之前,所述方法进一步包括:
对读取的流水数据进行合法性验证。

3.  根据权利要求1所述数据分析的方法,其特征在于,所述根据预设维度中的属性值对读取的流水数据进行归一化排序的步骤,包括:
将所述预设维度中属性值相同的多条流水数据进行相邻排序。

4.  根据权利要求3所述数据分析的方法,其特征在于,所述对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表的步骤,包括:
针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目,其中所述维度组合由至少一个非预设维度组成;
将对应一条流水数据的至少一条属性值条目进行相邻排序;
所述根据至少一个维度组合分别提取至少一条属性值条目的步骤,包括:
针对每一个维度组合,从所述流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值;
将所述流水数据的预设维度属性值、所述维度组合的序号以及所述至少一个属性值组合,获得一条属性值条目。

5.  根据权利要求4所述数据分析的方法,其特征在于,所述通过映射运算 对所述属性值条目列表进行去重计算,得到第一特征值列表的步骤,包括:
在所述属性值条目列表中,顺序读取每一条属性值条目的预设维度属性值;
将读取的预设维度属性值与预设的第一属性值变量进行比对;
若所述比对结果为相同,则将对应所述预设维度属性值的属性值条目写入到当前的第一特征值子列表中;
若所述比对结果为不同,则将对应所述预设维度属性值的属性值条目写入到新的第一特征值子列表中,并将所述预设维度属性值写入到第一属性值变量中;
针对每个第一特征值子列表,对其中的属性值条目顺序进行遍历,删除重复的属性值条目;
将删除重复属性值条目后的多个第一特征值子列表进行整合,获得所述第一特征值列表。

6.  根据权利要求5所述数据分析的方法,其特征在于,所述通过归纳运算对所述第一特征值列表进行累加计算,得到第二特征值列表的步骤,包括:
对所述属性值条目列表中的属性值条目进行遍历,删除重复的属性值条目;
在每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第二特征值列表。

7.  根据权利要求6所述数据分析的方法,其特征在于,所述根据所述第二特征值列表分析得出指标量结果的步骤,包括:
根据所述维度组合的序号和/或至少一个维度组合中每个维度的属性值,从所述第二特征值列表中分析得出所述指标量结果。

8.  根据权利要求1所述数据分析的方法,其特征在于,当计算多个预设指标量时,所述方法还包括:
根据下述至少一种指标量参数对所述多个预设指标量进行优先级排序:计算量、重要程度或紧急程度;
根据优先级从高到低的顺序依次计算多个预设指标量。

9.  根据权利要求1所述数据分析的方法,其特征在于,当计算出现故障时,所述方法还包括:
对当前指标量的计算资源进行释放。

10.  一种数据分析的装置,其特征在于,包括:
数据读取单元,用于从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;
数据排序单元,用于根据预设维度(View)中的属性值对所述数据读取单元读取的流水数据进行归一化排序;
属性提取单元,用于对所述数据排序单元归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;
属性去重单元,用于通过映射(Mapper)运算对所述属性提取单元提取的所述属性值条目列表进行去重计算,得到第一特征值列表;
属性累加单元,用于通过归纳(Reducer)运算对所述属性去重单元计算的所述第一特征值列表进行累加计算,得到第二特征值列表;
结果分析单元,用于根据所述属性累加单元计算的所述第二特征值列表分析得出指标量结果。

11.  根据权利要求10所述数据分析的装置,其特征在于,所述装置还包括:
数据验证单元,用于在所述数据排序单元进行归一化排序前,对所述数据读取单元读取的流水数据进行合法性验证。

12.  根据权利要求10所述数据分析的装置,其特征在于,所述数据排序单元用于将所述预设维度中属性值相同的多条流水数据进行相邻排序。

13.  根据权利要求12所述数据分析的装置,其特征在于,所述属性提取单元,包括:
提取子单元,用于针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目,其中所述维度组合由至少一个非预设维度组成;
排序子单元,用于将所述提取子单元提取的、对应一条流水数据的至少一条属性值条目进行相邻排序;
所述提取子单元用于针对每一个维度组合,从所述流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值,将所述流水数据的预设维度属性值、所述维度组合的序号以及所述至少一个属性值组合, 获得一条属性值条目。

14.  根据权利要求13所述数据分析的装置,其特征在于,所述属性去重单元,包括:
读取子单元,用于在所述属性值条目列表中,顺序读取每一条属性值条目的预设维度属性值;
比对子单元,用于将所述读取子单元读取的预设维度属性值与预设的第一属性值变量进行比对;
写入子单元,用于当所述比对子单元的比对结果为相同时,将对应所述预设维度属性值的属性值条目写入到当前的第一特征值子列表中;
所述写入子单元还用于当所述比对子单元的比对结果为不同时,将对应所述预设维度属性值的属性值条目写入到新的第一特征值子列表中,并将所述预设维度属性值写入到第一属性值变量中;
第一删除子单元,用于针对每个第一特征值子列表,对所述读取子单元读取的属性值条目顺序进行遍历,删除重复的属性值条目;
整合子单元,用于将所述第一删除子单元删除重复属性值条目后的多个第一特征值子列表进行整合,获得所述第一特征值列表。

15.  根据权利要求14所述数据分析的装置,其特征在于,所述属性累加单元,包括:
第二删除子单元,用于对所述属性值条目列表中的属性值条目进行遍历,删除重复的属性值条目;
计数子单元,用于在所述第二删除子单元每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第二特征值列表。

16.  根据权利要求15所述数据分析的装置,其特征在于,所述结果分析单元用于根据所述维度组合的序号和/或至少一个维度组合中每个维度的属性值,从所述第二特征值列表中分析得出所述指标量结果。

17.  一种数据分析的系统,其特征在于,所述系统包括控制服务器和计算服务器,其中,
所述控制服务器,用于对多项数据分析任务进行优先级排序,向所述计算服务器提交数据分析任务,接收并记录所述计算服务器的数据分析状态;
所述计算服务器,用于根据所述控制服务器提交的数据分析任务从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表,通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表,通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表,根据所述第二特征值列表分析得出指标量结果。

18.  根据权利要求17所述数据分析的系统,其特征在于,所述计算服务器为分布式计算服务器集群,所述分布式计算服务器集群包含至少两个子计算服务器;
所述控制服务器还用于将数据分析任务拆分为至少两个子任务,将所述至少两个子任务分别分配给所述至少两个子计算服务器。

说明书

说明书数据分析的方法、装置及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据分析的方法、装置及系统。
背景技术
随着社交网络(Social Networking Services,简称SNS)的飞速发展以及互联网用户的不断增多,网络侧产生的用户数据呈几何形态增长。基于用户数据的处理、分析过程对于网络运营商进行商业决策而言显得愈发重要。网络侧数据库对T数量级的用户数据进行分析,得出用户行为习惯、应用热度等有价值的参数。
在进行数据分析时,数据库根据运营商期望从用户数据的分析过程中得到的不同指标量,对成千上万条用户数据进行去重和累加计算。举例说明,图1中包含5条用户数据(或者称为5条流水数据),每一条流水数据用于记录用户(可以是同一用户,也可以是不同用户)的行为数据。所谓去重计算是指删除对应特定指标量的重复用户数据,例如在计算指标量“应用在线活跃人数”时,用户身份标识码(User Identity,简称用户ID)为1001的用户先后两次访问了应用ID为1的应用,那么在计算应用1的在线活跃人数时,需要将用户1001两次访问应用1所产生的2条用户数据进行去重,仅保留1条用户1001产生的用户数据,即将应用1的访问“人次”量调整为访问“人数”量,以避免同一用户ID产生的多条用户数据对指标量结果的误差影响。所谓累加计算是指将多条同类用户数据进行加和,得到对应的指标量结果,例如在计算指标量“应用在线活跃人数”时,用户1002和用户1003分别访问了应用2,则在计算应用2的在线活跃人数时,将两个不同用户ID产生的2条用户数据进行累加,得到应用2的在线活跃人数为2人。由此可以看出,累加计算用于得到指标量结果,而去重计算则用于对累加计算所基于的用户数据进行误差剔除。在进行用户数据分析时,目前业界普遍的实现方式为,通过一次mapper&reducer过程对原始用户数据进行去重计算,然后通过二次mapper&reducer过程对去重后的用户数 据进行累加计算,从而得到相应的指标量结果。
现有的数据分析过程需要进行两次mapper&reducer计算,过多的mapper&reducer级联会耗费大量的数据库计算资源,特别是当需要计算的指标量很多时,数据库的计算量将会无限增大,导致数据库系统出现计算瓶颈。
随着大数据时代的来临,目前还出现了一种立方体数据结构,例如联机分析处理(On-Line Analytical Processing,简称OLAP)系统。该数据结构可以保存多维数据,每一条数据都可以通过不同的维度进行描述,在进行数据分析时从不同的维度(View)或维度组合对用户数据进行分析、查询。一种典型的立方体数据结构如图2所示,保存的数据具有“商品类别”、“地域”和“时间”三个维度的属性,该数据结构中的每一条数据都可以通过不同的维度分别进行描述。由于该种数据结构形似立方体,因此得名立方体数据结构。
基于立方体数据结构的数据分析具有一个显著的特点,即可以从多个维度或维度组合对一个指标量进行分析。例如在图2中,可以从“商品类别”和“地域”两个分别维度筛选符合指标量条件的数据,也可以从“商品类别”+“地域”以及“商品类别”+“时间”两个维度组合分别维度筛选符合指标量条件的数据。该数据结构中的每一条数据都可以通过不同的维度进行描述。
在现有的数据分析过程中发明人发现:对于立方体数据结构而言,实际应用中涉及数据分析的维度数量从几十个到几百上千个不等,据此进行排列组合得到的维度组合数量更加庞大。在根据数量如此众多的维度或维度组合对指标量进行计算时,需要基于每个维度或维度组合独立进行数据分析,分别进行数据加载、去重计算、累加计算等运算过程,由此产生了不可估量的数据库运算量。这些独立的运算过程如果串行执行,则所耗费的时间远远超出运营商能够接受的范围;如果并行执行,则数据库负担过重,容易出现计算瓶颈。
综上所述,现有的数据分析方式计算量过大,会耗费较多的时间和计算资源,数据处理效率过低。
发明内容
本发明实施例提供一种数据分析的方法、装置及系统,能够解决数据分析 效率过低的问题。
一方面,本发明实施例提供了一种数据分析的方法,包括:
从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;
根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;
对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;
通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;
通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;
根据所述第二特征值列表分析得出指标量结果。
另一方面,本发明实施例还提供了一种数据分析的装置,包括:
数据读取单元,用于从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;
数据排序单元,用于根据预设维度(View)中的属性值对所述数据读取单元读取的流水数据进行归一化排序;
属性提取单元,用于对所述数据排序单元归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;
属性去重单元,用于通过映射(Mapper)运算对所述属性提取单元提取的所述属性值条目列表进行去重计算,得到第一特征值列表;
属性累加单元,用于通过归纳(Reducer)运算对所述属性去重单元计算的所述第一特征值列表进行累加计算,得到第二特征值列表;
结果分析单元,用于根据所述属性累加单元计算的所述第二特征值列表分析得出指标量结果。
再一方面,本发明实施例还提供了一种数据分析的系统,所述系统包括控制服务器和计算服务器,其中,
所述控制服务器,用于对多项数据分析任务进行优先级排序,向所述计算服务器提交数据分析任务,接收并记录所述计算服务器的数据分析状态;
所述计算服务器,用于根据所述控制服务器提交的数据分析任务从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表,通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表,通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表,根据所述第二特征值列表分析得出指标量结果。
本发明实施例提供一种数据分析的方法、装置及系统,能够在进行数据分析之前对原始流水数据进行预处理操作,以减少后续分析过程中涉及的数据量和计算量。具体的,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。然后基于预处理后的属性值条目列表,通过一次mapper&reducer计算进行去重和累加运算,并分析得出指标量结果。与现有技术中需要通过两次mapper&reducer计算得到指标量结果相比,可以节省数据分析的计算量,对于大数据场景而言,能够避免数据库系统出现计算瓶颈同时提高系统的数据分析效率。
此外,本发明实施例提供的数据分析的方法、装置及系统,由于在数据分析前对流水数据进行了预处理操作,按照预设维度中的属性值对读取的流水数据进行归一化排序,因此可以使相同预设维度属性值的多条流水数据集中排序,对于立方体数据结构而言,在进行去重累加计算时,可以同时从多个维度或维度组合上对数据进行分析。与现有技术相比,当运营商需要从几十甚至几百个维度或维度组合上计算一个指标量结果时,能够一次性完成多个维度或维度组合上的数据分析,避免多次读取流水数据对时间和系统计算资源的占用,应用到立方体数据结构中时能够极大提高系统的数据分析效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中包含用户数据的存储表;
图2为现有技术中立方体数据存储结构的示意图;
图3为本发明实施例中数据分析的系统的架构示意图;
图4为本发明实施例中数据分析的方法的流程图;
图5为本发明实施例中另一个数据分析的方法的流程图;
图6为本实施例中第一个数据分析的装置的结构示意图;
图7为本实施例中第二个数据分析的装置的结构示意图;
图8为本实施例中第三个数据分析的装置的结构示意图;
图9为本发明实施例中另一个数据分析的系统的架构示意图。
具体实施方式
下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于对下述各实施例进行介绍,首先对本发明实施例所涉及的网络架构进行简要介绍。
如图3所示,数据库的网络架构包括控制服务器31和计算服务器32。其中,对于分布式数据系统而言,所述计算服务器32还可以是由多个子服务器组成的计算服务器集群。在图3中,控制服务器31用于对流水队列进行扫描,从队首依次读取数据分析任务,然后将获取的数据分析任务提交给计算服务器32。计算服务器32接收到数据分析任务后,获取对应该数据分析任务的流水文件,所述流水文件中包含多条用户上网行为产生的流水数据。计算服务器32根据这些流水数据进行预处理操作、去重计算以及累加计算,得到相应的指标量结果,然后向控制服务器31返回用于标识处理成功的数据分析状态标识;如果计算失败,未得到相应的指标量结果。则计算服务器32向控制服务器31返回用于标 识处理失败的数据分析状态标识。控制服务器31接收到计算服务器32发送的数据分析状态标识后,从流水队列中读取下一个数据分析任务提交给计算服务器32。
下面,基于图3所示的系统,对本实施例中数据分析的方法进行说明,所述方法应用于计算服务器32侧,如图4所示,所述方法包括:
401、从流水数据集合中逐条读取流水数据。
本实施例中,所述流水数据集合即为前述流水文件。通常,对应不同的预设指标量计算服务器会基于不同的流水文件进行计算。所述预设指标量是由运营商提供给数据分析系统的、用于表达运营商数据分析诉求的变量,例如可以是“当前在线活跃人数”、“平均用户在线时长”等变量。计算服务器按照运营商的需求,根据不同的流水文件计算不同的指标量,得到相应的指标量结果,例如“当前在线活跃人数”为120000人,“平均用户在线时长”为2小时等。在实际应用中,计算服务器可以根据一个流水文件计算一个指标量,也可以根据一个流水文件计算多个指标量,当计算完一个指标量后,计算服务器接收控制服务器提交的下一个数据分析任务,基于相同或不同的流水文件对下一个指标量进行计算。
一条流水数据用于描述一个特定用户的一次上网操作行为,用户的操作行为通常包含多个不同角度上的描述信息(后续称为属性值),因此一条流水数据通常包含多个维度的属性值。事例性的,如表1所示:
用户ID应用ID用户性别用户年龄操作起始时刻A102312:37B311520:04
表1
表1中包含两条流水数据,每一条流水数据都有“用户ID”、“应用ID”、“用户性别”、“用户年龄”以及“操作起始时刻”五个维度的属性值。其中,“用户ID”可以为QQ号/手机号/邮箱等能够对用户进行唯一标识的数据信息;“应用 ID”为对不同应用进行唯一标识的数据信息,类似的,流水数据中还可以包含“SNS网站ID”;“用户性别”维度中,通过字节“1”代表男性,通过字节“0”代表女性。
对于关系型数据库,服务器通过多张关系型数据表将流水数据的多个维度的属性值进行关联保存,例如建立一张维度1和维度2的关系表,然后建立一张维度2和维度3的关系表。对于立方体数据库,如图2所示,服务器从多个维度对流水数据进行保存。不论关系型数据库还是立方体数据库,均涉及多维度的流水数据。
流水文件中通常包含有成千上万条流水数据,例如,计算服务器获取某SNS网站当前在线用户的行为数据,若当前时刻上有8600个用户同时在线,则计算服务器能够获取到8600条流水数据。再例如,计算服务器获取某SNS游戏应用在某一特定时间段内进行游戏的用户的行为数据,若在该特定时间段内有5400人次进行过该游戏,则计算服务器能够获取到5400条流水数据。与上一例不同的时,一般情况下通常会存在同一个用户在不同时刻上多次进行某一游戏的情况,该5400条流水数据包含同一用户在不同时刻上多次上网操作产生的多条流水数据,如前所述,一条流水数据用于描述一个特定用户的一次上网操作行为,因此在计算某些指标量例如某时间段的在线活跃人数(而非某时间段的在线活跃人次)时,需要对部分流水数据进行去重处理,否则计算出的指标量结果会产生误差。
402、根据预设维度中的属性值对读取的流水数据进行归一化排序。
为节省后续的计算量,在对流水数据进行去重和累加计算前,服务器对流水数据进行预处理操作。所述预处理操作包括对读取的流水数据进行归一化排序,即根据预设维度中的属性值将预设为度属性值相同的流水数据进行相邻排序。
所述预设维度为流水数据中的某个维度,对于不同的指标量,计算服务器选取不同的维度作为预设维度。例如,对于计算指标量“当前在线活跃人数”,计算服务器选择维度“用户ID”作为预设维度。具体的,计算服务器按照操作时间顺序依次读取的三个用户的7条流水数据如表2所示:
用户ID应用ID用户性别用户年龄A1023B2114B3114C3051A1023B1114C3051
表2
计算服务器以维度“用户ID”中的属性值对表2所示的流水数据进行归一化排序后产生的流水数据列表如表3所示:
用户ID应用ID用户性别用户年龄A1023A1023B2114B3114B1114C3051C3051
表3
403、对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。
进行归一化排序后,计算服务器依次从每一条流水数据中提取一条属性值条目,获得包含多条属性值条目的属性值条目列表。以表3中第一条流水数据为例,计算服务器提取的属性值条目为“A,1,0,23”,即依次提取用户A对应 “用户ID”、“应用ID”、“用户性别”以及“用户年龄”四个维度的属性值。对于表3中的7条流水数据,计算服务器获得的属性值条目列表如表4所示:
A,1,0,23A,1,0,23B,2,1,14B,3,1,14B,1,1,14C,3,0,51C,3,0,51
表4
404、通过映射运算对属性值条目列表进行去重计算,得到第一特征值列表。
通过表4可以看出,在计算指标量“当前在线活跃人数”时存在重复的属性条目,例如,第一条属性条目和第二条属性条目为用户A在不同时间进行应用1时产生的操作行为,因此需要对此类相同的属性条目进行去重。去重后得到的第一特征值列表如表5所示:
A,1,0,23B,2,1,14B,3,1,14B,1,1,14C,3,0,51
表5
计算服务器根据不同指标量的去重要求对属性条目进行去重。例如,对于表5而言,指标量为每个应用的当前在线活跃人数,因此需要将完全相同的属性条目进行去重。如果指标量为整网的当前在线活跃人数,则对于表5而言需去重的属性条目还包括用户B产生的3条属性条目。本实施例后续以指标量为 每个应用的当前在线活跃人数为例进行说明。
405、通过归纳运算对第一特征值列表进行累加计算,得到第二特征值列表。
对于表5所示的第一特征值列表,计算服务器对相同的应用ID进行累加,得到如表6所示的第二特征值列表:
应用ID在线活跃人数122132
表6
其中,应用1的在线活跃人数由表5中第1行属性条目和第4行属性条目的累加得到,应用3的在线活跃人数由表5中第3行属性条目和第5行属性条目的累加得到。
406、根据第二特征值列表分析得出预设指标量结果。
计算服务器根据表6所示的第二特征值列表可以分析得出每个应用的当前在线人数,分别得到如下表7至表9所示的预设指标量结果:
应用ID在线活跃人数12
表7
应用ID在线活跃人数21
表8
应用ID在线活跃人数32
表9
本实施例提供的数据分析的方法,能够在去重和累加计算之前,对流水数据进行归一化排序,根据归一化排序后的流水数据通过一次mapper运算进行去重计算,然后通过一次reducer运算进行累加计算,由此通过一次mapper&reducer运算得到指标量结果。与现有技术中,通过一次mapper&reducer运算进行去重计算、通过一次mapper&reducer运算进行累加计算相比,可以减少mapper&reducer运算的级联次数时,大幅降低计算服务器的计算量,提升指标量的运算速度,提高数据分析系统的运算效率,更加适用于例如立方体数据库等大数据场景。
作为对图4所示方法的详细说明以及进一步扩展,本实施例还提供了一种数据分析的方法,如图5所示,所述方法包括:
501、通过人机交互界面获取运营商提供的预设指标量。
数据分析系统接收运营商输入的预设指标量,本实施例中以计算指标量“当前应用在线活跃人数”为例进行说明。
可选的,数据分析系统可以接收一个预设指标量,也可以接收多个预设指标量。当接收到多个预设指标量时,将多个预设指标量进行优先级排序,然后按照优先级由高到低的顺序将多个预设指标量依次进行计算。
在进行优先级排序时,可以但不限于根据下述至少一种指标量参数对多个预设指标量进行优先级排序:预设指标量涉及的计算量、预设指标量对于用户或运营商的重要程度或者预设指标量对于用户或运营商的紧急程度。
502、从流水队列中获取对应预设指标量的流水文件。
在确定需要计算的预设指标量后,从流水队列中调取对应预设指标量的流水文件。
步骤501中在对多个预设指标量进行优先级排序后,根据该排序顺序对各个预设指标量对应的流水文件进行入队,以便在步骤502中可以从流水队列中调取对应当前预设指标量的流水文件。
503、从流水数据集合中逐条读取流水数据。
以计算预设指标量“当前应用在线活跃人数”为例,计算服务器从对应的流水文件中的第一条流水数据开始,依次读取每一条流水数据。
504、对读取的流水数据进行合法性验证。
作为本实施例的一个可选方案,计算服务器在对流水数据进行归一化排序之前,即在执行步骤504之前,可以对流水数据的合法性进行验证。所谓合法流水数据是指可以真实反映用户操作行为的数据,对流水数据进行合法性验证的目的在于,将例如“水军”恶意刷机产生的流水数据剔除,由此保证流水数据的真实性,进而保证预设指标量结果的准确性。
505、将预设维度中属性值相同的多条流水数据进行相邻排序。
计算服务器按照“用户ID”维度的属性值,将表10所示的流水数据进行相邻排序,排序后的流水数据如表11所示,其中表10和表11中的第一行为维度序号:
1234用户ID应用ID用户性别用户年龄A1118A2118B3020A3118A1118
表10
1234用户ID应用ID用户性别用户年龄A1118A2118A3118A1118
B3020
表11
506、针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目。
作为本实施例的一个优选方案,计算服务器可以在一次计算过程中对多个维度组合同时进行计算,其中,每个维度组合由至少一个非预设维度组成。
通常在计算某指标量时,可以从多个维度或多个维度的组合上对该指标量进行计算。例如,对于表11所示的流水数据,可以从“应用ID”这个维度计算指标量“当前应用在线活跃人数”,也可以从“应用ID”+“用户性别”这个维度组合计算指标量“当前应用在线活跃人数”。在现有技术中,数据分析系统对不同维度组合分别进行计算,每次计算时都需要读取流水数据,并单独进行mapper&reducer运算,由此产生的计算量难以估量,对于大数据场景而言,极易产生系统瓶颈。本实施例中数据分析系统可以在一次运算过程中对对应一个指标量的成百上千个维度组合同时进行运算,只需读取一次流水数据,能够大大减少系统的计算量。
具体的,以计算服务器从“应用ID”和“应用ID”+“用户性别”这2个维度组合计算指标量“当前应用在线活跃人数”为例:
计算服务器针对每一个维度组合,从流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值。
例如对于表11中的第一条流水数据,计算服务器分别提取维度组合“应用ID”对应的1个属性值“1”(即应用ID的属性值)和维度组合“应用ID”+“用户性别”对应的2个属性值“1,1”(即应用ID的属性值和用户性别的属性值)。
然后,计算服务器将流水数据的预设维度属性值、维度组合的序号以及至少一个属性值组合,获得一条属性值条目。
对于表11中的第一条流水数据,该流水数据对应的预设维度属性值为“A”,所谓维度组合的序号用于在计算多个维度组合时,对维度组合进行区分。维度 组合“应用ID”的序号为“11”,维度组合“应用ID”+“用户性别”的序号为“13”,针对维度组合“应用ID”得到的属性值条目如表12第一行所示,针对维度组合“应用ID”+“用户性别”得到的属性值条目如表12第二行所示:
A,11,1A13,1,1
表12
其中,第一行中的“1”为对应维度组合“应用ID”的属性值1,第二行中的“1,1”为分别对应维度组合“应用ID”+“用户性别”的属性值1和1。由此可见,计算服务器可以针对一条流水数据,生成对应多个维度组合的多条属性值条目,由此实现多个维度组合的同时计算。
针对表11中的流水数据,计算服务器获得的属性值条目列表如表13所示:
A,11,1A,11,2A,11,3A,11,1B,11,3A,13,1,1A,13,2,1A,13,3,1A,13,1,1B,13,3,0
表13
其中,前5条属性值条目为对应维度组合“应用ID”的属性值条目,后5条属性值条目为对应维度组合“应用ID”+“用户性别”的属性值条目。
507、将对应一条流水数据的至少一条属性值条目进行相邻排序。
与图4中步骤402所述的归一化排序类似,计算服务器根据维度“用户ID”的属性值对表13进行相邻排序,得到如表14所示的属性值条目列表:
A,11,1A,13,1,1A,11,2A,13,2,1A,11,3A,13,3,1A,11,1A,13,1,1B,11,3B,13,3,0
表14
作为本实施例的一个替换方案,在步骤506中,计算服务器对每一条流水数据对应的所有维度组合的属性值条目都进行获取后,再处理下一条流水数据,由此可以节省步骤507的排序操作。
在获得表14所示的属性值条目列表后,计算服务器通过标准字符转格式“key/titem”输出属性值条目,其中,将“用户ID”的属性值(即预设维度的属性值)赋值在“key”中,将剩余的维度组合序号、非预设维度属性值赋值在“item”中,所述“/t”为分隔符。
508、通过映射运算对属性值条目列表进行去重计算,得到第一特征值列表。
具体的:
508a、计算服务器在属性值条目列表中顺序读取每一条属性值条目的预设维度属性值。
例如从表14中第第一条属性值条目开始,依次读取维度“用户ID”的属性值:“A、A、A、A、A、A、A、A、B、B”。
计算服务器预先设置第一属性值变量last_key,在读取第一条属性值条目时,将该条属性值条目的属性值“A”赋值于last_key中。
508b、将读取的预设维度属性值与预设的第一属性值变量进行比对。
在读取后续属性值条目时,计算服务器将读取的属性值与last_key中的变量值进行比对,如果两者相同,则表示前后两条属性值条目由同一用户产生,执行步骤508c;如果两者不同,则表示前后两条属性值条目由不同用户产生,执行步骤508d。
508c、将对应预设维度属性值的属性值条目写入到当前的第一特征值子列表中。
所述第一特征值子列表实际上为一个特定用户的第一特征值列表,步骤508b和步骤508c的目的在于将同一个用户所有的属性值条目划分到一个子列表中。
508d、将对应预设维度属性值的属性值条目写入到新的第一特征值子列表中,并将预设维度属性值写入到第一属性值变量中。
例如当读取到表14中的第9行属性值条目时,该条目的维度“用户ID”的属性值为“B”,与last_key中的变量值“A”不相同。由于事先已根据维度“用户ID”的属性值对属性值条目列表进行过相邻排序,因此计算服务器判断用户“A”的所有属性值条目读取完毕,为用户“B”的属性值条目建立一个新的第一特征值子列表,并将last_key赋值为“B”,以便后续继续进行比对。
步骤508a至步骤508d的目的实质上在于按照维度“用户ID”的属性值将属性值条目列表划分为多个子列表。对于表14所示的属性值条目列表,划分后对应用户“A”和用户“B”的子列表分别为表15和表16所示:
keyvalue11,1113,1,1111,21
13,2,1111,3113,3,1111,1113,1,11
表15
keyvalue11,3113,3,01
表16
其中,将属性值条目中维度“用户ID”的属性值去掉,作为“key”值,并增加人数“value”值,每条属性值条目代表一个人,因此将所有属性值条目的“value”值均初始设置为“1”。
508e、针对每个第一特征值子列表,对其中的属性值条目顺序进行遍历,删除重复的属性值条目。
去重过程也可以采用设置变量last_key的方式实现,在同一个子列表(即同一用户的所有属性值条目)中,将当前遍历到的属性值条目中的维度“应用ID”的属性值赋值到last_key,在遍历到下一条属性值条目时,如果下一条属性值条目中的维度“应用ID”的属性值与last_key中的变量相同,则说明这两条属性值条目重复了,计算服务器将在后一条属性值条目删除。
在表15所示的用户A的子列表中,第1条属性值条目与第7条属性值条目重复、第2条属性值条目与第8条属性值条目重复,因此删除第7和第8条属性值条目,得到去重后的子列表如表17所示:
keyvalue
11,1113,1,1111,2113,2,1111,3113,3,11
表17
用户B的子列表中不存在重复的属性值条目,因此去重后仍为图16所示的子列表。
508f、将删除重复属性值条目后的多个第一特征值子列表进行整合,获得第一特征值列表。
计算服务器将表17和表18进行整合,以便后续进行累加计算所用。整合后的第一特征值列表如表18所示:
keyvalue11,1113,1,1111,2113,2,1111,3113,3,1111,3113,3,01
表18
其中,第1条至第6条属性值条目为用户A的属性值条目,第7条和第8条属性值条目为用户B的属性值条目。
计算服务器通过标准字符转格式“key/titem”输出属性值条目,其中,将表18中key列的属性值赋在“key”中,将“value”值“1”赋在“item”中,所述“/t”为分隔符。
509、通过归纳运算对第一特征值列表进行累加计算,得到第二特征值列表。
具体的;
509a、对属性值条目列表中的属性值条目进行遍历,删除重复的属性值条目。
类似子步骤508e,计算服务器可以采用设置变量last_key的方式,删除重复的属性值条目。需要说明的是,本步骤中删除重复的属性值条目的目的在于对相同属性值条目进行累加计算,而非进行去重计算。具体的,计算服务器根据表18中“key”列的维度“应用ID”对last_key进行赋值,遍历并删除重复的属性值条目。
509b、在每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第二特征值列表。
具体的,对于表18中第7行的属性值条目,由于与第5条属性值条目相同,因此计算服务器将其删除,并将第5条属性值条目的“value”值加1。最终得到累加计算后的第二特征值列表如表19所示:
keyvalue11,1113,1,1111,2113,2,1111,3213,3,1113,3,01
表19
510、根据维度组合的序号和/或至少一个维度组合中每个维度的属性值,从第二特征值列表中分析得出指标量结果。
具体的,以根据的维度组合“应用ID”和维度“应用ID”的属性值分析指标量结果为例,计算服务器得出应用1至应用3的在线活跃人数依次为1,1和2。
在本实施例的另一个优选方案中,计算服务器还可以在计算失败或系统死机时释放当前任务的计算资源,以便分配给其他指标量的计算。
在本实施例的再一个优选方案中,当计算服务器为计算服务器集群时,控制服务器可以将一个数据分析任务拆分为多个子任务,然后将多个子任务分别分配给计算服务器中的不同子服务器,进一步提高数据计算的速度。
本实施例提供的数据分析的方法,能够通过一次mapper&reducer运算,对流水数据进行去重和累加计算,可以减少数据计算的时间和资源消耗,提高数据分析系统的处理效率。
此外,本实施例提供的数据分析的方法,还能够通过一次mapper&reducer运算对对应同一指标量的多个维度组合同时进行计算,可以避免现有技术中依次对每个维度组合进行计算造成的流水数据重复读取,能够大大减少数据分析的耗时以及涉及的处理资源。
参考图4或图5所示的方法,本实施例还提供了一种数据分析的装置,所述装置位于图3中所示的计算服务器32中,用于对图4或图5所示的方法进行实现。如图6所示,所述装置包括:数据读取单元61、数据排序单元62、属性提取单元63、属性去重单元64、属性累加单元65以及结果分析单元66,其中
所述数据读取单元61,用于从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;
所述数据排序单元62,用于根据预设维度(View)中的属性值对所述数据读取单元61读取的流水数据进行归一化排序;
所述属性提取单元63,用于对所述数据排序单元62归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;
所述属性去重单元64,用于通过映射(Mapper)运算对所述属性提取单元63提取的所述属性值条目列表进行去重计算,得到第一特征值列表;
所述属性累加单元65,用于通过归纳(Reducer)运算对所述属性去重单元64计算的所述第一特征值列表进行累加计算,得到第二特征值列表;
所述结果分析单元66,用于根据所述属性累加单元65计算的所述第二特征值列表分析得出指标量结果。
进一步的,如图7所示,所述装置还包括:
数据验证单元71,用于在所述数据排序单元62进行归一化排序前,对所述数据读取单元61读取的流水数据进行合法性验证。
进一步的,所述数据排序单元62用于将所述预设维度中属性值相同的多条流水数据进行相邻排序。
进一步的,如图8所示,所述属性提取单元63,包括:
提取子单元81,用于针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目,其中所述维度组合由至少一个非预设维度组成;
排序子单元82,用于将所述提取子单元81提取的、对应一条流水数据的至少一条属性值条目进行相邻排序;
所述提取子单元81用于针对每一个维度组合,从所述流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值,将所述流水数据的预设维度属性值、所述维度组合的序号以及所述至少一个属性值组合,获得一条属性值条目。
进一步的,如图8所示,所述属性去重单元64,包括:
读取子单元83,用于在所述属性值条目列表中,顺序读取每一条属性值条目的预设维度属性值;
比对子单元84,用于将所述读取子单元83读取的预设维度属性值与预设的第一属性值变量进行比对;
写入子单元85,用于当所述比对子单元84的比对结果为相同时,将对应所述预设维度属性值的属性值条目写入到当前的第一特征值子列表中;
所述写入子单元85还用于当所述比对子单元84的比对结果为不同时,将对应所述预设维度属性值的属性值条目写入到新的第一特征值子列表中,并将所述预设维度属性值写入到第一属性值变量中;
第一删除子单元86,用于针对每个第一特征值子列表,对所述读取子单元83读取的属性值条目顺序进行遍历,删除重复的属性值条目;
整合子单元87,用于将所述第一删除子单元86删除重复属性值条目后的多个第一特征值子列表进行整合,获得所述第一特征值列表。
进一步的,如图8所示,所述属性累加单元65,包括:
第二删除子单元88,用于对所述属性值条目列表中的属性值条目进行遍历,删除重复的属性值条目;
计数子单元89,用于在所述第二删除子单元88每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第二特征值列表。
进一步的,所述结果分析单元66用于根据所述维度组合的序号和/或至少一个维度组合中每个维度的属性值,从所述第二特征值列表中分析得出所述指标量结果。
本发明实施例提供一种数据分析的装置,能够在进行数据分析之前对原始流水数据进行预处理操作,以减少后续分析过程中涉及的数据量和计算量。具体的,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。然后基于预处理后的属性值条目列表,通过一次mapper&reducer计算进行去重和累加运算,并分析得出指标量结果。与现有技术中需要通过两次mapper&reducer计算得到指标量结果相比,可以节省数据分析的计算量,对于大数据场景而言,能够避免数据库系统出现计算瓶颈同时提高系统的数据分析效率。
此外,本发明实施例提供的数据分析的装置,由于在数据分析前对流水数据进行了预处理操作,按照预设维度中的属性值对读取的流水数据进行归一化排序,因此可以使相同预设维度属性值的多条流水数据集中排序,对于立方体数据结构而言,在进行去重累加计算时,可以同时从多个维度或维度组合上对数据进行分析。与现有技术相比,当运营商需要从几十甚至几百个维度或维度组合上计算一个指标量结果时,能够一次性完成多个维度或维度组合上的数据分析,避免多次读取流水数据对时间和系统计算资源的占用,应用到立方体数 据结构中时能够极大提高系统的数据分析效率。
进一步的,本实施例还提供了一种数据分析的系统,如图9所示,该系统包括控制服务器91和计算服务器92,其中,
所述控制服务器91,用于对多项数据分析任务进行优先级排序,向所述计算服务器92提交数据分析任务,接收并记录所述计算服务器92的数据分析状态;
所述计算服务器92,用于根据所述控制服务器91提交的数据分析任务从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表,通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表,通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表,根据所述第二特征值列表分析得出指标量结果。
进一步的,所述计算服务器92为分布式计算服务器92集群,所述分布式计算服务器92集群包含至少两个子计算服务器92;
所述控制服务器还用于将数据分析任务拆分为至少两个子任务,将所述至少两个子任务分别分配给所述至少两个子计算服务器92。
本发明实施例提供一种数据分析的系统,能够在进行数据分析之前对原始流水数据进行预处理操作,以减少后续分析过程中涉及的数据量和计算量。具体的,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。然后基于预处理后的属性值条目列表,通过一次mapper&reducer计算进行去重和累加运算,并分析得出指标量结果。与现有技术中需要通过两次mapper&reducer计算得到指标量结果相比,可以节省数据分析的计算量,对于大数据场景而言,能够避免数据库系统出现计算瓶颈同时提高系统的数据分析效率。
此外,本发明实施例提供的数据分析的系统,由于在数据分析前对流水数据进行了预处理操作,按照预设维度中的属性值对读取的流水数据进行归一化排序,因此可以使相同预设维度属性值的多条流水数据集中排序,对于立方体 数据结构而言,在进行去重累加计算时,可以同时从多个维度或维度组合上对数据进行分析。与现有技术相比,当运营商需要从几十甚至几百个维度或维度组合上计算一个指标量结果时,能够一次性完成多个维度或维度组合上的数据分析,避免多次读取流水数据对时间和系统计算资源的占用,应用到立方体数据结构中时能够极大提高系统的数据分析效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

数据分析的方法、装置及系统.pdf_第1页
第1页 / 共30页
数据分析的方法、装置及系统.pdf_第2页
第2页 / 共30页
数据分析的方法、装置及系统.pdf_第3页
第3页 / 共30页
点击查看更多>>
资源描述

《数据分析的方法、装置及系统.pdf》由会员分享,可在线阅读,更多相关《数据分析的方法、装置及系统.pdf(30页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310413001.4(22)申请日 2013.09.11G06F 17/30(2006.01)(71)申请人腾讯科技(深圳)有限公司地址 518000 广东省深圳市福田区振兴路赛格科技园2栋东403室(72)发明人武磊 李浩 曾伟纪 蔡馥晗(74)专利代理机构北京中博世达专利商标代理有限公司 11274代理人申健(54) 发明名称数据分析的方法、装置及系统(57) 摘要本发明公开了一种数据分析的方法、装置及系统,涉及互联网技术领域,能够解决数据分析效率过低的问题。本发明的方法包括:从流水数据集合中逐条读取流水数据,所述流水数据包括。

2、多个维度的属性值;根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;根据所述第二特征值列表分析得出指标量结果。本发明主要应用于联机分析处理OLAP系统的数据分析过程中。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书18页 附图8页(10)申请公布号 CN 104424339 A(43)申请公布日 2。

3、015.03.18CN 104424339 A1/3页21.一种数据分析的方法,其特征在于,包括:从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;根据所述第二特征值列表分析得出指标量结果。2.根据权利要求1所述数据分析的方法,其特征在于,在所述根据预设维度中的属性值对读取的流水数据进。

4、行归一化排序的步骤之前,所述方法进一步包括:对读取的流水数据进行合法性验证。3.根据权利要求1所述数据分析的方法,其特征在于,所述根据预设维度中的属性值对读取的流水数据进行归一化排序的步骤,包括:将所述预设维度中属性值相同的多条流水数据进行相邻排序。4.根据权利要求3所述数据分析的方法,其特征在于,所述对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表的步骤,包括:针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目,其中所述维度组合由至少一个非预设维度组成;将对应一条流水数据的至少一条属性值条目进行相邻排序;所述根据至少一个维度组合分别提取至少一条属性值条目的步骤,。

5、包括:针对每一个维度组合,从所述流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值;将所述流水数据的预设维度属性值、所述维度组合的序号以及所述至少一个属性值组合,获得一条属性值条目。5.根据权利要求4所述数据分析的方法,其特征在于,所述通过映射运算对所述属性值条目列表进行去重计算,得到第一特征值列表的步骤,包括:在所述属性值条目列表中,顺序读取每一条属性值条目的预设维度属性值;将读取的预设维度属性值与预设的第一属性值变量进行比对;若所述比对结果为相同,则将对应所述预设维度属性值的属性值条目写入到当前的第一特征值子列表中;若所述比对结果为不同,则将对应所述预设维度属性值。

6、的属性值条目写入到新的第一特征值子列表中,并将所述预设维度属性值写入到第一属性值变量中;针对每个第一特征值子列表,对其中的属性值条目顺序进行遍历,删除重复的属性值条目;将删除重复属性值条目后的多个第一特征值子列表进行整合,获得所述第一特征值列表。6.根据权利要求5所述数据分析的方法,其特征在于,所述通过归纳运算对所述第一特征值列表进行累加计算,得到第二特征值列表的步骤,包括:对所述属性值条目列表中的属性值条目进行遍历,删除重复的属性值条目;权 利 要 求 书CN 104424339 A2/3页3在每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第。

7、二特征值列表。7.根据权利要求6所述数据分析的方法,其特征在于,所述根据所述第二特征值列表分析得出指标量结果的步骤,包括:根据所述维度组合的序号和/或至少一个维度组合中每个维度的属性值,从所述第二特征值列表中分析得出所述指标量结果。8.根据权利要求1所述数据分析的方法,其特征在于,当计算多个预设指标量时,所述方法还包括:根据下述至少一种指标量参数对所述多个预设指标量进行优先级排序:计算量、重要程度或紧急程度;根据优先级从高到低的顺序依次计算多个预设指标量。9.根据权利要求1所述数据分析的方法,其特征在于,当计算出现故障时,所述方法还包括:对当前指标量的计算资源进行释放。10.一种数据分析的装置。

8、,其特征在于,包括:数据读取单元,用于从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;数据排序单元,用于根据预设维度(View)中的属性值对所述数据读取单元读取的流水数据进行归一化排序;属性提取单元,用于对所述数据排序单元归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;属性去重单元,用于通过映射(Mapper)运算对所述属性提取单元提取的所述属性值条目列表进行去重计算,得到第一特征值列表;属性累加单元,用于通过归纳(Reducer)运算对所述属性去重单元计算的所述第一特征值列表进行累加计算,得到第二特征值列表;结果分析单元,用于根据所述属性累加单元计算的所述第。

9、二特征值列表分析得出指标量结果。11.根据权利要求10所述数据分析的装置,其特征在于,所述装置还包括:数据验证单元,用于在所述数据排序单元进行归一化排序前,对所述数据读取单元读取的流水数据进行合法性验证。12.根据权利要求10所述数据分析的装置,其特征在于,所述数据排序单元用于将所述预设维度中属性值相同的多条流水数据进行相邻排序。13.根据权利要求12所述数据分析的装置,其特征在于,所述属性提取单元,包括:提取子单元,用于针对每一条流水数据,根据至少一个维度组合分别提取至少一条属性值条目,其中所述维度组合由至少一个非预设维度组成;排序子单元,用于将所述提取子单元提取的、对应一条流水数据的至少一。

10、条属性值条目进行相邻排序;所述提取子单元用于针对每一个维度组合,从所述流水数据中分别提取对应该维度组合中每个非预设维度的属性值,获得至少一个属性值,将所述流水数据的预设维度属性值、权 利 要 求 书CN 104424339 A3/3页4所述维度组合的序号以及所述至少一个属性值组合,获得一条属性值条目。14.根据权利要求13所述数据分析的装置,其特征在于,所述属性去重单元,包括:读取子单元,用于在所述属性值条目列表中,顺序读取每一条属性值条目的预设维度属性值;比对子单元,用于将所述读取子单元读取的预设维度属性值与预设的第一属性值变量进行比对;写入子单元,用于当所述比对子单元的比对结果为相同时,将。

11、对应所述预设维度属性值的属性值条目写入到当前的第一特征值子列表中;所述写入子单元还用于当所述比对子单元的比对结果为不同时,将对应所述预设维度属性值的属性值条目写入到新的第一特征值子列表中,并将所述预设维度属性值写入到第一属性值变量中;第一删除子单元,用于针对每个第一特征值子列表,对所述读取子单元读取的属性值条目顺序进行遍历,删除重复的属性值条目;整合子单元,用于将所述第一删除子单元删除重复属性值条目后的多个第一特征值子列表进行整合,获得所述第一特征值列表。15.根据权利要求14所述数据分析的装置,其特征在于,所述属性累加单元,包括:第二删除子单元,用于对所述属性值条目列表中的属性值条目进行遍历。

12、,删除重复的属性值条目;计数子单元,用于在所述第二删除子单元每删除一条重复的属性值条目后,将对应该属性值条目的计数值加1,获得包含计数值且无重复属性值条目的第二特征值列表。16.根据权利要求15所述数据分析的装置,其特征在于,所述结果分析单元用于根据所述维度组合的序号和/或至少一个维度组合中每个维度的属性值,从所述第二特征值列表中分析得出所述指标量结果。17.一种数据分析的系统,其特征在于,所述系统包括控制服务器和计算服务器,其中,所述控制服务器,用于对多项数据分析任务进行优先级排序,向所述计算服务器提交数据分析任务,接收并记录所述计算服务器的数据分析状态;所述计算服务器,用于根据所述控制服务。

13、器提交的数据分析任务从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表,通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表,通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表,根据所述第二特征值列表分析得出指标量结果。18.根据权利要求17所述数据分析的系统,其特征在于,所述计算服务器为分布式计算服务器集群,所述分布式计算服务器集群包含至少两个子计算服务器;所述控制服务器还用于将数据分析任。

14、务拆分为至少两个子任务,将所述至少两个子任务分别分配给所述至少两个子计算服务器。权 利 要 求 书CN 104424339 A1/18页5数据分析的方法、 装置及系统技术领域0001 本发明涉及互联网技术领域,尤其涉及一种数据分析的方法、装置及系统。背景技术0002 随着社交网络(Social Networking Services,简称SNS)的飞速发展以及互联网用户的不断增多,网络侧产生的用户数据呈几何形态增长。基于用户数据的处理、分析过程对于网络运营商进行商业决策而言显得愈发重要。网络侧数据库对T数量级的用户数据进行分析,得出用户行为习惯、应用热度等有价值的参数。0003 在进行数据分析。

15、时,数据库根据运营商期望从用户数据的分析过程中得到的不同指标量,对成千上万条用户数据进行去重和累加计算。举例说明,图1中包含5条用户数据(或者称为5条流水数据),每一条流水数据用于记录用户(可以是同一用户,也可以是不同用户)的行为数据。所谓去重计算是指删除对应特定指标量的重复用户数据,例如在计算指标量“应用在线活跃人数”时,用户身份标识码(User Identity,简称用户ID)为1001的用户先后两次访问了应用ID为1的应用,那么在计算应用1的在线活跃人数时,需要将用户1001两次访问应用1所产生的2条用户数据进行去重,仅保留1条用户1001产生的用户数据,即将应用1的访问“人次”量调整为。

16、访问“人数”量,以避免同一用户ID产生的多条用户数据对指标量结果的误差影响。所谓累加计算是指将多条同类用户数据进行加和,得到对应的指标量结果,例如在计算指标量“应用在线活跃人数”时,用户1002和用户1003分别访问了应用2,则在计算应用2的在线活跃人数时,将两个不同用户ID产生的2条用户数据进行累加,得到应用2的在线活跃人数为2人。由此可以看出,累加计算用于得到指标量结果,而去重计算则用于对累加计算所基于的用户数据进行误差剔除。在进行用户数据分析时,目前业界普遍的实现方式为,通过一次mapper&reducer过程对原始用户数据进行去重计算,然后通过二次mapper&reducer过程对去重。

17、后的用户数据进行累加计算,从而得到相应的指标量结果。0004 现有的数据分析过程需要进行两次mapper&reducer计算,过多的mapper&reducer级联会耗费大量的数据库计算资源,特别是当需要计算的指标量很多时,数据库的计算量将会无限增大,导致数据库系统出现计算瓶颈。0005 随着大数据时代的来临,目前还出现了一种立方体数据结构,例如联机分析处理(On-Line Analytical Processing,简称OLAP)系统。该数据结构可以保存多维数据,每一条数据都可以通过不同的维度进行描述,在进行数据分析时从不同的维度(View)或维度组合对用户数据进行分析、查询。一种典型的立方。

18、体数据结构如图2所示,保存的数据具有“商品类别”、“地域”和“时间”三个维度的属性,该数据结构中的每一条数据都可以通过不同的维度分别进行描述。由于该种数据结构形似立方体,因此得名立方体数据结构。0006 基于立方体数据结构的数据分析具有一个显著的特点,即可以从多个维度或维度组合对一个指标量进行分析。例如在图2中,可以从“商品类别”和“地域”两个分别维度筛选符合指标量条件的数据,也可以从“商品类别”+“地域”以及“商品类别”+“时间”两说 明 书CN 104424339 A2/18页6个维度组合分别维度筛选符合指标量条件的数据。该数据结构中的每一条数据都可以通过不同的维度进行描述。0007 在现。

19、有的数据分析过程中发明人发现:对于立方体数据结构而言,实际应用中涉及数据分析的维度数量从几十个到几百上千个不等,据此进行排列组合得到的维度组合数量更加庞大。在根据数量如此众多的维度或维度组合对指标量进行计算时,需要基于每个维度或维度组合独立进行数据分析,分别进行数据加载、去重计算、累加计算等运算过程,由此产生了不可估量的数据库运算量。这些独立的运算过程如果串行执行,则所耗费的时间远远超出运营商能够接受的范围;如果并行执行,则数据库负担过重,容易出现计算瓶颈。0008 综上所述,现有的数据分析方式计算量过大,会耗费较多的时间和计算资源,数据处理效率过低。发明内容0009 本发明实施例提供一种数据。

20、分析的方法、装置及系统,能够解决数据分析效率过低的问题。0010 一方面,本发明实施例提供了一种数据分析的方法,包括:0011 从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;0012 根据预设维度(View)中的属性值对读取的流水数据进行归一化排序;0013 对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;0014 通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表;0015 通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表;0016 根据所述第二特征值列表分析得出指标量结果。0017 另一方。

21、面,本发明实施例还提供了一种数据分析的装置,包括:0018 数据读取单元,用于从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值;0019 数据排序单元,用于根据预设维度(View)中的属性值对所述数据读取单元读取的流水数据进行归一化排序;0020 属性提取单元,用于对所述数据排序单元归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表;0021 属性去重单元,用于通过映射(Mapper)运算对所述属性提取单元提取的所述属性值条目列表进行去重计算,得到第一特征值列表;0022 属性累加单元,用于通过归纳(Reducer)运算对所述属性去重单元计算的所述第一特征值列表进行。

22、累加计算,得到第二特征值列表;0023 结果分析单元,用于根据所述属性累加单元计算的所述第二特征值列表分析得出指标量结果。0024 再一方面,本发明实施例还提供了一种数据分析的系统,所述系统包括控制服务器和计算服务器,其中,说 明 书CN 104424339 A3/18页70025 所述控制服务器,用于对多项数据分析任务进行优先级排序,向所述计算服务器提交数据分析任务,接收并记录所述计算服务器的数据分析状态;0026 所述计算服务器,用于根据所述控制服务器提交的数据分析任务从流水数据集合中逐条读取流水数据,所述流水数据包括多个维度的属性值,根据预设维度(View)中的属性值对读取的流水数据进行。

23、归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表,通过映射(Mapper)运算对所述属性值条目列表进行去重计算,得到第一特征值列表,通过归纳(Reducer)运算对所述第一特征值列表进行累加计算,得到第二特征值列表,根据所述第二特征值列表分析得出指标量结果。0027 本发明实施例提供一种数据分析的方法、装置及系统,能够在进行数据分析之前对原始流水数据进行预处理操作,以减少后续分析过程中涉及的数据量和计算量。具体的,根据预设维度(View)中的属性值对读取的流水数据进行归一化排序,对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。然后基于预处理后的属性值条。

24、目列表,通过一次mapper&reducer计算进行去重和累加运算,并分析得出指标量结果。与现有技术中需要通过两次mapper&reducer计算得到指标量结果相比,可以节省数据分析的计算量,对于大数据场景而言,能够避免数据库系统出现计算瓶颈同时提高系统的数据分析效率。0028 此外,本发明实施例提供的数据分析的方法、装置及系统,由于在数据分析前对流水数据进行了预处理操作,按照预设维度中的属性值对读取的流水数据进行归一化排序,因此可以使相同预设维度属性值的多条流水数据集中排序,对于立方体数据结构而言,在进行去重累加计算时,可以同时从多个维度或维度组合上对数据进行分析。与现有技术相比,当运营商需。

25、要从几十甚至几百个维度或维度组合上计算一个指标量结果时,能够一次性完成多个维度或维度组合上的数据分析,避免多次读取流水数据对时间和系统计算资源的占用,应用到立方体数据结构中时能够极大提高系统的数据分析效率。附图说明0029 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0030 图1为现有技术中包含用户数据的存储表;0031 图2为现有技术中立方体数据存储结构的示意图;0032 图3为本。

26、发明实施例中数据分析的系统的架构示意图;0033 图4为本发明实施例中数据分析的方法的流程图;0034 图5为本发明实施例中另一个数据分析的方法的流程图;0035 图6为本实施例中第一个数据分析的装置的结构示意图;0036 图7为本实施例中第二个数据分析的装置的结构示意图;0037 图8为本实施例中第三个数据分析的装置的结构示意图;0038 图9为本发明实施例中另一个数据分析的系统的架构示意图。具体实施方式说 明 书CN 104424339 A4/18页80039 下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的。

27、实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0040 为了便于对下述各实施例进行介绍,首先对本发明实施例所涉及的网络架构进行简要介绍。0041 如图3所示,数据库的网络架构包括控制服务器31和计算服务器32。其中,对于分布式数据系统而言,所述计算服务器32还可以是由多个子服务器组成的计算服务器集群。在图3中,控制服务器31用于对流水队列进行扫描,从队首依次读取数据分析任务,然后将获取的数据分析任务提交给计算服务器32。计算服务器32接收到数据分析任务后,获取对应该数据分析任务的流水文件,所述流水文件中包含多条用户上网。

28、行为产生的流水数据。计算服务器32根据这些流水数据进行预处理操作、去重计算以及累加计算,得到相应的指标量结果,然后向控制服务器31返回用于标识处理成功的数据分析状态标识;如果计算失败,未得到相应的指标量结果。则计算服务器32向控制服务器31返回用于标识处理失败的数据分析状态标识。控制服务器31接收到计算服务器32发送的数据分析状态标识后,从流水队列中读取下一个数据分析任务提交给计算服务器32。0042 下面,基于图3所示的系统,对本实施例中数据分析的方法进行说明,所述方法应用于计算服务器32侧,如图4所示,所述方法包括:0043 401、从流水数据集合中逐条读取流水数据。0044 本实施例中,。

29、所述流水数据集合即为前述流水文件。通常,对应不同的预设指标量计算服务器会基于不同的流水文件进行计算。所述预设指标量是由运营商提供给数据分析系统的、用于表达运营商数据分析诉求的变量,例如可以是“当前在线活跃人数”、“平均用户在线时长”等变量。计算服务器按照运营商的需求,根据不同的流水文件计算不同的指标量,得到相应的指标量结果,例如“当前在线活跃人数”为120000人,“平均用户在线时长”为2小时等。在实际应用中,计算服务器可以根据一个流水文件计算一个指标量,也可以根据一个流水文件计算多个指标量,当计算完一个指标量后,计算服务器接收控制服务器提交的下一个数据分析任务,基于相同或不同的流水文件对下一。

30、个指标量进行计算。0045 一条流水数据用于描述一个特定用户的一次上网操作行为,用户的操作行为通常包含多个不同角度上的描述信息(后续称为属性值),因此一条流水数据通常包含多个维度的属性值。事例性的,如表1所示:0046 用户ID应用ID用户性别用户年龄操作起始时刻A 1 0 23 12:37B 3 1 15 20:040047 表10048 表1中包含两条流水数据,每一条流水数据都有“用户ID”、“应用ID”、“用户性别”、“用户年龄”以及“操作起始时刻”五个维度的属性值。其中,“用户ID”可以为QQ号/说 明 书CN 104424339 A5/18页9手机号/邮箱等能够对用户进行唯一标识的数。

31、据信息;“应用ID”为对不同应用进行唯一标识的数据信息,类似的,流水数据中还可以包含“SNS网站ID”;“用户性别”维度中,通过字节“1”代表男性,通过字节“0”代表女性。0049 对于关系型数据库,服务器通过多张关系型数据表将流水数据的多个维度的属性值进行关联保存,例如建立一张维度1和维度2的关系表,然后建立一张维度2和维度3的关系表。对于立方体数据库,如图2所示,服务器从多个维度对流水数据进行保存。不论关系型数据库还是立方体数据库,均涉及多维度的流水数据。0050 流水文件中通常包含有成千上万条流水数据,例如,计算服务器获取某SNS网站当前在线用户的行为数据,若当前时刻上有8600个用户同。

32、时在线,则计算服务器能够获取到8600条流水数据。再例如,计算服务器获取某SNS游戏应用在某一特定时间段内进行游戏的用户的行为数据,若在该特定时间段内有5400人次进行过该游戏,则计算服务器能够获取到5400条流水数据。与上一例不同的时,一般情况下通常会存在同一个用户在不同时刻上多次进行某一游戏的情况,该5400条流水数据包含同一用户在不同时刻上多次上网操作产生的多条流水数据,如前所述,一条流水数据用于描述一个特定用户的一次上网操作行为,因此在计算某些指标量例如某时间段的在线活跃人数(而非某时间段的在线活跃人次)时,需要对部分流水数据进行去重处理,否则计算出的指标量结果会产生误差。0051 4。

33、02、根据预设维度中的属性值对读取的流水数据进行归一化排序。0052 为节省后续的计算量,在对流水数据进行去重和累加计算前,服务器对流水数据进行预处理操作。所述预处理操作包括对读取的流水数据进行归一化排序,即根据预设维度中的属性值将预设为度属性值相同的流水数据进行相邻排序。0053 所述预设维度为流水数据中的某个维度,对于不同的指标量,计算服务器选取不同的维度作为预设维度。例如,对于计算指标量“当前在线活跃人数”,计算服务器选择维度“用户ID”作为预设维度。具体的,计算服务器按照操作时间顺序依次读取的三个用户的7条流水数据如表2所示:0054 用户ID应用ID用户性别用户年龄A 1 0 23B。

34、 2 1 14B 3 1 14C 3 0 51A 1 0 23B 1 1 14C 3 0 510055 表2说 明 书CN 104424339 A6/18页100056 计算服务器以维度“用户ID”中的属性值对表2所示的流水数据进行归一化排序后产生的流水数据列表如表3所示:0057 用户ID应用ID用户性别用户年龄A 1 0 23A 1 0 23B 2 1 14B 3 1 14B 1 1 14C 3 0 51C 3 0 510058 表30059 403、对归一化排序后的流水数据逐条提取属性值条目,获得属性值条目列表。0060 进行归一化排序后,计算服务器依次从每一条流水数据中提取一条属性值条。

35、目,获得包含多条属性值条目的属性值条目列表。以表3中第一条流水数据为例,计算服务器提取的属性值条目为“A,1,0,23”,即依次提取用户A对应“用户ID”、“应用ID”、“用户性别”以及“用户年龄”四个维度的属性值。对于表3中的7条流水数据,计算服务器获得的属性值条目列表如表4所示:0061 A,1,0,23A,1,0,23B,2,1,14B,3,1,14B,1,1,14C,3,0,51C,3,0,510062 表40063 404、通过映射运算对属性值条目列表进行去重计算,得到第一特征值列表。0064 通过表4可以看出,在计算指标量“当前在线活跃人数”时存在重复的属性条目,例如,第一条属性条目和第二条属性条目为用户A在不同时间进行应用1时产生的操作行说 明 书CN 104424339 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1