CN108733790B - 数据排序方法、装置、服务器和存储介质 - Google Patents

数据排序方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN108733790B
CN108733790B CN201810450064.XA CN201810450064A CN108733790B CN 108733790 B CN108733790 B CN 108733790B CN 201810450064 A CN201810450064 A CN 201810450064A CN 108733790 B CN108733790 B CN 108733790B
Authority
CN
China
Prior art keywords
data
sorted
partition
sorting
numerical value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810450064.XA
Other languages
English (en)
Other versions
CN108733790A (zh
Inventor
曾志华
仇贲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Information Technology Co Ltd
Original Assignee
Guangzhou Huya Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Information Technology Co Ltd filed Critical Guangzhou Huya Information Technology Co Ltd
Priority to CN201810450064.XA priority Critical patent/CN108733790B/zh
Publication of CN108733790A publication Critical patent/CN108733790A/zh
Application granted granted Critical
Publication of CN108733790B publication Critical patent/CN108733790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据排序方法、装置、服务器和存储介质。所述数据排序方法包括:根据数据排序指令中的数据属性,查找待排序数据,待排序数据包括数据属性和数值;根据与待排序数据的数值对应的标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,并确定与各待排序数据分区分别对应的分区维度标识和全数据位置信息;根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。本发明实施例的技术方案实现了多窗口分区共同响应操作于Hive数据仓库的排序类窗口函数,提高了对Hive数据仓库中存储数据的排序速度。

Description

数据排序方法、装置、服务器和存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据排序方法、装置、服务器和存储介质。
背景技术
Hive是基于Hadoop分布式文件系统的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:在Hive上直接使用窗口函数进行数据排序时,不会配置多个窗口分区共同对数据进行排序,只会启动单个窗口分区做全数据排序。
发明内容
有鉴于此,本发明实施例提供了一种数据排序方法、装置、服务器和存储介质,以优化现有技术中使用窗口函数对Hive数据仓库中存储的数据进行排序的方法,提高了对Hive数据仓库存储数据进行排序的速度。
在第一方面,本发明实施例提供了一种数据排序方法,包括:
根据数据排序指令中的数据属性,查找待排序数据,其中,所述待排序数据包括所述数据属性和数值;
根据与所述待排序数据的数值对应的标准化数值的排序结果,将所述待排序数据划分至两个或两个以上待排序数据分区,并确定与各所述待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,所述全数据位置信息用于指示所述待排序数据分区中的待排序数据在全部所述待排序数据中的位置;
根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果。
在第二方面,本发明实施例提供了一种数据排序装置,包括:
数据查找模块,用于根据数据排序指令中的数据属性,查找待排序数据,其中,所述待排序数据包括所述数据属性和数值;
数据分区模块,用于根据与所述待排序数据的数值对应的标准化数值的排序结果,将所述待排序数据划分至两个或两个以上待排序数据分区,并确定与各所述待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,所述全数据位置信息用于指示所述待排序数据分区中的待排序数据在全部所述待排序数据中的位置;
数据排序模块,用于根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果。
在第三方面,本发明实施例提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的数据排序方法。
在第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的数据排序方法。
本发明实施例提供了一种数据排序方法、装置、服务器和存储介质,通过先对与查找到的待排序数据的数值对应的标准化数值进行排序,然后根据排序结果对待排序数据进行分区,最后通过将各个待排序数据分区调用为不同的待排序窗口分区,并结合全数据位置信息得到待排序数据的排序结果,解决了现有技术中在Hive上直接使用窗口函数进行数据排序时,无法通过多窗口分区共同对数据进行排序的技术缺陷,实现了多窗口分区共同响应操作于Hive数据仓库的排序类窗口函数,提高了对Hive数据仓库中存储数据的排序速度。
附图说明
图1是本发明实施例一提供的一种数据排序方法的流程图;
图2是本发明实施例二提供的一种数据排序方法的流程图;
图3是本发明实施例三提供的一种数据排序方法的流程图;
图4是本发明实施例四提供的一种数据排序方法的流程图;
图5是本发明实施例五提供的一种数据排序装置的结构图;
图6是本发明实施例六提供的一种服务器的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种数据排序方法的流程图,本实施例的方法可以由数据排序装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于服务器或服务器集群中,例如与Hadoop分布式文件系统对应的服务器或服务器集群。本实施例的方法具体包括:
101、根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值。
本领域技术人员可以理解的是,在使用SQL(Structured Query Language,结构化查询语言)窗口函数对Hadoop分布式文件系统中Hive数据仓库中的数据进行排序时,不会配置多个窗口分区共同对数据进行排序,只会启动一个窗口分区对全部数据进行排序,这种情况下,数据量级较大时需要花费较长时间才能完成对全部数据的排序操作。然而,本实施例中步骤101至步骤103所形成的数据排序方法实现了通过SQL窗口函数对Hive数据仓库中的数据进行排序时,可以通过多个窗口分区共同对数据排序,大大缩短了对大数量级数据进行排序的时间。
在本实施例中,数据排序指令具体可以由用户终端发送,也可以由其他服务器发送等,本实施例对此不进行限制。进一步地,数据排序指令中包括有数据属性,该数据属性典型的可以是数据的含义等。例如,数据属性为用户年度累积观看直播时长等。
在本实施例中,待排序数据具体是指数据属性与数据排序指令中的数据属性相同的数据。待排序数据中包括数据属性和数值,其中,数值具体是指与属性对应的数值,对待排序数据进行排序实质上就是对待排序数据中的数值进行排序。当然,除了数据属性和数值,待排序数据还可以包括与数据属性对应的其他数据内容。示例性的,当数据属性为用户年度累积观看直播时长时,数据的数值可以为1000分钟等时间数值,同时待排序数据还可以包括用户标识、观看直播时长的统计起始时间和结束时间等数据内容。
102、根据与待排序数据的数值对应的标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,并确定与各待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,全数据位置信息用于指示待排序数据分区中的待排序数据在全部待排序数据中的位置。
在本实施例中,获取到待排序数据之后会对待排序数据进行分区,目的在于通过多窗口分区对分区后的待排序数据共同进行排序操作,以减小数据的排序时间。进一步地,对待排序数据进行分区的结果应满足数值在同一数值区间的待排序数据划分为一组,以便在将不同的窗口分区对不同的待排序数据分区进行数据排列之后的排序结果进行组合时,可以通过非常简单的组合方式即可得到所有待排序数据最终的排序结果。
本领域技术人员可以理解的是,由于大数据技术的普遍应用,现在很多的数据排序操作所需处理的数据的数量级都是非常大的,例如千万级或亿万级等。因此如果直接将这些数据按照数值区间进行分区计算量会非常大,此时,一般可以通过首先对数据进行标准化,然后根据各个数据的标准化数值对数据进行分区,进而大大减小数据分区的计算量。
在本实施例中,在查找到待排序数据之后,首先会计算各个待排序数据的数值对应的标准化数值,然后根据标准化数值的大小以及数据排序指令确定标准化数值的排序结果。具体而言,当数据排序指令对应的排序类型为降序时,那么可以将标准化数值按照降序进行排列得到标准化数值的排序结果;当数据排序指令对应的排序类型为升序时,那么可以将标准化数值按照升序进行排列得到标准化数值的排序结果。
进一步地,在对标准化数值进行排序之前,可以先根据设定有效位数对标准化数值进行截取,以减小标准化数值的数量级,进而减小对待排序数据进行分区的计算量。
在本实施例中,在确定标准化数值的排序结果之后就可以对待排序数据进行分区。以“以便在将不同的窗口分区对不同的待排序数据分区进行数据排列之后的排序结果进行组合时,可以通过非常简单的组合方式即可得到所有待排序数据最终的排序结果”为原则,在进行对待排序数据进行分区时,划分至一个待排序数据分区的待排序数据对应的标准化数值应该是相邻的,或划分至一个待排序数据分区的待排序数据仅对应一个标准化数值。
进一步地,在本实施例中,将待排序数据划分至两个或两个以上待排序数据分区时,具体可以是依据标准化数值的排序结果将每一个标准化数值对应的所有待排序数据划分为一个待排序数据分区;也可以是先将标准化数值平均划分为设定数量(设定数量可以是预先设定的,设定数量应是大于等于2的正整数)组,将每一组中所有标准化数值对应的所有待排序数据划分为一个待排序数据分区;还可以是依据标准化数值的排序结果从头到尾选取标准化数值,根据各个标准化数值对应的待排序数据的数量以及各个待排序数据分区最少应包含待排序数据的数量对标准化数值进行分组,然后将每一组中所有标准化数值对应的待排序数据划分为一个待排序数据分区等。
在本实施例中,为了多窗口分区共同完成对待排序数据的排序,会将待排序数据划分为至少两个待排序数据分区,当然,所划分的待排序数据分区的数量越多,对待排序数据的排序计算效率越高,本实施例中的数排序方法的优点也就更加突出。
进一步地,由于待排序数据的数量级不尽相同,如果数据量较小则待排序数据分区不易过多,以节省服务器的运算资源。因此,在查找到待排序数据之后,还可以根据待排序数量的数量级确定待排序数据分区的个数。例如,可以根据存储的数据数量级与待排序数据分区个数匹配表确定待排序数据分区的个数。
在本实施例中,在将待排序数据划分至两个或两个以上待排序数据分区之后,会为每一个待排序数据分区确定一个分区维度标识,不同待排序数据分区的分区维度标识不同。分区维度标识具体用于唯一标识一个待排序数据分区,根据分区维度标识可以确定待排序数据分区的全部数据内容。分区维度标识典型的可以是英文字母等。
在本实施例中,在将待排序数据划分至两个或两个以上待排序数据分区之后,还会为每一个待排序数据确定一个全数据位置信息,该全数据位置信息具体是指待排序数据分区中的待排序数据在待排序数据的排序结果中的位置信息。具体而言,全数据位置信息可以是根据待排序数据分区对应的标准化数值的排序结果所确定的待排序数据分区的分区编号,也可以是根据待排序数据分区对应的标准化数值的排序结果所确定的,在待排序数据的排序结果中位于本待排序数据分区之前的待排序数据的总数量等。
示例性的,当全数据位置信息为根据待排序数据分区对应的标准化数值的排序结果所确定的待排序数据分区的分区编号时,如果待排序数据分区对应的标准化数值为标准化数值的排序结果中的第5个标准化数值,且每一个待排序数据分区仅与一个标准化数值对应,那么此时该待排序数据分区的分区编号为5。
进一步地,本步骤102可以通过函数data_section_split()实现,在此不再对该函数的使用方法进行详细阐述。
103、根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。
在本实施例中,在待排序数据分区、分区维度标识以及全数据位置信息确定之后,为了实现多窗口分区共同对待排序数据进行排序,会根据分区维度标识将每一个待排序数据分区分别调用为不同的待排序窗口分区,进而可以对不同的待排序窗口分区中的数据同时分别进行排序。
在本实施例中,在待排序窗口分区建立之后,首先会分别对各个待排序数据分区中的待排序数据进行排序,然后根据全位置数据信息以及上述排序结果共同确定待排序数据的排序结果。
示例性的,当全数据位置信息为根据待排序数据分区对应的标准化数值的排序结果所确定的待排序数据分区的分区编号时,那么可以根据分区编号从小到大或从小到大将对应的待排序数据分区的排序结果进行汇总进而得到待排序数据的排序结果。当全数据位置信息为根据待排序数据分区对应的标准化数值的排序结果所确定的,在待排序数据的排序结果中位于本待排序数据分区之前的待排序数据的总数量时,可以根据前位数据总数对待排序数据分区的排序结果进行修正,修正后的排序结果即为待排序窗口分区中的待排序数据在全部待排序数据中的排序结果。
进一步地,本步骤102可以通过函数rank()over((partition by))实现,在此不再对该函数的使用方法进行详细阐述。
本发明实施例提供了一种数据排序方法,通过先对与查找到的待排序数据的数值对应的标准化数值进行排序,然后根据排序结果对待排序数据进行分区,最后通过将各个待排序数据分区调用为不同的待排序窗口分区,并结合全数据位置信息得到待排序数据的排序结果,解决了现有技术中在Hive上直接使用窗口函数进行数据排序时,无法通过多窗口分区共同对数据进行排序的技术缺陷,实现了多窗口分区共同响应操作于Hive数据仓库的排序类窗口函数,提高了对Hive数据仓库中存储数据的排序速度。
实施例二
图2是本发明实施例二提供的一种数据排序方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,给出了一种通过设定有效位数对初始标准化数值进行截取得到标准化数值,根据第一预设个数或第二预设个数对待排序数据进行划分的具体实施方式。
相应的,本实施例的方法具体包括:
201、根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值。
202、将待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各初始标准化数值进行截取得到各标准化数值,并根据数据排序指令对标准化数值排序。
在本实施例中,标准化处理具体可以是标准差标准化法、min-max标准化法、log函数转换法、atan函数转换法或z-score标准化法等。
本领域技术人员可以理解的是,当待排序数据的数量级较大时,通过标准化处理得到的与待排序数据对应的标准化数值的数量级很可能也较大。因此,在本实施例中,为了提高数据处理速度尽快对待排序数据进行分区,增加了标准化数值的截取过程。
在本实施例中,在标准化处理得到待排序数据的数值对应的初始标准化数值之后,会先依据设定有效位数对各初始标准化数值进行截取得到各标准化数值,通过有效位截取之后,可以使得标准化数值的数量级大大低于初始标准化数值的数量级。
进一步地,可以根据初始标准化数值的数量级确定设定有效位数。示例性地,可以预先存储初始标注化数据的数量级与设定有效位数的对应关系,然后根据当前初始标准化数值的数量级确定当前的设定有效位数。
在本实施例中,根据数据排序指令对标准化数值排序具体可以是当数据排序指令对应的排序类型为升序排列时,将标准化数值进行升序排列;当数据排序指令对应的排序类型为降序排列时,将标准化数值进行降序排列。
203、根据标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,待排序数据分区的个数为第一预设个数,或者,待排序数据分区中的待排序数据的个数大于等于第二预设个数,第一预设个数和第二预设个数均为大于1的正整数。
在本实施例中,待排序数据的划分方式满足以下两点:第一、将同一标准化数值对应的待排序数据划分至同一个待排序数据分区;第二、待排序数据的划分方式是由第一预设个数或第二预设个数决定的,其中,第一预设个数和第二预设个数均为大于1的正整数。
在本实施例中,第一预设个数为待排序数据分区的个数。具体而言,可以是与各种数据属性对应的各组待排序数据对应相同的第一预设个数,也可以是根据标准化数值的数量级确定第一预设个数等,此时应预先存储有标准化数据的数量级与第一预设个数的对应关系。
在本实施例中,第二预设个数为待排序数据分区中的待排序数据的个数的最小值,也就是说待排序数据分区中的待排序数据的个数应大于等于第二预设个数。
204、向每一个待排序数据分区分配一个分区维度标识。
205、根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的全数据位置信息。
在本实施例中,全数据位置信息是由标准化数值的排序结果以及各待排序数据分区对应的标准化数值决定的。
示例性的,当全数据位置信息为根据待排序数据分区对应的标准化数值的排序结果所确定的待排序数据分区的分区编号时,那么待排序数据分区对应的标准化数值在标准化数值的排序结果中的位置越靠前,该待排序数据分区的分区编号越靠前;当全数据位置信息为根据待排序数据分区对应的标准化数值的排序结果所确定的,在待排序数据的排序结果中位于本待排序数据分区之前的待排序数据的总数量时,那么待排序数据分区对应的标准化数值在标准化数据的排序结果中的位置越靠前,在待排序数据的排序结果中位于该待排序数据分区之前的待排序数据的总数量越小。
206、根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。
本发明实施例提供了一种数据排序方法,具体增加了依据设定有效位数对初始标准化数值的截取过程,大大减小了标准化数值的数量级,提高了对标准化数值的排序速度,进而进一步提高对待排序数据的排序速度,还具体增加了根据第一预设个数或第二预设个数对待排序数据进行划分,使得待排序数据分区的数量更加合理,实现了在提高数据排序速度的同时,还可以尽量占用更少的服务器的运算资源。
实施例三
图3是本发明实施例三提供的一种数据排序方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,给出了一种根据第一预设个数将待排序数据划分至待排序数据分区,将分区编号作为全数据位置信息的具体实施方式。
相应的,本实施例的方法具体包括:
301、根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值。
302、将待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各初始标准化数值进行截取得到标准化数值,并根据数据排序指令对标准化数值排序。
303、查找第一预设个数。
在本实施例中,第一预设个数可以事先存储在设定存储区域中。
304、根据标准化数值的排序结果,将标准化数值对应的待排序数据划分至第一预设个数的待排序数据分区中,同一标准化数值对应的待排序数据在同一待排序数据分区中。
在本实施例中,将标准化数值对应的待排序数据划分至第一预设个数的待排序数据分区中,具体可以是先依据标准化数值的数量和排序结果将所有标准化数值划分至第一预设个数的标准化数值分组中,然后将每一组标准化数值对应的所有待排序数据划分至一个待排序数据分区中;也可以是先依据待排序数据的数量、每一个标准化数值对应的待排序数据的数量以及标准化数值的排序结果,将标准化数值划分为第一预设个数的标准化数值分组,然后将每一组标准化数值对应的所有待排序数据划分至一个待排序数据分区中等。当然,无论如何标准化数值对应的待排序数据划分至第一预设个数的待排序数据分区中,都应保证同一标准化数值对应的待排序数据划分至同一个待排序数据分区中。
305、向每一个待排序数据分区分配一个分区维度标识。
306、根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的分区编号,将分区编号作为全数据位置信息。
在本实施例中,待排序数据分区对应的全数据位置信息为该待排序数据分区对应的分区编号。分区编号典型可以是阿拉伯数字,也可以是英文字母等,本实施例对比不进行限制。
在本实施例中,当待排序数据分区对应的标准化数值在标准化数值的排序结果中的位置越靠前,该待排序数据分区对应的分区编号越靠前。
307、根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并对待排序窗口分区中的待排序数据进行排序。
在本实施例中,在待排序窗口分区建立之后,即会对各个待排序窗口分区中的待排序数据分别进行排序,排序结果为待排序数据在本待排序数据分区中的排序位置。
308、根据待排序窗口分区的排序结果和分区编号,确定待排序数据的排序结果。
在本实施例中,可以直接依据分区编号的前后顺序将步骤307中待排序数据分区的排序进行排列,排列结果即为待排序数据的排序结果。
本发明实施例提供了一种数据排序方法,具体化了待排序数据的划分过程,依据第一预设个数将待排序数据划分至待排序数据分区中,如此设置可以保证待排序数据分区的个数,进而有效减少待排序数据的排序时间,还将全数据位置信息具体化为分区编号,使得待排序数据的排序结果的确定过程简便、快速。
在上述各实施例的基础上,将将待排序数据的数值标准化处理得到对应的标准化数值,并根据数据排序指令对标准化数值排序,具体化为:计算与全部待排序数据的数值对应的平均值
Figure BDA0001658211680000141
以及与全部待排序数据的数值对应的标准差S;根据公式:
Figure BDA0001658211680000142
计算得到各待排序数据的数值对应的标准化数值,其中,Xi为待排序数中的第i个数据的数值,Di为第i个数据的数值的标准化数值,i∈[1,N],N为待排序数据的数值的总数;根据数据排序指令对标准化数值排序。
这样设置的好处是:可以得到准确较高的标准化数值。
实施例四
图4是本发明实施例四提供的一种数据排序方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,给出了一种根据第二预设个数将待排序数据划分至待排序数据分区,将前位数据总数作为全数据位置信息的具体实施方式。
相应的,本实施例的方法具体包括:
401、根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值。
402、将待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各初始标准化数值进行截取得到标准化数值,并根据数据排序指令对标准化数值排序。
403、按照标准化数值的排序结果,从前到后依次获取一个标准化数值加入到当前备选分组中。
在本实施例中,离散度根据步骤405中所述的第二预设个数进行分组,第二预设个数具体是指每一个待排序数据分区中至少应包含的待排序数据的个数,且第二预设个数为大于等于1的正整数。相应地,在本实施例中增加使用“当前备选分组”以实现对标准化数值的正确分组。
在本实施例中,首先将按照标准化数值的排序结果中的第一个标准化数值加入当前备选分组,此时,当前备选分组中只包含有该“第一个标准化数值”。
404、判断与当前备选分组对应的待排序数据的个数是否大于等于第二预设个数,若是,则执行步骤405,若否,则执行步骤406。
在本实施例中,在有标准化数值加入到当前备选分组中后,即会判断与当前备选分组对应的待排序数据的个数是否大于等于第二预设个数。其中,与当前备选分组对应的待排序数据的个数具体是指当前备选分组中所有标准化数值对应的所有待排序数据的总数量。
405、将当前备选分组确定为一个标准化数值分组,并返回执行步骤403,直至完成对全部标准化数值分组。
在本实施例中,当前备选分组确定为一个标准化数值分组具体是指将当前备选分组中所有的标准化数值划分为一个标准化数值分组。
进一步地,当将当前备选分组确定为一个标准化数值分组之后,会判断是否所有的标准化数值均已分组,如果还有标准化数值没有分组,则会返回执行步骤403,直至完成对全部标准化数值的分组。
406、判断当前备选分组中的末位标准化数值是否为标准化数值的排序结果中的末位标准化数值,若是,则执行步骤407,若否,则执行步骤408。
407、将当前备选分组确定为一个标准化数值分组。
在本实施例中,如果与当前备选分组对应的待排序数据的个数小于第二预设个数,但是当前备选分组中的末位标准化数值为标准化数值的排序结果中的末位标准化数值时,会将当前备选分组确定为一个标准化分组。
408、按照标准化数值的排序结果,获取与当前备选分组中的末位标准化数值相邻的新的标准化数值加入到当前备选分组中,并返回执行步骤404。
在本实施例中,当确定当前备选分组中对应的待排序数据的个数小于第二预设个数时,则会获取与当前备选分组中的末位标准化数值相邻的新的离散度加入到当前备选分组中,使得当前备选分组中包含的标准化数值的个数增加1。其中,末位标准化数值具体是指当前备选分组中包括的所有标准化数值中,在标准化数值的顺序结果中位置最靠后的标准化数值。新的标准化数值具体是指在标准化数值的排序结果中与末位标准化数值相邻的,且位于末位标准化数值之后的标准化数值。
409、将与一个标准化数值分组中的所有标准化数值对应的待排序数据划分为一个待排序数据分区。
410、向每一个待排序数据分区分配一个分区维度标识。
411、根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的前位数据总数,将前位数据总数作为全数据位置信息。
在本实施例中,将前位数据总数作为全数据位置信息。示例性的,共有三个待排序数据分区A、B和C,待排序数据分区A包括有10个待排序数据,待排序数据分区B包括有12个待排序数据,待排序数据分区C包括有18个待排序数据,并且待排序数据分区A对应的标准化数值在标准化数值的排序结果中位置最靠前,待排序数据分区C对应的标准化数值在标准化数值的排序结果中位置最靠后,那么待排序数据分区A对应的前位数据总数为0,待排序数据分区B对应的前位数据总数为10以及待排序数据分区C对应的前位数据总数为22(10+12=22)。
412、根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并对待排序窗口分区中的待排序数据进行排序,确定待排序窗口分区中的待排序数据的初始排序位值。
在本实施例中,在待排序窗口分区建立之后,即会对各个待排序窗口分区中的待排序数据分别进行排序,排序结果为待排序数据在本待排序数据分区中的排序位置,并将该排序位置定义为初始排序位置数据。
413、根据与待排序数据分区分别对应的前位数据总数,更新初始排位值,得到待排序窗口分区中的待排序数据在全部待排序数据中的排序结果。
在本实施例中,在确定待排序窗口分区中的待排序数据的初始排序位值之后,会依据前位数据总数对初始排序位置数据进行更新,更新的方法具体为将初始排序位置数据与前位数据总数相加得到最终结果,该最终结果即是待排序数据在全部待排序数据中的排序结果。
示例性的,当待排序数据分组的前位数值总数为100,包含的待排序数据个数为50时,那么与该待排序数据分组中的待排序数据对应的初始排序位置数据应该为1至50,进而,该待排序窗口分区中的待排序数据在全部待排序数据中的排序结果应该是101至150。
本发明实施例提供了一种数据排序方法,具体化了待排序数据的划分过程,依据第二预设个数将待排序数据划分至待排序数据分区中,如此设置可以使得各个待排序数据分区中的待排序数据的个数尽量一致,有利于进一步减少待排序数据的排序时间,还将全数据位置信息具体化为前位数据总数,如此设置可以直接确定待排序数据的最终排序位置。
在上述各实施例的基础上,将根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的前位数据总数,将前位数据总数作为全数据位置信息,具体化为:根据标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区;如果确定当前操作分区为首个待排序数据分区,则将当前数据分区的前位数据总数确定为零;如果确定操作分区不为首个待排序数据分区,则获取位于当前操作分区之前的一个待排序数据分区作为参考分区;根据参考分区对应的标准化数值,确定参考分区的待排序数据总数;将参考分区的待排序数据总数与参考分区的前位数据总数之和,作为当前操作分区的前位数据总数;返回执根据标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区,直至完成对全部待排序数据分区的处理。
这样设置的好处是:可以依据第二预设数据准确地对待排序数据进行划分。
实施例五
图5是本发明实施例五提供的一种数据排序装置的结构图。如图5所示,所述装置包括:数据查找模块501、数据分区模块502以及数据排序模块503,其中:
数据查找模块501,用于根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值;
数据分区模块502,用于根据与待排序数据的数值对应的标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,并确定与各待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,全数据位置信息用于指示待排序数据分区中的待排序数据在全部待排序数据中的位置;
数据排序模块503,用于根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。
本发明实施例提供了一种数据排序装置,该装置通过数据查找模块501根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值,通过数据分区模块502根据与待排序数据的数值对应的标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,并确定与各待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,全数据位置信息用于指示待排序数据分区中的待排序数据在全部待排序数据中的位置,通过数据排序模块503,用于根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。
该装置解决了现有技术中在Hive上直接使用窗口函数进行数据排序时,无法通过多窗口分区共同对数据进行排序的技术缺陷,实现了多窗口分区共同响应操作于Hive数据仓库的排序类窗口函数,提高了对Hive数据仓库中存储数据的排序速度。
在上述各实施例的基础上,数据分区模块502可以包括:
标准化数值排序子模块,用于将待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各初始标准化数值进行截取得到各标准化数值,并根据数据排序指令对标准化数值排序;
数据划分子模块,用于根据标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,待排序数据分区的个数为第一预设个数,或者,待排序数据分区中的待排序数据的个数大于等于第二预设个数,第一预设个数和第二预设个数均为大于1的正整数;
分区维度标识分配子模块,用于向每一个待排序数据分区分配一个分区维度标识;
全数据位置信息确定子模块,用于根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的全数据位置信息。
在上述各实施例的基础上,数据划分子模块可以包括:
数据查找单元,用于查找第一预设个数;
第一数据分区单元,用于根据标准化数值的排序结果,将标准化数值对应的待排序数据划分至第一预设个数的待排序数据分区中,同一标准化数值对应的待排序数据在同一待排序数据分区中。
在上述各实施例的基础上,数据划分子模块可以包括::
当前备选分组确定单元,用于按照标准化数值的排序结果,从前到后依次获取一个标准化数值加入到当前备选分组中;
第一判断单元,用于判断与当前备选分组对应的待排序数据的个数是否大于等于第二预设个数;
第一标准化数值分组单元,用于若当前备选分组对应的待排序数据的个数大于等于第二预设个数,则将当前备选分组确定为一个标准化数值分组,并返回执行按照标准化数值的排序结果,从前到后依次获取一个标准化数值加入到当前备选分组中,直至完成对全部标准化数值分组;
第二判断单元,用于若当前备选分组对应的待排序数据的个数小于第二预设个数,则判断当前备选分组中的末位标准化数值是否为标准化数值的排序结果中的末位标准化数值;
第二标准化数值分组单元,用于若是,则将当前备选分组确定为一个标准化数值分组;
标准化数值加入单元,用于若否,则按照标准化数值的排序结果,获取与当前备选分组中的末位标准化数值相邻的新的标准化数值加入到当前备选分组中,并返回执行判断与当前备选分组对应的待排序数据的个数是否大于等于第二预设个数的操作;
待排序数据分区确定单元,用于将与一个标准化数值分组中的所有标准化数值对应的待排序数据划分为一个待排序数据分区。
在上述各实施例的基础上,标准化数值排序子模块可以包括:
平均值计算单元,用于计算与全部待排序数据的数值对应的平均值
Figure BDA0001658211680000212
以及与全部待排序数据的数值对应的标准差S;
标准化数值计算单元,用于根据公式:
Figure BDA0001658211680000211
计算得到各待排序数据的数值对应的标准化数值,其中,Xi为待排序数中的第i个数据的数值,Di为第i个数据的数值的标准化数值,i∈[1,N],N为待排序数据的数值的总数;
根据与数据排序指令对应的排序类型对标准化数值排序。
在上述各实施例的基础上,全数据位置信息确定子模块具体可以用于:
根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的分区编号,将分区编号作为全数据位置信息;
相应地,数据排序模块503可以包括:
第一待排序数据排序子模块,用于根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并对待排序窗口分区中的待排序数据进行排序;
第一排序结果确定子模块,用于根据待排序窗口分区的排序结果和分区编号,确定待排序数据的排序结果。
在上述各实施例的基础上,全数据位置信息确定子模块具体可以用于:
根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的前位数据总数,将前位数据总数作为全数据位置信息;
相应地,数据排序模块503可以包括:
第二待排序数据排序子模块,用于根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并对待排序窗口分区中的待排序数据进行排序,确定待排序窗口分区中的待排序数据的初始排序位值;
第一排序结果确定子模块,用于根据与待排序数据分区分别对应的前位数据总数,更新初始排位值,得到待排序窗口分区中的待排序数据在全部待排序数据中的排序结果。
在上述各实施例的基础上,全数据位置信息确定子模块可以包括:
当前操作分区确定单元,用于根据标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区;
第一前位数据总数确定单元,用于如果确定当前操作分区为首个待排序数据分区,则将当前数据分区的前位数据总数确定为零;
参考分区确定单元,用于如果确定操作分区不为首个待排序数据分区,则获取位于当前操作分区之前的一个待排序数据分区作为参考分区;
待排序数据总数确定单元,用于根据参考分区对应的标准化数值,确定参考分区的待排序数据总数;
前位数据总数确定单元,用于将参考分区的待排序数据总数与参考分区的前位数据总数之和,作为当前操作分区的前位数据总数;
返回单元,用于返回执根据标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区,直至完成对全部待排序数据分区的处理。
本发明实施例所提供的数据排序装置可用于执行本发明任意实施例提供的数据排序方法,具备相应的功能模块,实现相同的有益效果。
实施例六
图6为本发明实施例五提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器60、存储器61、输入装置62和输出装置63;服务器中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;服务器中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据排序方法对应的模块(例如,数据查找模块501、数据分区模块502以及数据排序模块503)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据排序方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据排序方法,该方法包括:
根据数据排序指令中的数据属性,查找待排序数据,其中,待排序数据包括数据属性和数值;
根据与待排序数据的数值对应的标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,并确定与各待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,全数据位置信息用于指示待排序数据分区中的待排序数据在全部待排序数据中的位置;
根据分区维度标识将待排序数据分区调用为一个待排序窗口分区,并通过待排序窗口分区和全数据位置信息确定待排序数据的排序结果。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据排序方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据排序装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据排序方法,其特征在于,包括:
根据数据排序指令中的数据属性,查找待排序数据,其中,所述待排序数据包括所述数据属性和数值;
根据与所述待排序数据的数值对应的标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,并确定与各所述待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,所述全数据位置信息用于指示所述待排序数据分区中的待排序数据在全部所述待排序数据中的位置;
根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果;
其中,所述根据与所述待排序数据的数值对应的标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,并确定与各所述待排序数据分区分别对应的分区维度标识和全数据位置信息,包括:
将所述待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各所述初始标准化数值进行截取得到各标准化数值,并根据所述数据排序指令对所述标准化数值排序;
根据所述标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,所述待排序数据分区的个数为第一预设个数,或者,所述待排序数据分区中的待排序数据的个数大于等于第二预设个数,所述第一预设个数和所述第二预设个数均为大于1的正整数;
向每一个所述待排序数据分区分配一个所述分区维度标识;
根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的全数据位置信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,所述待排序数据分区的个数为第一预设个数,包括:
查找所述第一预设个数;
根据所述标准化数值的排序结果,将所述标准化数值对应的待排序数据划分至所述第一预设个数的待排序数据分区中,同一标准化数值对应的待排序数据在同一待排序数据分区中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,所述待排序数据分区中的待排序数据的个数大于等于第二预设个数,包括:
按照所述标准化数值的排序结果,从前到后依次获取一个标准化数值加入到当前备选分组中;
判断与所述当前备选分组对应的待排序数据的个数是否大于等于所述第二预设个数;
若所述当前备选分组对应的待排序数据的个数大于等于所述第二预设个数,则将所述当前备选分组确定为一个标准化数值分组,并返回执行按照所述标准化数值的排序结果,从前到后依次获取一个标准化数值加入到当前备选分组中,直至完成对全部标准化数值分组;
若所述当前备选分组对应的待排序数据的个数小于所述第二预设个数,则判断所述当前备选分组中的末位标准化数值是否为所述标准化数值的排序结果中的末位标准化数值;
若是,则将所述当前备选分组确定为一个标准化数值分组;
若否,则按照所述标准化数值的排序结果,获取与所述当前备选分组中的末位标准化数值相邻的新的标准化数值加入到所述当前备选分组中,并返回执行判断与所述当前备选分组对应的待排序数据的个数是否大于等于所述第二预设个数的操作;
将与一个所述标准化数值分组中的所有标准化数值对应的待排序数据划分为一个所述待排序数据分区。
4.根据权利要求1所述的方法,其特征在于,所述将所述待排序数据的数值标准化处理得到对应的标准化数值,并根据所述数据排序指令对所述标准化数值排序,包括:
计算与全部所述待排序数据的数值对应的平均值
Figure FDA0002945630960000032
以及与全部所述待排序数据的数值对应的标准差S;
根据公式:
Figure FDA0002945630960000031
计算得到各所述待排序数据的数值对应的标准化数值,其中,Xi为待排序数中的第i个数据的数值,Di为所述第i个数据的数值的标准化数值,i∈[1,N],N为所述待排序数据的数值的总数;
根据所述数据排序指令对所述标准化数值排序。
5.根据权利要求1所述的方法,其特征在于,所述根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的全数据位置信息,包括:
根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的分区编号,将所述分区编号作为所述全数据位置信息;
所述根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果,包括:
根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并对所述待排序窗口分区中的待排序数据进行排序;
根据所述待排序窗口分区的排序结果和所述分区编号,确定所述待排序数据的排序结果。
6.根据权利要求1所述的方法,其特征在于,所述根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的全数据位置信息,包括:
根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的前位数据总数,将所述前位数据总数作为所述全数据位置信息;
所述根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果,包括:
根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并对所述待排序窗口分区中的待排序数据进行排序,确定所述待排序窗口分区中的待排序数据的初始排序位值;
根据与所述待排序数据分区分别对应的前位数据总数,更新所述初始排序位值,得到所述待排序窗口分区中的待排序数据在全部所述待排序数据中的排序结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述标准化数值的排序结果以及各所述待排序数据分区对应的标准化数值,确定与各所述待排序数据分区分别对应的前位数据总数,将所述前位数据总数作为所述全数据位置信息,包括:
根据所述标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区;
如果确定所述当前操作分区为首个待排序数据分区,则将当前数据分区的前位数据总数确定为零;
如果确定所述操作分区不为首个待排序数据分区,则获取位于所述当前操作分区之前的一个待排序数据分区作为参考分区;
根据所述参考分区对应的标准化数值,确定所述参考分区的待排序数据总数;
将所述参考分区的待排序数据总数与所述参考分区的前位数据总数之和,作为所述当前操作分区的前位数据总数;
返回执根据所述标准化数值的排序结果,依次获取一个待排序数据分区作为当前操作分区,直至完成对全部待排序数据分区的处理。
8.一种数据排序装置,其特征在于,包括:
数据查找模块,用于根据数据排序指令中的数据属性,查找待排序数据,其中,所述待排序数据包括所述数据属性和数值;
数据分区模块,用于根据与所述待排序数据的数值对应的标准化数值的排序结果,将所述待排序数据划分至至少两个待排序数据分区,并确定与各所述待排序数据分区分别对应的分区维度标识和全数据位置信息,其中,所述全数据位置信息用于指示所述待排序数据分区中的待排序数据在全部所述待排序数据中的位置;
数据排序模块,用于根据所述分区维度标识将所述待排序数据分区调用为一个待排序窗口分区,并通过所述待排序窗口分区和所述全数据位置信息确定所述待排序数据的排序结果;
其中,所述数据分区模块包括:
标准化数值排序子模块,用于将待排序数据的数值标准化处理得到对应的初始标准化数值,依据设定有效位数对各初始标准化数值进行截取得到各标准化数值,并根据数据排序指令对标准化数值排序;
数据划分子模块,用于根据标准化数值的排序结果,将待排序数据划分至两个或两个以上待排序数据分区,同一标准化数值对应的待排序数据划分至同一个待排序数据分区,其中,待排序数据分区的个数为第一预设个数,或者,待排序数据分区中的待排序数据的个数大于等于第二预设个数,第一预设个数和第二预设个数均为大于1的正整数;
分区维度标识分配子模块,用于向每一个待排序数据分区分配一个分区维度标识;
全数据位置信息确定子模块,用于根据标准化数值的排序结果以及各待排序数据分区对应的标准化数值,确定与各待排序数据分区分别对应的全数据位置信息。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据排序方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的数据排序方法。
CN201810450064.XA 2018-05-11 2018-05-11 数据排序方法、装置、服务器和存储介质 Active CN108733790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810450064.XA CN108733790B (zh) 2018-05-11 2018-05-11 数据排序方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810450064.XA CN108733790B (zh) 2018-05-11 2018-05-11 数据排序方法、装置、服务器和存储介质

Publications (2)

Publication Number Publication Date
CN108733790A CN108733790A (zh) 2018-11-02
CN108733790B true CN108733790B (zh) 2021-07-02

Family

ID=63938200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810450064.XA Active CN108733790B (zh) 2018-05-11 2018-05-11 数据排序方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN108733790B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783052B (zh) * 2018-12-27 2021-11-12 深圳市轱辘车联数据技术有限公司 数据排序方法、装置、服务器及计算机可读存储介质
CN110147944B (zh) * 2019-04-30 2023-08-01 创新先进技术有限公司 排名方法及装置
CN110482093B (zh) * 2019-08-19 2021-06-04 深圳市晨龙包装自动化有限公司 待排序瓦楞纸板仓库管理方法、终端及可读存储介质
CN113171618B (zh) * 2021-04-16 2024-06-21 网易(杭州)网络有限公司 游戏数据展示方法及装置、处理器、存储介质
CN113688298A (zh) * 2021-08-24 2021-11-23 北京房江湖科技有限公司 数据的呈现方法和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366013A (zh) * 2013-07-29 2013-10-23 腾讯科技(深圳)有限公司 一种数据处理的方法及服务器
CN103745008A (zh) * 2014-01-28 2014-04-23 河海大学 一种大数据索引的排序方法
CN105740332A (zh) * 2016-01-22 2016-07-06 北京京东尚科信息技术有限公司 数据排序方法和装置
WO2016136201A1 (ja) * 2015-02-23 2016-09-01 日本電気株式会社 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体
CN106649385A (zh) * 2015-11-02 2017-05-10 北京国双科技有限公司 基于HBase数据库的数据排序方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366013A (zh) * 2013-07-29 2013-10-23 腾讯科技(深圳)有限公司 一种数据处理的方法及服务器
CN103745008A (zh) * 2014-01-28 2014-04-23 河海大学 一种大数据索引的排序方法
WO2016136201A1 (ja) * 2015-02-23 2016-09-01 日本電気株式会社 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体
CN106649385A (zh) * 2015-11-02 2017-05-10 北京国双科技有限公司 基于HBase数据库的数据排序方法和装置
CN105740332A (zh) * 2016-01-22 2016-07-06 北京京东尚科信息技术有限公司 数据排序方法和装置

Also Published As

Publication number Publication date
CN108733790A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108733790B (zh) 数据排序方法、装置、服务器和存储介质
US9524318B2 (en) Minimizing result set size when converting from asymmetric to symmetric requests
CN109299101B (zh) 数据检索方法、装置、服务器和存储介质
CN110716796A (zh) 智能任务调度方法及装置、存储介质、电子设备
CN112085644B (zh) 多列数据排序方法、装置、可读存储介质和电子设备
CN113886434A (zh) 基于数据库集群的查询和存储方法、装置以及设备
CN112181993A (zh) 业务数据查询方法、装置、服务器及存储介质
US20220005546A1 (en) Non-redundant gene set clustering method and system, and electronic device
WO2023143095A1 (en) Method and system for data query
CN111125199B (zh) 一种数据库访问方法、装置及电子设备
CN111858607A (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN110019341B (zh) 一种数据查询方法及装置
CN111428140B (zh) 高并发数据检索方法、装置、设备及存储介质
CN107844490B (zh) 一种数据库的分库方法及装置
CN110826911B (zh) 基于大数据的决策方法、设备及介质
CN110362577B (zh) 一种数据插入方法、装置、设备和储存介质
CN108536819B (zh) 整型列与字符串比较的方法、装置、服务器及存储介质
CN111046077A (zh) 数据的获取方法及装置、存储介质、终端
CN115687352A (zh) 一种存储的方法及装置
CN111125158A (zh) 数据表处理方法、装置、介质及电子设备
CN112765118B (zh) 一种日志查询方法、装置、设备及存储介质
CN115525659A (zh) 数据查询方法、装置、电子设备及存储介质
CN115470279A (zh) 基于企业数据的数源转换方法、装置、设备及介质
CN111143456A (zh) 基于Spark的Cassandra数据导入方法、装置、设备及介质
CN113868267A (zh) 注入时序数据的方法、查询时序数据的方法及数据库系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant