数据过滤方法及装置与流程

文档序号:14911273发布日期:2018-07-10 23:29阅读:184来源:国知局

本申请涉及数据过滤领域,具体而言,涉及一种数据过滤方法及装置。



背景技术:

对于类似订单表这样的数据,会存在很多订单状态的变更,每一次订单状态的变更,都会在系统里记录一个状态数据,因此一个订单具有多条记录。在查询订单量这些指标时,相同的订单ID只需要计算一次,因此,需要对一个订单的多条记录进行去重处理。为了进行去重处理,相关技术中采用的方法为:为订单表,添加一个去重的视图,在查询时直接在去重的视图中进行查询。例如,在对视图进行查询时,先将全部的订单数据进行去重后,再用时间来进行过滤,随着历史数据的越来越多,对整个订单量数据进行去重的性能开销也会越来越大,导致过滤效率也较低。

针对相关技术中在查询指标数据时引起系统性能开销较大,导致过滤效率较低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种数据过滤方法及装置,以解决相关技术中在查询指标数据时引起系统性能开销较大,导致过滤效率较低的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种数据过滤方法。该方法包括:接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件用于在非原始的数据表中进行过滤;根据第一过滤条件对原始的数据表进行过滤;对过滤后的原始的数据表进行去重处理,得到临时表;以及根据第二过滤条件对临时表进行过滤。

进一步地,根据第一过滤条件对原始的数据表进行过滤包括:获取第一过滤条件中涉及的维度;以及基于第一过滤条件中涉及的维度对原始的数据表进行过滤。

进一步地,对过滤后的原始的数据表进行去重处理,得到临时表包括:确定过滤后的原始的数据表中相同的指标;对过滤后的原始的数据表中相同的指标进行去重处理;将去重处理后的数据表作为临时表。

进一步地,在根据第二过滤条件对临时表进行过滤之后,该方法还包括:接收查询请求,其中,查询请求中包括维度和指标,指标为查询请求指示查询的内容,维度为查询请求指示限制查询内容的限制条件;根据过滤后的临时表、查询请求中的维度和指标生成查询语言;基于查询语言在过滤后的临时表中进行数据查询。

进一步地,查询语言为SQL语言。

为了实现上述目的,根据本申请的另一方面,提供了一种数据过滤装置。该装置包括:第一接收单元,用于接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件为不能对原始的数据表中进行过滤的条件;第一过滤单元,用于根据第一过滤条件对原始的数据表进行过滤;去重单元,用于对过滤后的原始的数据表进行去重处理,得到临时表;以及第二过滤单元,用于根据第二过滤条件对临时表进行过滤。

进一步地,第一过滤单元包括:获取模块,用于获取第一过滤条件中涉及的维度;以及过滤模块,用于基于第一过滤条件中涉及的维度对原始的数据表进行过滤。

进一步地,去重单元包括:第一确定模块,用于确定过滤后的原始的数据表中相同的指标;去重模块,用于对过滤后的原始的数据表中相同的指标进行去重处理;第二确定模块,用于将去重处理后的数据表作为临时表。

进一步地,该装置还包括:第二接收单元,用于在根据第二过滤条件对临时表进行过滤之后,接收查询请求,其中,查询请求中包括维度和指标,指标为查询请求指示查询的内容,维度为查询请求指示限制查询内容的限制条件;生成单元,用于根据过滤后的临时表、查询请求中的维度和指标生成查询语言;查询单元,用于基于查询语言在过滤后的临时表中进行数据查询。

进一步地,查询语言为SQL语言。

通过本申请,采用以下步骤:接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件用于在非原始的数据表中进行过滤;根据第一过滤条件对原始的数据表进行过滤;对过滤后的原始的数据表进行去重处理,得到临时表;以及根据第二过滤条件对临时表进行过滤,解决了相关技术中在查询指标数据时引起系统性能开销较大,导致过滤效率较低的问题。进而达到了提升数据过滤效率的效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的数据过滤方法的流程图;以及

图2是根据本申请实施例提供的数据过滤装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请的实施例,提供了一种数据过滤方法。

图1是根据本申请实施例的数据过滤方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件用于在非原始的数据表中进行过滤。

例如,接收到的过滤请求中携带的过滤条件为第一季度对产品A的订单量和访问量。如果在原始的数据表中包括第一季度、产品A和订单量这3个维度,第一季度对产品A的订单量能够在原始的数据表中进行过滤,第一季度产品A的访问量不能在原始的数据表中进行过滤,也即,第一季度产品A的订单量为第一过滤条件,第一季度产品A的访问量为第二过滤条件。

需要说明的是,在本申请中提及的原始的数据表可以为事实表(Fact Table),用于实时记录系统中的所有数据的表。

步骤S102,根据第一过滤条件对原始的数据表进行过滤。

由于第一过滤条件能够在原始的数据表中进行过滤,根据第一过滤条件对原始的数据表进行过滤。

可选地,在本申请实施例提供的数据过滤方法中,根据第一过滤条件对原始的数据表进行过滤包括:获取第一过滤条件中涉及的维度;以及基于第一过滤条件中涉及的维度对原始的数据表进行过滤。

例如,第一过滤条件为第一季度产品A的订单量,第一过滤条件中涉及的维度为订单量、第一季度、产品A,基于订单量、第一季度、产品A对原始的数据表进行过滤,也即从原始的数据表中筛选出包含订单量、第一季度、产品A的维度列,作为过滤后的原始的数据表。

步骤S103,对过滤后的原始的数据表进行去重处理,得到临时表。

由于过滤后的原始的数据表中可能包含重复的数据信息,为了提升数据过滤的效率和后续数据查询的准确性,对过滤后的原始的数据表进行去重处理,将去重处理后的数据表作为临时表。

可选地,在本申请实施例提供的数据过滤方法中,对过滤后的原始的数据表进行去重处理,得到临时表包括:确定过滤后的原始的数据表中相同的指标;对过滤后的原始的数据表中相同的指标进行去重处理;将去重处理后的数据表作为临时表。

需要说明的是,在本申请中提及的指标为后续在表中进行数据查询时查询的内容。

例如,每一个订单会有很多订单状态的变更,每一次订单的变更,都会在原始的数据表中记录一个状态数据行,这样一个订单就有多条记录,而在查询订单量这些指标的时候,相同的订单id又只需要计算一次,因此,需要对其中相同的订单id(相同的指标)的多条记录进行去重处理。将去重处理后的数据表作为临时表。

步骤S104,根据第二过滤条件对临时表进行过滤。

基于过滤条件中的第二过滤条件对临时表进行过滤,由于临时表由第一过滤条件对原始的数据表进行过滤并经过去重处理后得到的,因此,再基于过滤条件中的第二过滤条件对临时表进行过滤,加快了数据过滤的速度,提升了数据过滤效率。

可选地,在本申请实施例提供的数据过滤方法中,在根据第二过滤条件对临时表进行过滤之后,该方法还包括:接收查询请求,其中,查询请求中包括维度和指标,指标为查询请求指示查询的内容,维度为查询请求指示限制查询内容的限制条件;根据过滤后的临时表、查询请求中的维度和指标生成查询语言;基于查询语言在过滤后的临时表中进行数据查询。

可选地,在本申请实施例提供的数据过滤方法中,查询语言为SQL语言。

通过以上步骤,在根据查询请求进行数据查询之前,选取符合所有查询条件(过滤条件)的数据列,在这些数据列组成的临时表中进行查询,使其无任何历史负担,减小了系统性能开销,保证了去重的数据集最小同时也保障了查询性能最优,也即,仅选取了需要的数据列,对列式存储的引擎来讲,物理io开销最低。进而达到了提升数据查询效率的效果。

通过以上内容公开了生成查询语言的一个方式,需要说明的是,生成查询语言的方式有很多,生成的查询语言的格式等等也各不相同,在本申请中,不对其具体作限定。在本申请实施例提供的数据过滤方法中,查询语言为SQL语言。也即,根据过滤后的临时表、查询请求中的维度和指标生成SQL语言,基于查询语言在过滤后的临时表中进行数据查询,在查询结束之后,返回查询到的结果。

本申请实施例提供的数据过滤方法,通过接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件用于在非原始的数据表中进行过滤;根据第一过滤条件对原始的数据表进行过滤;对过滤后的原始的数据表进行去重处理,得到临时表;以及根据第二过滤条件对临时表进行过滤,解决了相关技术中在查询指标数据时引起系统性能开销较大,导致过滤效率较低的问题。进而达到了提升数据过滤效率的效果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种数据过滤装置,需要说明的是,本申请实施例的数据过滤装置可以用于执行本申请实施例所提供的用于数据过滤方法。以下对本申请实施例提供的数据过滤装置进行介绍。

图2是根据本申请实施例的数据过滤装置的示意图。如图2所示,该装置包括:第一接收单元10,第一过滤单元20,去重单元30和第二过滤单元40。

接收单元10,用于接收查询请求,其中,查询请求中携带有查询条件。

第一接收单元10,用于接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件为不能对原始的数据表中进行过滤的条件。

第一过滤单元20,用于根据第一过滤条件对原始的数据表进行过滤。

去重单元30,用于对过滤后的原始的数据表进行去重处理,得到临时表。

第二过滤单元40,用于根据第二过滤条件对临时表进行过滤。

本申请实施例提供的数据过滤装置,通过第一接收单元10接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件为不能对原始的数据表中进行过滤的条件;第一过滤单元20根据第一过滤条件对原始的数据表进行过滤;去重单元30对过滤后的原始的数据表进行去重处理,得到临时表;以及第二过滤单元40根据第二过滤条件对临时表进行过滤。解决了相关技术中在查询指标数据时引起系统性能开销较大,导致过滤效率较低的问题。进而达到了提升数据过滤效率的效果。

可选地,在本申请实施例提供的数据过滤装置中,第一过滤单元包括:获取模块,用于获取第一过滤条件中涉及的维度;以及过滤模块,用于基于第一过滤条件中涉及的维度对原始的数据表进行过滤。

可选地,在本申请实施例提供的数据过滤装置中,去重单元包括:第一确定模块,用于确定过滤后的原始的数据表中相同的指标;去重模块,用于对过滤后的原始的数据表中相同的指标进行去重处理;第二确定模块,用于将去重处理后的数据表作为临时表。

可选地,在本申请实施例提供的数据过滤装置中,该装置还包括:第二接收单元,用于在根据第二过滤条件对临时表进行过滤之后,接收查询请求,其中,查询请求中包括维度和指标,指标为查询请求指示查询的内容,维度为查询请求指示限制查询内容的限制条件;生成单元,用于根据过滤后的临时表、查询请求中的维度和指标生成查询语言;查询单元,用于基于查询语言在过滤后的临时表中进行数据查询。

可选地,在本申请实施例提供的数据过滤装置中,查询语言为SQL语言。

所述数据过滤装置包括处理器和存储器,上述第一接收单元10,第一过滤单元20,去重单元30和第二过滤单元40等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元实现相应功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数去执行查询数据。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收过滤请求,其中,过滤请求中携带有过滤条件,过滤条件中包括第一过滤条件和第二过滤条件,第一过滤条件用于在原始的数据表中进行过滤,第二过滤条件用于在非原始的数据表中进行过滤;根据第一过滤条件对原始的数据表进行过滤;对过滤后的原始的数据表进行去重处理,得到临时表;以及根据第二过滤条件对临时表进行过滤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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