一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据统计的方法、装置及服务器与流程

2021-10-29 23:07:00 来源:中国专利 TAG:数据统计 装置 服务器 方法


1.本发明涉及数据统计的技术领域,尤其是涉及一种数据统计的方法、装置及服务器。


背景技术:

2.直方图(histogram)是数据库提供的一种基础统计信息,用于描述列上的数据分布情况。在统计学中,直方图是一种对数据分布情况的图形表示,通常是一种二维统计图表,其两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征),其最典型的场景是估算查询谓词的选择率,以便选择合适的执行计划。在使用直方图进行数据分布统计时,由于数据量较大,因此多需要对数据进行采样处理,而目前的采样方式多采用全表扫描的方式,不仅耗时时间长,也降低了统计效率。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种数据统计的方法、装置及服务器,以缓解上述技术问题。
4.第一方面,本发明实施例提供了一种数据统计的方法,包括:获取分布式数据库中待统计数据集;将所述待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;对于每个所述数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到所述待统计数据集对应的抽样集;根据所述抽样集,以及预设的直方图参数构建直方图,以对所述待统计数据集进行统计分析。
5.优选地,在一种可能的实施方式中,上述将所述待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储的步骤,包括:获取预设的所述数据节点的数量,按照所述数量将所述待统计数据集中所包括的数据分成多个数据流,其中,所述数据流的数量与所述数据节点的数量一致;将所述数据流分别在所述数据节点中进行分片存储。
6.优选地,在一种可能的实施方式中,上述对于每个所述数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到所述待统计数据集对应的抽样集的步骤,包括:对于每个所述数据节点所存储的数据,按照预设的第一蓄水池算法进行并行采样,得到每个所述数据节点对应的采样集;从每个所述采样集中,按照预设的第二蓄水池算法依次进行采样,得到所述待统计数据集对应的抽样集。
7.优选地,在一种可能的实施方式中,上述按照预设的第一蓄水池算法进行并行采样,得到每个所述数据节点对应的采样集的步骤,包括:获取预先设置的数据量;按照预设的所述第一蓄水池算法从每个所述数据节点所存储的数据中并行抽取与所述数据量匹配的数据,以得到每个所述数据节点对应的采样集。
8.优选地,在一种可能的实施方式中,上述从每个所述采样集中,按照预设的第二蓄水池算法依次进行采样,得到所述待统计数据集对应的抽样集的步骤,包括:基于预先设置的所述数据量,从每个所述采样集中依次等概率不放回地抽取一个数据;将抽取的所述数
据加入到所述抽样集中,直至所述抽样集中的数据的数量满足预先设置的所述数据量。
9.优选地,在一种可能的实施方式中,上述将抽取的所述数据加入到所述抽样集中,直至所述抽样集中的数据的数量满足预先设置的所述数据量的步骤,包括:如果所述采样集的数量大于所述数据量,当所述抽样集中的数据量达到预先设置的所述数据量时,将抽取的所述数据,随机替换所述抽样集中的任一一个数据,以保证从每个所述采样集中依次等概率不放回地抽取一个数据,且,所述抽样集中的数据的数量满足预先设置的所述数据量。
10.优选地,在一种可能的实施方式中,上述根据所述抽样集,以及预设的直方图参数构建直方图的步骤,包括:按照预先设置的排序规则对所述抽样集中的数据进行排序,得到所述抽样集对应的排序抽样集;获取预设的直方图参数;根据所述排序抽样集,以及预设的所述直方图参数构建直方图;其中,所述直方图参数包括以下参数至少之一:所述直方图的桶数,所述直方图的桶深,以及,与所述排序抽样集对应的行数。
11.第二方面,本发明实施例还提供一种数据统计的装置,包括:获取模块,用于获取分布式数据库中待统计数据集;存储模块,用于将所述待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;采样模块,用于对于每个所述数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到所述待统计数据集对应的抽样集;构建模块,用于根据所述抽样集,以及预设的直方图参数构建直方图,以对所述待统计数据集进行统计分析。
12.第三方面,本发明实施例还提供一种服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现第一方面所述的方法。
13.第四方面,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面所述的方法。
14.本发明实施例带来了以下有益效果:
15.本发明实施例提供的数据统计的方法、装置及服务器,能够在获取到分布式数据库中的待统计数据集之后,将待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;并对于每个数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到待统计数据集对应的抽样集;进而根据抽样集,以及预设的直方图参数构建直方图,以对待统计数据集进行统计分析,而上述分布式蓄水池算法的采样处理过程,不仅能够实现待统计数据集的均匀采样,并且,也可以实现多个数据节点的并行处理,有效降低了耗时时间,进而提高了统计的效率。
16.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
17.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
18.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本发明实施例提供的一种数据统计的方法的流程图;
20.图2为本发明实施例提供的另一种数据统计的方法的流程图;
21.图3为本发明实施例提供的一种数据统计的装置的结构示意图;
22.图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.目前,对于大数据进行分析统计时,往往采用全表扫描的方式创建直方图,而对于大数据而言,全表扫描的方式将会非常耗时,严重降低了统计的效率。而普通采样方式虽然相对于全表扫描的方式占用的资源少,但是普通采样方式得到的直方图往往不够准确,难以达到统计的目的。
25.基于此,本发明实施例提供的一种数据统计的方法、装置及服务器,可以有效缓解上述问题。
26.为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据统计的方法进行详细介绍。
27.在一种可能的实施方式中,本发明实施例提供了一种数据统计的方法,具体地,该方法可以应用于服务器,对分布式数据库中存储的大数据进行统计分析。
28.如图1所示的一种数据统计的方法的流程图,该方法包括以下步骤:
29.步骤s102,获取分布式数据库中待统计数据集;
30.步骤s104,将上述待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;
31.其中,上述待统计数据集通常是分布式数据库中的大数据流,并且,该数据流的长度通常很大且不可知,所以难以一次性存入内存,因此,多存储在分布式数据库中,当需要对该大数据流进行统计分析,可以从分布式数据库中去获取上述待统计数据集,如,进行估算查询谓词的选择率等等,以便后续选择合适的执行计划。
32.进一步,由于上述待统计数据集的大数据流的数据较大,因此,在统计分析时,多采用分片存储的方式,将大数据流存储在多个数据节点中,以便继续执行下述各个步骤,对每个数据节点进行同步处理。
33.步骤s106,对于每个数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到待统计数据集对应的抽样集;
34.步骤s108,根据该抽样集,以及预设的直方图参数构建直方图,以对待统计数据集
进行统计分析。
35.具体实现时,上述步骤s106中,是对每个数据节点所存储的数据进行分别采样处理的过程,而上述步骤s106中对于每个数据节点所采取的分布式蓄水池算法,可以在处理超大的数据量采样时,有效提升采样速率,降低耗时时间。
36.本发明实施例提供的数据统计的方法,能够在获取到分布式数据库中的待统计数据集之后,将待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;并对于每个数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到待统计数据集对应的抽样集;进而根据抽样集,以及预设的直方图参数构建直方图,以对待统计数据集进行统计分析,而上述分布式蓄水池算法的采样处理过程,不仅能够实现待统计数据集的均匀采样,并且,也可以实现多个数据节点的并行处理,有效降低了耗时时间,进而提高了统计的效率。
37.在实际使用时,上述步骤s104中,在对待统计数据集中所包括的大数据流进行分片存储时,通常是按照数据节点的数量进行的,因此,需要先获取可用的数据节点的数量信息,然后进行分片存储,以便于对每个数据节点所存储的数据进行进一步的统计分析。因此,在上述图1的基础上,图2还提供了另一种数据统计的方法的流程图,对待统计数据集中所包括的大数据流进行分片存储,以及统计分析的过程进行进一步的描述,具体地,如图2所示,包括以下步骤:
38.步骤s202,获取分布式数据库中待统计数据集;
39.步骤s204,获取预设的数据节点的数量,按照数量将待统计数据集中所包括的数据分成多个数据流;
40.其中,数据流的数量与数据节点的数量一致;
41.步骤s206,将数据流分别在数据节点中进行分片存储;
42.在实际使用时,上述数据节点通常是指可以对数据进行存储,以及按照预先配置的算法对其所存储的数据进行一定处理的数据节点,也可以称为“机器”,假设待统计数据集中的大数据流为n,预设的数据节点的数量为k,即,有k个机器对大数据流进行分片存储,此时,每个数据节点所存储的数据流可以为n1、n2、
……
、nk,且,n1 n2
……
nk=n。
43.步骤s208,对于每个数据节点所存储的数据,按照预设的第一蓄水池算法进行并行采样,得到每个数据节点对应的采样集;
44.步骤s210,从每个采样集中,按照预设的第二蓄水池算法依次进行采样,得到待统计数据集对应的抽样集;
45.在实际使用时,在上述步骤s208中,对每个数据节点所存储的数据流进行采样时,由于每个数据节点可以看成单独的机器,因此,此时可以采用第一蓄水池算法对每个数据节点进行并行采样,而此时采用的第一蓄水池算法,通常指的是单机版蓄水池抽样处理算法,具体地,第一蓄水池算法在采样时,需获取预先设置的数据量,然后按照预设的第一蓄水池算法从每个数据节点所存储的数据中并行抽取与数据量匹配的数据,以得到每个数据节点对应的采样集。
46.为了便于理解,以预先设置的数据量为m进行说明,即假设从每个数据节点所存储的数据中,并行抽取m个数据,当执行完上述步骤s208之后,由于具有k个数据节点,此时会得到k个采样集,且,每个采样集所包括的数据量为m。
47.进一步,上述步骤s210中,是对每个采样集继续采用的过程,此时使用的是第二蓄水池算法,具体地,该第二蓄水池算法是对上述k个采样集并行进行采样的抽样处理算法,包括以下过程:基于预先设置的数据量,从每个采样集中依次等概率不放回地抽取一个数据;将抽取的数据加入到抽样集中,直至抽样集中的数据的数量满足预先设置的数据量。
48.同样以上述预先设置的数据量为m为例进行说明,通常,m<nk,上述步骤s208中得到的每个数据节点对应的采样集,可以看成是该数据节点的蓄水池,在第二蓄水池算法进行采样时,可以在第一个数据节点的蓄水池中等概率不放回地(每个数据的选取概率为1/m)选取一个数据;在第二个数据节点的蓄水池中等概率不放回地选取一个数据;以此类推,重复m次,则最终从每个数据节点对应的蓄水池,即大数据流为n的待统计数据集中选出m个数据,以构成上述抽样集。
49.在实际使用时,为例提现第二蓄水池算法抽样处理的等概率性,在进行抽样时,还可以使用随机数原理进行抽样处理,例如,同样以大数据流为n进行说明,取[1,n]范围内的一个随机数d,若d<n1,则在第一个数据节点的蓄水池中等概率不放回地(1/m)选取一个数据;若n1<=d<(n1 n2),则在第二个数据节点的蓄水池中等概率不放回地选取一个数据;以此类推,重复m次,则最终从n大数据流中选出m个数据。通过上述方式,可以保证本发明实施例中的分布式蓄水池算法在对待统计数据集进行采样处理的均匀性,即,使所得到的抽样集是一个数据相对均匀的集合。
[0050]
进一步,由于待统计数据集的大数据流n的数据量较大,因此,上述数据节点的数量通常也是较多的,即需要较多的数据节点来对大数据流n进行分片存储,此时k通常是大于m的,即,采样集的数量大于上述数据量,而在进行采样时,为了保证数据的均匀性,如果上述采样集的数量大于数据量,则当抽样集中的数据量达到预先设置的数据量时,即,抽样集的数据量满足了m,但是上述步骤s210中的第二蓄水池算法还未执行完成,则会将继续抽取的后续采样集中的数据,并将抽取的采样集中的数据随机替换当前抽样集中的任一一个数据,以保证从每个采样集中依次等概率不放回地抽取一个数据,且,抽样集中的数据的数量满足预先设置的数据量,从而保证所抽取数据的均匀性。
[0051]
步骤s212,根据该抽样集,以及预设的直方图参数构建直方图,以对待统计数据集进行统计分析。
[0052]
具体地,在构建直方图时,需要先按照预先设置的排序规则对抽样集中的数据进行排序,得到抽样集对应的排序抽样集;然后获取预设的直方图参数;根据排序抽样集,以及预设的直方图参数构建直方图。
[0053]
其中,上述直方图参数通常包括以下参数至少之一:直方图的桶数,直方图的桶深,以及,与排序抽样集对应的行数。
[0054]
在实际使用时,由于直方图是一种对数据分布情况进行描述的工具,因此,为了便于进行统计,需要按照预先设置的排序规则对抽样集中的数据进行排序,例如,按照数据大小进行排序等等,以便于根据直方图的桶数进行分桶,以及,根据桶深和行数等参数来预先估算每个桶的数据量的个数,大多数数据库都会选择用直方图来进行区间查询的估算,并且,根据分桶策略的不同,构建的直方图可以分为等深直方图和等宽直方图等等,具体的直方图的构建行使,可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
[0055]
综上,本发明实施例中,对于分布式数据库,先对大数据流进行分片存储,使得每
个数据节点都存储一部分数据,并且,对于每个数据节点,均通过第一蓄水池算法并行采样,得到多个采样集,再从每个数据节点的采样集中再按照预设的第二蓄水池算法依次进行采样,得到最终的抽样集,再构建直方图,以实现基于分布式蓄水池算法构建直方图的目的,进而对待统计数据集进行后续地统计分析,在处理过程中,不仅实现了大数据流的均匀采样过程,同时,也通过分布式蓄水池算法实现了并行处理,提升了处理速度。
[0056]
进一步,在上述实施例的基础上,本发明实施例还提供了一种数据统计的装置,如图3所示的一种数据统计的装置的结构示意图,该装置包括:
[0057]
获取模块30,用于获取分布式数据库中待统计数据集;
[0058]
存储模块32,用于将所述待统计数据集中所包括的数据在预设的多个数据节点中进行分片存储;
[0059]
采样模块34,用于对于每个所述数据节点所存储的数据,按照预设的分布式蓄水池算法进行采样处理,得到所述待统计数据集对应的抽样集;
[0060]
构建模块36,用于根据所述抽样集,以及预设的直方图参数构建直方图,以对所述待统计数据集进行统计分析。
[0061]
本发明实施例提供的数据统计的装置,与上述实施例提供的数据统计的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0062]
进一步,本发明实施例还提供了一种服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现图1或图2所示的方法。
[0063]
进一步,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现图1或图2所示的方法。
[0064]
进一步,本发明实施例还提供了一种服务器的结构示意图,如图4所示,为该服务器的结构示意图,其中,该服务器包括处理器41和存储器40,该存储器40存储有能够被该处理器41执行的计算机可执行指令,该处理器41执行该计算机可执行指令以实现上述数据统计的方法。
[0065]
在图4示出的实施方式中,该服务器还包括总线42和通信接口43,其中,处理器41、通信接口43和存储器40通过总线42连接。
[0066]
其中,存储器40可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线42可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0067]
处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的
处理器41可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field

programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器中的信息,结合其硬件完成前述实施例的数据统计的方法。
[0068]
本发明实施例所提供的数据统计的方法、装置及服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0069]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0070]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0071]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0072]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0073]
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜