技术领域
[0001] 本
发明涉及数据查询的技术领域,尤其是涉及一种针对分页获取云平台终端数据的查询方法和系统。
背景技术
[0002] 当前互联网上,都是将数据分到不同的终端上去存储,当要获取数据时,通过获取所有终端的数据,将数据计算并整合在一起,然后将所有数据集中进行实践排序后提供分页展示,这一流程存在操作复杂且耗时大的技术问题。
发明内容
[0003] 有鉴于此,本发明的目的在于提供一种针对分页获取云平台终端数据的查询方法和系统,以缓解了
现有技术中存在的获取终端数据的操作复杂且耗时大的技术问题。
[0004] 第一方面,本发明
实施例提供了一种针对分页获取云平台终端数据的查询方法,应用于
服务器,包括:获取用户输入的数据查询指令,其中,所述数据查询指令中携带待查询数据和所述待查询数据的查询条件,所述查询条件包括:所述待查询数据在多个终端上的存储
位置,所述存储位置为数据的目标存储页和数据在所述目标存储页的存储条数;在每个终端中查询符合所述查询条件的数据,得到多组初始查询数据,其中,一个终端对应一组初始查询数据;在所述多组初始查询数据中确定所述待查询数据。
[0005] 进一步地,在所述多组初始查询数据中确定所述待查询数据包括:对所述多组初始查询数据进行合并,得到初始汇总数据;基于预设排序字段对所述初始汇总数据进行排序操作,得到排序之后的数据,并将所述排序之后的数据中的前N条数据作为所述待查询数据,N为所述存储条数。
[0006] 进一步地,基于预设排序字段对所述初始汇总数据进行排序操作,得到排序之后的数据,包括:获取所述初始汇总数据的数据量;若所述数据量小于或等于预设数据量,则结合循环排序
算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据。
[0007] 进一步地,基于预设排序字段对所述初始汇总数据进行排序操作,得到排序之后的数据,还包括:获取所述初始汇总数据的数据量;若所述数据量大于预设数据量,则判断所述预设排序字段的数量是否超过预设数值;若是,则结合循环排序算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据;若否,则结合堆排序算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据。
[0008] 第二方面,本发明实施例还提供了一种针对分页获取云平台终端数据的查询系统,应用于服务器,包括:获取模
块,查询模块和确定模块,其中,所述获取模块,用于获取用户输入的数据查询指令,其中,所述数据查询指令中携带待查询数据和所述待查询数据的查询条件,所述查询条件包括:所述待查询数据在多个终端上的存储位置,所述存储位置为数据的目标存储页和数据在所述目标存储页的存储条数;所述查询模块,用于在每个终端中查询符合所述查询条件的数据,得到多组初始查询数据,其中,一个终端对应一组初始查询数据;所述确定模块,用于在所述多组初始查询数据中确定所述待查询数据。
[0009] 进一步地,所述查询模块包括:合并单元和排序单元,其中,所述合并单元,用于对所述多组初始查询数据进行合并,得到初始汇总数据;所述排序单元,用于基于预设排序字段对所述初始汇总数据进行排序操作,得到排序之后的数据,并将所述排序之后的数据中的前N条数据作为所述待查询数据,N为所述存储条数。
[0010] 进一步地,所述排序单元还用于:获取所述初始汇总数据的数据量;若所述数据量小于或等于预设数据量,则结合循环排序算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据。
[0011] 进一步地,所述排序单元还用于:获取所述初始汇总数据的数据量;若所述数据量大于预设数据量,则判断所述预设排序字段的数量是否超过预设数值;若是,则结合循环排序算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据;若否,则结合堆排序算法和所述预设排序字段,对所述初始汇总数据进行排序操作,得到排序之后的数据。
[0012] 第三方面,本发明实施例还提供了一种
电子设备,包括
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的
计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
[0013] 第四方面,本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面所述方法。
[0014] 本发明提供了一种针对分页获取云平台终端数据的查询方法和系统,通过在每个终端中查询符合查询条件的数据,得到多组初始查询数据,然后在所述多组初始查询数据中确定所述待查询数据,可以在每次查询时,不用获取终端的所有数据,从而简化了数据查询的操作量以及提高了查询速度。
附图说明
[0015] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1为本发明实施例提供的一种针对分页获取云平台终端数据的查询方法的
流程图;
[0017] 图2为本发明实施例提供的另一种针对分页获取云平台终端数据的查询方法的流程图;
[0018] 图3为本发明实施例提供的一种针对分页获取云平台终端数据的查询系统的示意图;
[0019] 图4为本发明实施例提供的另一种针对分页获取云平台终端数据的查询系统的示意图。
具体实施方式
[0020] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 实施例一:
[0022] 图1是根据本发明实施例提供的一种针对分页获取云平台终端数据的查询方法的流程图,该方法应用于服务器,具体地,该方法应用于分页查询平台。如图1所示,该方法具体包括如下步骤:
[0023] 步骤S102,获取用户输入的数据查询指令,其中,数据查询指令中携带待查询数据和待查询数据的查询条件,查询条件包括:待查询数据在多个终端上的存储位置,存储位置为数据的目标存储页和数据在目标存储页的存储条数。
[0024] 步骤S104,在每个终端中查询符合查询条件的数据,得到多组初始查询数据,其中,一个终端对应一组初始查询数据。
[0025] 步骤S106,在多组初始查询数据中确定待查询数据。
[0026] 本发明实施例提供了一种针对分页获取云平台终端数据的查询方法,通过在每个终端中查询符合查询条件的数据,得到多组初始查询数据,然后在所述多组初始查询数据中确定所述待查询数据,可以在每次查询时,不用获取终端的所有数据,从而简化了数据查询的操作量以及提高了查询速度。
[0027] 可选地,步骤S106还包括如下步骤:
[0028] 步骤S1061,对多组初始查询数据进行合并,得到初始汇总数据;
[0029] 步骤S1062,基于预设排序字段对初始汇总数据进行排序操作,得到排序之后的数据,并将排序之后的数据中的前N条数据作为待查询数据,N为存储条数。
[0030] 具体地,对初始汇总数据进行排序的操作包括:
[0031] 获取初始汇总数据的数据量;
[0032] 若数据量小于或等于预设数据量,则结合循环排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据;
[0033] 若数据量大于预设数据量,则判断预设排序字段的数量是否超过预设数值;
[0034] 若是,则结合循环排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据;
[0035] 若否,则结合堆排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据。
[0036] 例如,预设数据量为1000条,则本发明实施例中,对初始汇总数据进行排序需要先判断初始汇总数据的数据量是否大于1000条,如果小于或等于1000条,则说明需要排序的数据量比较小,可以直接应用循环排序算法结合预设排序字段对初始汇总数据进行排序操作;如果数据量大于1000条,则说明需要排序的数据量较大,则再判断预设排序字段是否为多个(即判断预设排序字段的个数是否大于一个),如果是,则应用循环排序算法结合预设排序字段对初始汇总数据进行排序;如果否,则利用堆排序算法结合预设排序字段对初始汇总数据进行排序操作,最终得到排序之后的数据,其中,预设排序字段可以为待查询数据的时间,也可以是待查询数据的某个属性标签。
[0037] 通过以上描述可知,本发明实施例提供的一种针对分页获取云平台终端数据的查询方法,为了减少
大数据量汇总带来的带宽压
力和缓解大数据量分页查询的缓慢的技术问题,可以在平台分页获取时,只获取当前页展示的数据量,比如获取10到20的10条数据,可以查询各个总端的10到20的10条数据,并将查询到的数据汇总到平台中。为了提高对数据的整合排序,可以将针对不同的初始汇总数据和排序要求进行不同的算法实现分页。
[0038] 本发明实施例可以达到以下技术效果:(1)查询每个终端的数据量大幅度减少,降低了网络的压力;(2)汇总后的数据量也大幅度减少,从而提高的数据查询速度;(3)每次查询都查询所有终端,保证了数据的实时性;(4)汇总后数据根据数据量的不同采取不同的排序算法算法进行分页处理,提高了计算速度。
[0039] 实施例二:
[0040] 图2是根据本发明实施例提供的另一种针对分页获取云平台终端数据的查询方法的流程图,应用于分页查询平台的服务器。具体地,如图2所示,该方法包括如下步骤:
[0041] 步骤S201,获取用户要使用平台查询第n页的m条数据时的查询
请求。其中m和n均为大于0的整数。
[0042] 步骤S202,平台会将页码n,条数m发送到各个终端。
[0043] 本发明实施例中,每次查询都
访问终端,保证了每次查询的数据的实时性。
[0044] 步骤S203,各个终端获取该终端本机符合条件的第n页的m条数据和总条数返回给平台。
[0045] 在本发明实施例中,每个终端只查询m条数据,数据查询量减少,传递的数据量减少,提高了查询速度和数据传递速度。
[0046] 步骤S204,平台获取各个终端的分页数据后,将各个终端的总条数相加得到总数,然后将所有分页数据汇总得到分页总数据。由于只是取了各个终端的m条数据,减少了排序所用的数据量,提高了查询速度。
[0047] 步骤S205,根据分页总数据,判断其条数是否小于预设数量,例如1000条。
[0048] 1000条是一个分段点:如果数据量小于1000条,排序字段的多少对算法无影响且使用分治和递归的思想算法速度最快;如果大于1000条,则排序字段的多少会影响算法的速度。
[0049] 具体地,步骤S205还包括如下步骤:
[0050] 步骤S2051,如果小于1000条,则循环排序字段,具体地,对每个字段采用分治和递归的思想,排序整个数列如同排序两个有序数列,依次执行这个过程直至排序末端的两个元素,再依次向上层输送排序好的两个子列进行排序直至整个数列有序;完成所有排序字段后取前m条数据。在本发明实施例中,小于1000条算小批量数据,该排序算法能够明显的提高查询速度。
[0051] 步骤S2052,如果分页总数据不小于1000条,则再判断排序字段是否是多个。对于排序字段来说,字段超多1个,则采用循环基准方式排序相对其他方式快,如果只有一个,则采用二叉树方式较快。具体地,包括:
[0052] 步骤S20521,如果是多个排序字段,则循环排序字段,完成排序后取前m条数据。
[0053] 具体地,将多个字段按照先后要求进行循环(选一基准元素,依次将剩余元素中小于该基准元素的值放置其左侧,大于等于该基准元素的值放置其右侧;然后,取基准元素的前半部分和后半部分分别进行同样的处理;以此类推,直至各子序列剩余一个元素时)。在本发明实施例中,对于大于1000的数据量,排序条件越多,该算法相对于其他算法的查询速度就越快。
[0054] 步骤S20522,如果只有一个排序字段,则堆排序字段,完成排序后取前m条数据。
[0055] 具体地,首先,将待排序数列抽象为二叉树,并构造出最大堆;然后,依次将最大元素(即根
节点元素)与待排序数列的最后一个元素交换(即二叉树最深层最右边的叶子结点元素);每次遍历,刷新最后一个元素的位置(自减1),直至其与首元素相交。在本发明实施例中,对于大于1000的数据,排序条件越少则排序速度越快。
[0056] 步骤S206,将取到的m条数据和总条数生成一个分页数据集返回平台展示,如此,一次完成的分页查询云平台各个终端的数据流程就完成了。
[0057] 本发明实施例提供的一种针对分页获取云平台终端数据的查询方法,对于分布式的分页查询,判断是否采用了分页获取各个终端数据的方式,如每次获取各个终端的第n页m条数据,各个终端返回的数据中是否是分页数据且包含总数;各个终端的N条数据汇总到平台后是否根据分页总数据大小来判断,判断其条数是否小于1000条,如果小于是否采用了分治和递归的思想进行排序取数,如果不小于1000条,则再判断排序字段是否是多个,如果是多个排序字段,则是否采用了通过基准数判断大小排序的方式排序取数,如果只有一个排序字段,则判断是否采用了二叉树的根节点和最右节点交换的方式排序取数。可将数据保存在各个服务器本机,不会造成数据量太大撑坏服务器,可保证每次查询的数据都是最新的数据,可提高分页查询的速度,可降低对网络的压力。
[0058] 实施例三:
[0059] 图3是根据本发明实施例提供的一种针对分页获取云平台终端数据的查询系统的示意图,该系统应用于服务器。如图3所示,该系统具体包括:获取模块10,查询模块20和确定模块30。
[0060] 具体地,获取模块10,用于获取用户输入的数据查询指令,其中,数据查询指令中携带待查询数据和待查询数据的查询条件,查询条件包括:待查询数据在多个终端上的存储位置,存储位置为数据的目标存储页和数据在目标存储页的存储条数。
[0061] 查询模块20,用于在每个终端中查询符合查询条件的数据,得到多组初始查询数据,其中,一个终端对应一组初始查询数据。
[0062] 确定模块30,用于在多组初始查询数据中确定待查询数据。
[0063] 本发明实施例提供了一种针对分页获取云平台终端数据的查询系统,通过获取模块获取用户输入的数据查询指令,然后通过查询模块在每个终端中查询符合查询条件的数据,得到多组初始查询数据,最后通过确定模块在所述多组初始查询数据中确定所述待查询数据,可以在每次查询时,不用获取终端的所有数据,从而简化了数据查询的操作量以及提高了查询速度。
[0064] 可选地,图4是根据本发明实施例提供的另一种针对分页获取云平台终端数的查询系统的示意图。如图4所示,查询模块20包括:合并单元21和排序单元22。
[0065] 具体地,合并单元21,用于对多组初始查询数据进行合并,得到初始汇总数据。
[0066] 排序单元22,用于基于预设排序字段对初始汇总数据进行排序操作,得到排序之后的数据,并将排序之后的数据中的前N条数据作为待查询数据,N为存储条数。
[0067] 可选地,如图4所示,排序单元22还用于:
[0068] 获取初始汇总数据的数据量;
[0069] 若数据量小于或等于预设数据量,则结合循环排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据。
[0070] 若数据量大于预设数据量,则判断预设排序字段的数量是否超过预设数值;
[0071] 若是,则结合循环排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据;
[0072] 若否,则结合堆排序算法和预设排序字段,对初始汇总数据进行排序操作,得到排序之后的数据。
[0073] 本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例一中的方法的步骤。
[0074] 本发明实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述实施例一中的方法。
[0075] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行
修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。