一种用于大数据的排序方法及系统技术方案

技术编号:10497796 阅读:163 留言:0更新日期:2014-10-04 15:01
一种用于大数据的排序方法和系统。所述方法包括如下步骤:对每个数据建立索引,其中每个索引对应所述数据的至少一个特征;建立数组,并从所有数据选取预设目标排序数量的数据的索引放入所述数组;将剩余数据的预设排序的特征与所述数组中的数据的预设排序的特征进行比较,依据预设排序条件和比较结果确定是否替换所述数组中已存的索引;当所有数据比较完毕后,根据当前所述数组中的索引查找所述索引对应的数据;对查找到的数据根据所述预设排序规则进行排序。本发明专利技术降低了排序的耗时和复杂度,提高了排序效率。

【技术实现步骤摘要】
一种用于大数据的排序方法及系统
本专利技术涉及数据统计和处理
,特别涉及一种用于大数据的排序方法和系统。
技术介绍
排序是一种常见的操作,对于一些应用来说可能需要将大量数据,根据某种特点进行TopN排序,并给出对应TopN的一系列数据,因此需要一个良好的方法,保证准确性和高效性。 现有技术的排序方法通常是使用现有的排序算法,例如冒泡排序,快速排序,插入排序等。现有的这些排序算法,对于数据量较小时效果比较好。但是,当数据量比较大时,排序的效率则相对较低。例如,当有100万个数据时,仅需获得topN(比如,N = 10)的排序,使用现有方法必须对100万个数据全进行排序,整个工作显然是耗时且复杂的。
技术实现思路
本专利技术的目的是提供一种用于大数据的排序方法,该方法降低了排序的耗时和复杂度,提高了排序效率。 为实现上述目的,本专利技术实施方式提供一种用于大数据的排序方法,包括如下步骤: 对每个数据建立索引,其中每个索引对应数据的至少一个特征; 建立数组,并从所有数据选取预设目标排序数量的数据的索引放入所述数组; 将剩余数据的预设排序的特征与所述数组中的数据的预设排序的特征进行比较,依据预设排序条件和比较结果确定是否替换所述数组中已存的索引; 当所有数据比较完毕后,根据当前所述数组中的索引查找所述索引对应的数据; 对查找到的数据根据所述预设排序规则进行排序。 根据本专利技术的一个方面,所述数组的大小等于或大于所述预设目标排序数量。 根据本专利技术的另一个方面,所述预设排序条件为所述数组中索引对应的每个数据均大于或小于所述数组外的每个剩余数据;所述预设排序规则为升序排序或降序排序。 根据本专利技术的又一方面,所述特征至少包括用户名、使用流量、登录时长和登录设备。 根据本专利技术的再一方面,在对查找到的数据根据所述预设排序规则进行排序之后,还包括如下步骤:根据排序后数据的索引,获取符合所述预设排序规则的每个数据的至少一个特征。 根据本法实施方式的用于大数据的排序方法,在执行TopN排序时,不需要对所有数据进行排序,仅仅是对N+1个数据进行简单的比较大小的操作,而不是相对复杂的排序操作。当数据量较大时,本专利技术可以降低排序的耗时和复杂度,提高了排序效率,达到高效的找到TopN的目的。 本专利技术的另一个目的是提供一种用于大数据的排序系统,该系统降低了排序的耗时和复杂度,提高了排序效率。 为实现上述目的,本专利技术实施方式提供一种用于大数据的排序系统,包括:索引建立模块,用于对每个数据建立索引,其中每个索引对应数据的至少一个特征;数组建立模块,所述数据建立模块连接至所述索引建立模块,用于建立数组,并从所有数据选取预设目标排序数量的数据的索引放入所述数组;特征比较模块,所述特征比较模块连接至所述数组建立模块,用于将剩余数据的预设排序的特征与所述数组中的数据的预设排序的特征进行比较;索引确定模块,所述索引确定模块连接至所述特征比较模块,用于依据预设排序条件和比较结果确定是否替换所述数组中已存的索引;数据查找模块,所述数据查找模块连接至所述索引确定模块,用于当所有数据比较完毕后,根据当前所述数组中的索引查找所述索引对应的数据;数据排序模块,所述数据排序模块连接至所述数据查找模块,用于对查找到的数据根据所述预设排序规则进行排序。 根据本专利技术的一个方面,所述数组的大小等于或大于所述预设目标排序数量。 根据本专利技术的另一个方面,所述预设排序条件为所述数组中索引对应的每个数据均大于或小于所述数组外的每个剩余数据;所述预设排序规则为升序排序或降序排序。 根据本专利技术的又一方面,所述特征至少包括用户名、使用流量、登录时长和登录设备。 根据本专利技术的再一方面,所述数据排序模块还用于根据排序后数据的索引,获取符合所述预设排序规则的每个数据的至少一个特征。 根据本专利技术实施方式的用于大数据的排序系统,在执行TopN排序时,不需要对所有数据进行排序,仅仅是对N+1个数据进行简单的比较大小的操作,而不是相对复杂的排序操作。当数据量较大时,本专利技术可以降低排序的耗时和复杂度,提高了排序效率,达到高效的找到TopN的目的。 【附图说明】 图1是根据本专利技术第一实施方式的用于大数据的排序方法的流程图; 图2示意性地示出索引-特征结构; 图3是根据本专利技术第二实施方式的用于大数据的排序方法的流程图; 图4是根据本专利技术实施方式的用于大数据的排序系统的结构图。 【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。 通常在统计用户或者APP应用的流量时,所统计的流量信息包括:数据量的大小(使用流量)、用户名以及使用的APP软件等。排序时需要从上述这些流量信息中,找到真正的数据量来进行排序。为此,本专利技术引入了索引,通过索引查找到流量信息,进而也就查找到具体的数据量,例如:用户名或使用的APP软件。图1是根据本专利技术第一实施方式的用于大数据的排序方法的流程图。本专利技术提出的用于大数据的排序方法实际上仅仅是需要TopN的数据,只要找到索引即可,很多操作都是用索引实现,而不需要将所有数据(如,100万个数据)都排序,从而降低了排序的耗时和复杂度,提高了排序效率。 如图1所示,本专利技术第一实施方式的用于大数据的排序方法,包括如下步骤: 步骤SI,对每个数据建立索引。数据类型不做限制,例如:流量数据、时间数据等均可。 其中,每个索引对应数据的至少一个特征。图2示意性地示出索引-特征结构。如图2所示,索引可以对应数据的三个特征,特征1、特征2、特征3等。优选的,以流量数据为例,数据的特征可以至少包括用户名、使用流量、登录时长和登录设备。 需要说明的是,此处对特征的数量和内容的举例,仅是出于示例的目的,其他示例在此不再赘述。 步骤S2,建立数组,并从所有数据选取预设目标排序数量的数据的索引放入数组。 在本专利技术的实施方式中,数组的大小等于或大于所述预设目标排序数量。 换言之,如果要对所有数据进行针对某个特征的TopN排序,即对数据某个特征的前N个数据进行排序,则N为预设目标排序数量。建立的数组的大小至少为N。从所有的P个数据中选取N个数据的索引放入到数组中,其中N小于P。并且,上述放入数组的N个数据可以为随机选取的N个,并非经过排序完成的N个数据。 步骤S3,将剩余数据的预设排序的特征与数组中的数据的预设排序的特征进行比较,依据预设排序条件和比较结果确定是否替换数组中已存的索引。其中,预设排序条件为数组中索引对应的每个数据均大于或小于数组外的每个剩余数据。 以流量数据按使用流量进行降序排列为例,选取使用流量最多的前N个数据。 具体地,从所有P个流量数据中,取出下一个流量数据,将其对应的使用流量和数组中已存的索引对应的流量数据的使用流量进行大小比较。如果判断新取出的流量数据的使用流量最小,则继续重复该步骤,取出下一个流量数据进行比较。如果新取出的流量数据的使用流量不是最小,则用该流量数据的索引替本文档来自技高网...
一种用于大数据的排序方法及系统

【技术保护点】
一种用于大数据的排序方法,包括如下步骤:对每个数据建立索引,其中每个索引对应数据的至少一个特征;建立数组,并从所有数据选取预设目标排序数量的数据的索引放入所述数组;将剩余数据的预设排序的特征与所述数组中的数据的预设排序的特征进行比较,依据预设排序条件和比较结果确定是否替换所述数组中已存的索引;当所有数据比较完毕后,根据当前所述数组中的索引查找所述索引对应的数据;以及对查找到的数据根据所述预设排序规则进行排序。

【技术特征摘要】
1.一种用于大数据的排序方法,包括如下步骤: 对每个数据建立索引,其中每个索引对应数据的至少一个特征; 建立数组,并从所有数据选取预设目标排序数量的数据的索引放入所述数组; 将剩余数据的预设排序的特征与所述数组中的数据的预设排序的特征进行比较,依据预设排序条件和比较结果确定是否替换所述数组中已存的索引; 当所有数据比较完毕后,根据当前所述数组中的索引查找所述索引对应的数据;以及 对查找到的数据根据所述预设排序规则进行排序。2.根据权利要求1所述的用于大数据的排序方法,其中,所述数组的大小等于或大于所述预设目标排序数量。3.根据权利要求1所述的用于大数据的排序方法,其中, 所述预设排序条件为所述数组中索引对应的每个数据均大于或小于所述数组外的每个剩余数据; 所述预设排序规则为升序排序或降序排序。4.根据权利要求1所述的用于大数据的排序方法,其中,所述特征至少包括用户名、使用流量、登录时长和登录设备。5.根据权利要求 1-4任一项所述的用于大数据的排序方法,其中,在对查找到的数据根据所述预设排序规则进行排序之后,还包括如下步骤:根据排序后数据的索引,获取符合所述预设排序规则的每个数据的至少一个特征。6.一种用于大数据的排序系统,包括: 索引建立模块,用于对每个数据建立索引,其中每个索引对应数据的至少一个特征;数组建立模块,...

【专利技术属性】
技术研发人员:李鹏
申请(专利权)人:汉柏科技有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1