基于引擎的数据聚合方法、装置及存储介质、服务器与流程

文档序号:16999680发布日期:2019-03-02 01:40阅读:145来源:国知局
基于引擎的数据聚合方法、装置及存储介质、服务器与流程

本发明涉及信息技术、数据处理技术领域,具体涉及一种基于引擎的数据聚合方法、装置及存储介质、服务器。



背景技术:

出于不同的目的,用户使用互联网时间越来越多,通过互联网来实现用户购买、销售、娱乐等。随着用户量的增加,提供程序应用的业务方希望能够增加应用的功能以及优化应用的性能,提高用户的体验,在此基础上,业务方希望连续不断从用户使用应用程序产生的数据中获取到业务方关心的数据,并对该数据进行分析,以确定用户使用应用程序的状况以及分析用户对应用程序的满意度,进而业务方可以依据该数据进行报告或描述性分析、建模或预测分析、数据驱动战略、聚类、相似性分组等。现有的数据聚合需要保存全量数据在引擎中,聚合的时候会对几千万的数据进行计算,使得数据聚合的效率比较慢;业务每次需要新的聚合字段时候需要研发人员重新开发功能并且发版,同样也降低了效率较低。同时也增加了开发人员的工作负担。



技术实现要素:

为克服以上技术问题,特别是通数据聚合需要保存全量数据在引擎中,聚合的时候会对几千万的数据进行计算,使得数据聚合效率慢的问题,特提出以下技术方案:

本发明实施例提供的一种基于引擎的数据聚合方法,包括:

获取目标数据和聚合模型;

解析所述聚合模型,获得与所述目标数据对应聚合规则;

根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。

进一步地,在所述根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据的步骤之后,还包括:

将聚合出的所述数据保存在数据库中。

进一步地,在所述获取目标数据和聚合模型的步骤之前,包括:

对被聚合数据的属性进行定义以获得所述聚合规则,所述数据的属性包括:数据类型、聚合等级;

根据聚合规则生成聚合模型。

进一步地,在所述将聚合出的所述数据保存在数据库中的步骤之后,还包括:

调用所述聚合出的数据,以预设的展示方式展示所述聚合出的数据。

进一步地,在所述将聚合出的数据保存在数据库中的步骤之后,还包括:

清除获取的所述目标数据。

进一步地,在所述获取目标数据和聚合模型的步骤之前,包括:

配置所述目标数据被所述聚合规则聚合的聚合时间周期。

进一步地,在所述获取目标数据和聚合模型的步骤之前,包括:

获取目标数据的聚合等级,得到所述聚合等级对应的默认周期;

获取当前未聚合数据的数量;

若所述数量大于第一预置值,获取前一聚合时间周期的时长值,判断所述时长值是否大于等于默认周期的一半,若是,当前聚合时间周期等于所述时长值减去预置值,否则,当前聚合时间周期等于所述时长值;

若所述数量小于第二预置值,获取前一聚合时间周期的时长值,判断所述时长值是否小于等于默认周期的两倍,若是,当前聚合时间周期等于所述时长值增加预置值,否则,当前聚合时间周期等于所述时长值;

若所述数量小于等于第一预置值,且大于等于第二预置值,把当前一聚合时间周期的时长值,作为当前聚合时间周期的时长值。

进一步地,在所述根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据的步骤中,具体包括:

基于所述聚合时间周期确定所述目标数据当前周期内被聚合的聚合时间;

在到达当前周期的所述聚合时间时,根据所述聚合规则从上一周期聚合时间到当前周期所述聚合时间段内的所述目标数据中聚合出所述聚合规则定义的所述数据。

本发明实施例还提供了一种基于引擎的数据聚合装置,包括:

获取模块,用于获取目标数据和聚合模型;

解析模块,用于解析所述聚合模型,获得与所述目标数据对应的聚合规则;

聚合模块,用于根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现任一技术方案所述的基于引擎的数据聚合方法。

本发明实施例还提供了一种服务器,包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据任一技术方案所述的基于引擎的数据聚合方法的步骤。

本发明实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现任一技术方案所述的基于引擎的数据聚合方法。

本发明实施例中还提供了一种服务器包括:

一个或多个处理器;

存储器;

一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据任一技术方案所述的基于引擎的数据聚合方法。

本发明与现有技术相比,具有以下有益效果:

1、本申请实施例提供的一种基于引擎的数据聚合方法,包括:获取目标数据和聚合模型;解析所述聚合模型,获得与所述目标数据对应的聚合规则;根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。实现上述基于引擎的数据聚合方法的实施例,在本申请中通过用户自定义描述语句以确定引擎进行数据聚合的聚合规则,进而使得不需要将该引擎进行发版,简化了聚合的流程,提高了数据聚合的效率。

2、本申请实施例提供的一种基于引擎的数据聚合方法,在所述将聚合出的数据保存在数据库中的步骤之后,还包括:清除获取的所述目标数据。在对一定范围目标数据进行聚合后,就对该范围的数据进行标识,并将标识后的数据从数据库中清除,进而避免过多的数据占据引擎的容量,提高引擎的容纳量,并在聚合规则下,提高对之后将要聚合数据的聚合速度,提高了聚合的效率。

3、本发明实施例提供的一种基于引擎的数据聚合方法,在所述获取目标数据和聚合模型的步骤之前,具体包括:配置所述目标数据被所述聚合规则聚合的聚合时间周期。进一步地,在所述根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据的步骤中,具体包括:基于所述聚合时间周期确定所述目标数据当前周期内被聚合的聚合时间;在到达当前周期的所述聚合时间时,根据所述聚合规则从上一周期聚合时间到当前周期所述聚合时间段内的所述目标数据中聚合出所述聚合规则定义的所述数据。在保证数据聚合的实时性时,由于将目标数据通过时间分段的方式,基于时间段对该时间段内的目标数据聚合,进而避免对大量数据进行聚合,降低了聚合的数据量,进而提高数据聚合的速度和效率。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明基于引擎的数据聚合方法的典型实施例中一种实施方式的流程示意图;

图2为本发明基于引擎的数据聚合方法的目标数据和聚合出数据的数据结构图;

图3为本发明基于引擎的数据聚合方法的典型实施例中又一种实施方式的流程示意图;

图4为本发明基于引擎的数据聚合装置的典型实施例的结构示意图;

图5为本发明服务器的一实施例结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。

本申请实施例提供的一种基于引擎的数据聚合方法,如图1所示,包括s100、s200、s300。

s100:获取目标数据和聚合模型;

s200:解析所述聚合模型,获得与所述目标数据对应的聚合规则;

s300:根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。

在本申请提供的实施例中,首先将海量数据存入文件或其他存储介质(该数据包括流失数据)中,然后每隔一段时间读取文件,将文件内容采用mapreduce的方式进行计算。特别地,在云环境下存储的数据量很大,因此在对云环境中存储的海量目标数据进行统计时,需要对海量的目标数据进行聚合。当然数据也可以是本地数据库或者其他容量较大的数据库/存储介质。聚合引擎从存储介质中获取对应的目标数据,其中目标数据可以是部分数据库中的数据,或者具有某一种或者一类标识的数据(如用户id、具有应用程序名称等的标识),聚合模型为用于筛选数据的计算模型,聚合模型中设置了聚合目标数据中明细数据的规则,因此,在引擎获取到聚合模型后,对该聚合模型进行解析以获得用户配置的聚合规则,该聚合规则包括了用户自定义的一套描述语句,即该套自定义描述语句是用户配置且用于聚合目标数据的,因此,该套自定义描述语句与目标数据是相对应的,因而聚合规则也是与目标数据相对应的,基于不同的目标数据,用户可以定义一个或者多个聚合规则。该自定义描述语句中包括定义被聚合数据的属性的语句,所述数据的属性包括:数据类型、聚合等级。基于用户配置的聚合规则的描述语句,通过解析后的解析规则从前述的目标数据中聚合出所述聚合规则定义的数据,在基于引擎之下,通过用户自定义聚合规则,以使得引擎能够通过该规则进行数据的聚合,加快了从目标数据中聚合出明细数据的速度,使得原需要2-3秒的聚合降低到了毫秒级别的聚合,同时也简化了聚合流程,由于是基于引擎进行用户自行配置聚合规则,则不需要全面检测在该聚合规则下的引擎功能、可靠、性能、易用、安全、兼容性等,使得该引擎无需发版,在有新的聚合字段时,用户可以通过其自定义的描述语句更改聚合字段,进而提高了聚合效率。

具体的,例如,如图2所示,需要对商业组织的产品销售数据进行挖掘,以便于能够将其用于分析或者展示,其中210为目标数据的数据结构,220为聚合出数据的数据结构。设置三个不同的业务对象(例如,来自交易文档的销售订单数据、来自主数据对象的客户数据和来自产品数据对象的产品数据)的数据属性。其中,选择的数据可以包括以下属性:客户id、销售订单id、产品id、销售总金额、日期(日历周、月、年)和地点(位置、地区和国家)。总金额属性可以是函数求和(sum)(销售订单金额)。此外,如图1数据还可以包括以下属性:总金额、客户id、销售订单id、产品id、日历周、月、年、位置、地区和国家。在解析出该用于自定的该套语句之后,针对目标数据运行该套语句,即在目标数据中执行基于该套语句定义的规则,以便于从大量目标数据中挖掘出指定的数据,即从目标数据中获取到该套语句定义的数据。例如,结合前述示例,通过前述的解析可以解析出聚合规则设置中设置的数据类型包括时间、产品、金额的数据,引擎通过解析出来的数据数据类型进行聚合,即解析出来后便得到聚合规则,得到的聚合规则为:[选择产品,金额=sum(order_amount)来自销售订单其中“20180720”和“20180720-7天”之间的数按地区分组]([selectroduct,amount=sum(order_amount)fromsalesorderwheredatebetween‘today’and‘today-7’groupedbyregion]),进而可以聚合出在过去一个月按地区分组的产品销售订单总金额作为结果,该过程也实现了对数据的分析,以便于后文直接将该结果显示在前端。

结合前述示例,聚合数据属性如前文的客户id、销售订单id、产品id、销售总金额、日期(日历周、月、年)和地点(位置、地区和国家)等。为了使得用户获得同一业务中重要的数据信息,可以设置聚合数据的等级,同时该等级还需要和网络传输能力匹配。例如,当终端-服务器网络连接具有低数据传递能力时,则向用户发送提醒信息,以便将在网络连接上传递的数据量减少到最少,提高数据聚合的速度和效率。进而可以选择保留在数据挖掘中的数据属性以便增加在后端侧可以检索到的数据的聚合水平(即,重要性)。例如,相对于图2的产品销售数据示例,用户自定义“产品”属性的聚合等级较低(中等),定义金额和地区属性的聚合等级为高级,说明“产品”属性聚合等级的数据不是很重要,可以不对其进行聚合。例如,结合上述实施例,按照聚合等级分类后,得到的数据聚合规则为:[选择金额=sum(order_amount)来自销售订单其中“20180720”和“20180720-7天”之间的数据按地区分组]([selectamount=sum(order_amount)fromsalesorderwheredatebetween‘today’and’today-7‘groupedbyregion]),作为用户自定义的结果,产品信息将不成为从数据库中挖掘出的数据结果的一部分。

进一步地,在其中一种实施方式中,在所述根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据的步骤之后,还包括:

将聚合出的所述数据保存在数据库中。

进一步地,在其中一种实施方式中,在所述将聚合出的数据保存在数据库中的步骤之后,还包括:

清除获取的所述目标数据。

进一步地,在其中一种实施方式中,在所述将聚合出的所述数据保存在数据库中的步骤之后,还包括:

调用所述聚合出的数据,以预设的展示方式展示所述聚合出的数据。

为了使得聚合出的数据能够被后续更好地调用,将聚合出的所述数据保存在数据库中,或者将该数据通过前端的调用,将其以预设的展示方式在前端展示所述聚合出的数据,优选地,可以表格形式进行展示或者图文结合的形式进行展示。在前端的用户需要查看数据时,前端从数据库中调用聚合出的数据,以作为前端的数据源,并以预设置图表形式的展示方式展示数据源,则前端可以直接通过这个数据源展示相应的图表。在存储在数据库中,已对聚合出的数据进行了统计分类,并且以关联方式存储在数据库中,关联方式如映射关系。结合前述过程中,按照地区、该地区的产品以及产品对应的金额进行关联存储,进而便于基于聚合出的数据对产品的销售情况进行分析,确定不同地区该产品的销售情况,以便针对不同地区的销售情况制定不同的销售计划。由于数据在通过聚合整理后放置在数据中,在后期分析数据时,则不需要再对数据进行聚合,可直接从数据库中调用聚合后的数据,进而加快了数据查询的速度。

为了加快聚合的速度,需要保证引擎中具有较好的容纳量,常规的数据聚合需要保存全量数据在引擎中,进而在聚合指定字段的数据时,会对几千万的数据进行计算,降低了计算的效率。在本申请中,当对一定范围目标数据进行聚合后,就对该范围的数据进行标识,并将标识后的数据从数据库中清除,进而避免过多的数据占据引擎的容量,提高引擎的容纳量,并在聚合规则下,提高对之后将要聚合数据的聚合速度,提高了聚合的效率;另外通过标识的方法避免混淆已聚合和未聚合的目标数据,进而能够针对性的删除已聚合的数据,避免误删除未聚合的目标数据。

进一步地,在其中一种实施方式中,在所述获取目标数据和聚合模型的步骤之前,包括:

对被聚合数据的属性进行定义以获得所述聚合规则,所述数据的属性包括:数据类型、聚合等级;根据聚合规则生成聚合模型。为了使得引擎在获取到聚合模型时其中已包含了用户配置好的聚合规则,在本申请中,在聚合之前,用户对被聚合数据的属性进行定义以获得所述聚合规则,即该聚合规则包括数据类型、聚合等级。当然还可以包括后文所述的聚合时间周期,然后根据该聚合规则生成聚合模型,即将用户设置的固定参数带入规则中,得到对应的模型,在进行数据聚合过程中,基于该聚合模型以及对应的条件,对目标数据进行聚合。

进一步地,在其中一种实施方式中,在所述获取目标数据和聚合模型的步骤之前,包括:

配置所述目标数据被所述聚合规则聚合的聚合时间周期。

进一步地,在所述获取目标数据和聚合模型的步骤之前,包括:

获取目标数据的聚合等级,得到所述聚合等级对应的默认周期;

获取当前未聚合数据的数量;

若所述数量大于第一预置值,获取前一聚合时间周期的时长值,判断所述时长值是否大于等于默认周期的一半,若是,当前聚合时间周期等于所述时长值减去预置值,否则,当前聚合时间周期等于所述时长值;

若所述数量小于第二预置值,获取前一聚合时间周期的时长值,判断所述时长值是否小于等于默认周期的两倍,若是,当前聚合时间周期等于所述时长值增加预置值,否则,当前聚合时间周期等于所述时长值;

若所述数量小于等于第一预置值,且大于等于第二预置值,把当前一聚合时间周期的时长值,作为当前聚合时间周期的时长值。

本申请提供的实施例在具体的实施方式中,如,在目标数据数量超过1000,说明要缩短周期,否则累加量越来越大,可能导致数据计算不过来,降低了数据聚合的效率。为了提高数据聚合效率,用户可设置默认周期为10秒,预置值为1秒,先定最小周期为10秒的一半即5秒,若上一周期大于5秒,则逐次减1秒,若小于等于5秒,则不再减小。进而实现动态聚合数据的目的,基于数据量的大小动态提高聚合的效率。

若数量小于100,说明要加长周期,才符合经济原则,先定最大周期为10秒的2倍,若上上一周期小于20秒,则逐次增加1秒。若大于等于20秒,则不再增加。

本申请提供的实施例在具体的实施方式中,还可先确定目标数据的聚合等级,然后根据数据类型,对应不同的默认周期。如:聚合等级越高,聚合周期越短,聚合等级越低,聚合周期越长。即用户能够确定某一类数据的量较低或者该数据不是重要类型时,在确定对应的数据等级时,则可根据该聚合等级确定数据聚合周期,且该周期相对较长;而对于重要类型的数据,为了便于用户及时根据聚合的数据对产品进行优化或者对方案进行优化,用户在确定数据的聚合等级时,则获取较短时间的聚合周期,同样也实现了对目标数据聚合周期的动态配置,进而使得聚合过程更为智能。

进一步地,在其中一种实施方式中,如图3所示,在所述根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据的步骤中,具体包括:

s310:基于所述聚合时间周期确定所述目标数据当前周期内被聚合的聚合时间;

s320:在到达当前周期的所述聚合时间时,根据所述聚合规则从上一周期聚合时间到当前周期所述聚合时间段内的所述目标数据中聚合出所述聚合规则定义的所述数据。

进一步地,由于目标数据保存在引擎中时是有基于时间不断地进行保存的,为了使得聚合更有效率,用户可以自行确定聚合的时间,即定时聚合一段该段时间内的数据,并将该数据保存在数据库中,进而避免一次性进行大量的数据聚合,降低聚合数据的效率。其中,所述聚合时间周期用于反应进行数据聚合的时间粒度,根据不同的数据聚合需求可以配置不同的时间粒度。如当需要进行时间粒度较小的数据聚合时,可以将聚合时间周期配置的相对小一些,如每分钟聚合一次、每五分钟聚合一次等,如当需要进行时间粒度较大的数据聚合时,可以将聚合时间周期配置的相对大一些,如每小时聚合一次、每半天聚合一次等,在想要更大的时间粒度时,如前文所述,聚合时间周期也可以为每7天聚合一次。对于本发明实施例,根据不同需求来配置不同的聚合时间粒度,可以进一步提高数据聚合的精度。进一步地,为了实现更精准的聚合,所述目标数据携带有时间标识(如时间戳或者与聚合时间周期相对应的日期等),所述时间戳用于标识数据库接收到所述目标数据后该目标数据触发的时间,其中,该数据库可以为引擎本身的数据库或者与引擎相关联且引擎能够从该数据库中获取目标数据的数据库。例如,数据库获取到目标数据后该目标数据触发的时间为10:01,则当前从数据库获取的目标数据中携带的时间戳为10:01。所述目标数据可以为前述某一项产品销售情况的数据,当将本申请应用于应用程序的产品时,所述目标数据可以为qps(querypersecond,每秒查询率)、pv(pageview,页面浏览量)等不同类别的目标数据,也可以为同一类别不同应用的目标数据,如应用a和应用b的pv数据,本发明实施例不做限定。

具体的,所述聚合时间周期对应多个聚合触发时间点,所述多个聚合触发时间点分别对应的时间逐个递增,每一个聚合触发时间点用于触发对时间标识为上一个聚合触发时间点的全部目标数据进行聚合操作。例如,聚合时间周期为每7天聚合一次,则从20180720开始,聚合时间周期对应多个聚合触发时间点分别为20180727、20180713、20180706、20180629等以此类推,当时间标识为20180723大于当前进行数据聚合时所述聚合时间周期对应的聚合触发时间点20180720时,触发引擎对时间标识为20180720的全部目标数据的进行聚合处理。需要说明的是,所述多个聚合触发时间点可以按照时间顺序以列表、时间轴等方式进行展示,本发明实施例不做限定,例如,当多个聚合触发时间点按照时间顺序以时间轴等方式进行展示时,时间轴上的时间会不断向前滚动,以保证时间轴上的时间为当前时间。对于本发明实施例,通过检测所述时间标识是否大于当前需要进行数据聚合时所述聚合时间周期对应的聚合触发时间点,即检测当前获取到的目标数据的时间与上一次获取到目标数据的时间是否在一个聚合时间周期的聚合时间点,从而确定是否触发引擎通过聚合规则对目标数据进行聚合操作,从而保证了对目标数据进行聚合操作的实时性。例如,聚合时间周期为每7天聚合一次,若引擎从数据库获取到的当前目标数据携带的时间标识为20180720,当前需要对目标数据进行聚合的所述聚合时间周期对应的聚合触发时间点同为20180720,则确定不触发引擎对目标数据进行聚合操作;若从数据库获取到的当前目标数据携带的时间标识为20180723,大于当前需要进行数据聚合时所述聚合时间周期对应的聚合触发时间点20180720,则确定触发引擎对目标数据进行聚合操作,若在20180716日聚合了20180709分到20180713日之间的目标数据时,则在20180723日聚合20180716到20180720,当然该聚合时间也可以是20180721日。另外为了能够更好地保证数据的实时性,该聚合时间也可以将时间粒度设置缩小,即聚合时间周期缩小为分钟、半天或者一天等。例如聚合时间周期为一分钟,若引擎从数据库获取到的当前目标数据携带的时间标识为10:01,当前需要对目标数据进行聚合的所述聚合时间周期对应的聚合触发时间点同为10:01,则确定不触发引擎对目标数据进行聚合操作;若从数据库获取到的当前目标数据携带的时间标识为10:02,大于当前需要进行数据聚合时所述聚合时间周期对应的聚合触发时间点10:01,则确定触发引擎对目标数据进行聚合操作,若在10:01聚合了9:59分到10:00日之间的目标数据时,则在10:02聚合10:00到10:01。

本发明实施例中还提拱了一种基于引擎的数据聚合装置,在其中一种实施方式中,如图4所示,包括:

获取模块100,用于获取目标数据和聚合模型;

解析模块200,用于解析所述聚合模型,获得与所述目标数据对应的聚合规则;

聚合模块300,用于根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。

进一步地,如图4所示,本发明实施例中提供的一种基于引擎的数据聚合装置,保存模块410,用于将聚合出的所述数据保存在数据库中。数据属性定义模块101,用于对被聚合数据的属性进行定义以获得所述聚合规则,所述数据的属性包括:数据类型、聚合等级;聚合模型生成模块102,用于根据聚合规则生成聚合模型。数据调用模块420,用于调用所述聚合出的数据,以预设的展示方式展示所述聚合出的数据。目标数据清除模块430,用于清除获取的所述目标数据。时间周期配置模块103,用于配置所述目标数据被所述聚合规则聚合的聚合时间周期。默认周期确定模块104,用于获取目标数据的聚合等级,得到所述聚合等级对应的默认周期;未聚合数据数量获取模块105,用于获取当前未聚合数据的数量;当前聚合时间周期第一确定模块106,用于若所述数量大于第一预置值,获取前一聚合时间周期的时长值,判断所述时长值是否大于等于默认周期的一半,若是,当前聚合时间周期等于所述时长值减去预置值,否则,当前聚合时间周期等于所述时长值;当前聚合时间周期第二确定模块107,用于若所述数量小于第二预置值,获取前一聚合时间周期的时长值,判断所述时长值是否小于等于默认周期的两倍,若是,当前聚合时间周期等于所述时长值增加预置值,否则,当前聚合时间周期等于所述时长值;当前聚合时间周期第三确定模块108,用于若所述数量小于等于第一预置值,且大于等于第二预置值,把当前一聚合时间周期的时长值,作为当前聚合时间周期的时长值。聚合时间确定单元310,用于基于所述聚合时间周期确定所述目标数据当前周期内被聚合的聚合时间;数据聚合单元320,用于在到达当前周期的所述聚合时间时,根据所述聚合规则从上一周期聚合时间到当前周期所述聚合时间段内的所述目标数据中聚合出所述聚合规则定义的所述数据。

本发明实施例提供的一种基于引擎的数据聚合装置可以实现上述基于引擎的数据聚合方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。

本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现任一项技术方案所述的基于引擎的数据聚合方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。

本发明实施例提供的一种计算机可读存储介质,可实现上述基于引擎的数据聚合方法的实施例,在本申请中通过用户自定义描述语句以确定引擎进行数据聚合的聚合规则,进而使得不需要将该引擎进行发版,简化了聚合的流程,提高了数据聚合的效率;本申请实施例提供的一种基于引擎的数据聚合方法,包括:获取目标数据和聚合模型;解析所述聚合模型,获得与所述目标数据对应的聚合规则;根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。在本申请提供的实施例中,首先将海量数据存入文件或其他存储介质(该数据包括流失数据)中,然后每隔一段时间读取文件,将文件内容采用mapreduce的方式进行计算。特别地,在云环境下存储的数据量很大,因此在对云环境中存储的海量目标数据进行统计时,需要对海量的目标数据进行聚合。当然数据也可以是本地数据库或者其他容量较大的数据库/存储介质。聚合引擎从存储介质中获取对应的目标数据,其中目标数据可以是部分数据库中的数据,或者具有某一种或者一类标识的数据(如用户id、具有应用程序名称等的标识),聚合模型为用于筛选数据的计算模型,聚合模型中设置了聚合目标数据中明细数据的规则,因此,在引擎获取到聚合模型后,对该聚合模型进行解析以获得用户配置的聚合规则,该聚合规则包括了用户自定义的一套描述语句,该自定义描述语句中包括定义被聚合数据的属性的语句,所述数据的属性包括:数据类型、聚合等级。基于用户配置的聚合规则的描述语句,通过解析后的解析规则从前述的目标数据中聚合出所述聚合规则定义的数据,在基于引擎之下,通过用户自定义聚合规则,以使得引擎能够通过该规则进行数据的聚合,加快了从目标数据中聚合出明细数据的速度,使得原需要2-3秒的聚合降低到了毫秒级别的聚合,同时也简化了聚合流程,由于是基于引擎进行用户自行配置聚合规则,则不需要全面检测在该聚合规则下的引擎功能、可靠、性能、易用、安全、兼容性等,使得该引擎无需发版,在有新的聚合字段时,用户可以通过其自定义的描述语句更改聚合字段,进而提高了聚合效率。

本发明实施例提供的计算机可读存储介质可以实现上述基于引擎的数据聚合方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。

此外,在又一种实施例中,本发明还提供一种服务器,如图5所示,所述服务器处理器503、存储器505、输入单元507以及显示单元509等器件。本领域技术人员可以理解,图5示出的结构器件并不构成对所有服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器505可用于存储应用程序501以及各功能模块,处理器503运行存储在存储器505的应用程序501,从而执行设备的各种功能应用以及数据处理。存储器505可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器505只作为例子而非作为限定。

输入单元507用于接收信号的输入,以及用户输入自定义的描述语句。输入单元507可包括触控面板以及其它输入设备。触控面板可收集客户在其上或附近的触摸操作(比如客户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元509可用于显示客户输入的信息或提供给客户的信息以及计算机设备的各种菜单。显示单元509可采用液晶显示器、有机发光二极管等形式。处理器503是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器503内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。图5中所示的一个或多个处理器503能够执行、实现图4中所示的解析模块100的功能、聚合模块200的功能、保存模块300的功能、保存模块410的功能、数据属性定义模块101的功能、聚合模型生成模块102的功能、数据调用模块420的功能、目标数据清除模块430的功能、时间周期配置模块103的功能、默认周期确定模块104的功能、未聚合数据数量获取模块105的功能、当前聚合时间周期第一确定模块106的功能、当前聚合时间周期第二确定模块107的功能、当前聚合时间周期第三确定模块108的功能、聚合时间确定单元310的功能、数据聚合单元320的功能。

在一种实施方式中,所述服务器包括一个或多个处理器503,以及一个或多个存储器505,一个或多个应用程序501,其中所述一个或多个应用程序501被存储在存储器505中并被配置为由所述一个或多个处理器503执行,所述一个或多个应用程序301配置用于执行以上实施例所述的基于引擎的数据聚合方法。

本发明实施例提供的一种服务器,可实现上述基于引擎的数据聚合方法的实施例,在本申请中通过用户自定义描述语句以确定引擎进行数据聚合的聚合规则,进而使得不需要将该引擎进行发版,简化了聚合的流程,提高了数据聚合的效率;本申请实施例提供的一种基于引擎的数据聚合方法,包括:获取目标数据和聚合模型;解析所述聚合模型以获得用户配置的聚合规则;根据所述聚合规则从目标数据中聚合出所述聚合规则定义的数据。在本申请提供的实施例中,首先将海量数据存入文件或其他存储介质(该数据包括流失数据)中,然后每隔一段时间读取文件,将文件内容采用mapreduce的方式进行计算。特别地,在云环境下存储的数据量很大,因此在对云环境中存储的海量目标数据进行统计时,需要对海量的目标数据进行聚合。当然数据也可以是本地数据库或者其他容量较大的数据库/存储介质。聚合引擎从存储介质中获取对应的目标数据,其中目标数据可以是部分数据库中的数据,或者具有某一种或者一类标识的数据(如用户id、具有应用程序名称等的标识),聚合模型为用于筛选数据的计算模型,聚合模型中设置了聚合目标数据中明细数据的规则,因此,在引擎获取到聚合模型后,对该聚合模型进行解析以获得用户配置的聚合规则,该聚合规则包括了用户自定义的一套描述语句,该自定义描述语句中包括定义被聚合数据的属性的语句,所述数据的属性包括:数据类型、聚合等级。基于用户配置的聚合规则的描述语句,通过解析后的解析规则从前述的目标数据中聚合出所述聚合规则定义的数据,在基于引擎之下,通过用户自定义聚合规则,以使得引擎能够通过该规则进行数据的聚合,加快了从目标数据中聚合出明细数据的速度,使得原需要2-3秒的聚合降低到了毫秒级别的聚合,同时也简化了聚合流程,由于是基于引擎进行用户自行配置聚合规则,则不需要全面检测在该聚合规则下的引擎功能、可靠、性能、易用、安全、兼容性等,使得该引擎无需发版,在有新的聚合字段时,用户可以通过其自定义的描述语句更改聚合字段,进而提高了聚合效率。

本发明实施例提供的服务器可以实现上述提供的基于引擎的数据聚合方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1