一种基于实时数据流的数据采样方法、装置及电子设备与流程

文档序号:14950344发布日期:2018-07-17 22:24阅读:189来源:国知局

本发明涉及大数据分析技术领域,特别是涉及一种基于实时数据流的数据采样方法、装置及电子设备。



背景技术:

在面对数量庞大的待处理数据的时候,如果对这些数据全部进行处理,将会带来很大的资源开销。现有技术中,为了降低这种资源开销,可以对待处理数据,按照一个预设的采样比例进行采样,得到其中一部分数据,并只对这一部分数据进行处理。

然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:

对于流量随时间可能发生变化的数据流,如果按照固定的采样比例进行采样,那么单位时间内采样得到的数据的数据量,会随着时间变化产生波动,可能与期望采样得到的数据量相差较远。



技术实现要素:

本发明实施例的目的在于提供一种基于渐变数据流的采样方法,以减小采样得到的数据的数据量随时间的波动。具体技术方案如下:

在本发明实施例的第一方面,提供了一种基于实时数据流的数据采样方法,所述方法包括:

在预设采样周期到达时,获取最近预设采样周期内所接受到的待采样数据的数据量,并将所述待采样数据的数据量作为参考数据量;

确定预设的期望采样数据量与所述参考数据量的比值,并将所述比值作为采样比例;

按照所述采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

进一步的,所述按照所述采样比例,对当前预设采样周期内所接收到的待采样数据进行采样,包括:

在当前预设采样周期内每接收到一条数据,生成一个取值范围为0到1的伪随机数;

如果所述伪随机数小于所述采样比例,采集该条数据。

进一步的,在所述确定预设的期望采样数据量与所述参考数据量的比值之前,还包括:

确定预设的期望采样数据量与所述参考数据量之间的大小关系;

如果所述期望采集数据量小于所述参考数据量,执行所述确定预设的期望采样数据量与所述参考数据量的比值的步骤;或者,

如果所述期望采集数据量不小于所述参考数据量,采集当前预设采样周期内所接收到的所有待采样数据。

进一步的,所述获取最近预设采样周期内所接收到的待采样数据的数据量,包括:

获取最近预设采样周期内所接收到的数据中不符合预设特征的数据的数据量,并将所述不符合预设特征的数据的数据量作为最近预设采样周期内所接收到的待采样数据的数据量。

进一步的,在所述确定预设的期望采样数据量与所述参考数据量的比值之前,还包括:

确定所述参考数据量是否为0;

如果所述参考数据量不为0,则执行所述确定预设的期望采样数据量与所述参考数据量的比值的步骤;或者,

如果所述参考数据量为0,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

在本发明实施例的第二方面,提供了一种基于实时数据流的数据采样装置,所述装置包括:

预估模块,用于在预设采样周期到达时,获取最近预设采样周内所接收到的待采样数据的数据量,并将所述待采样数据的数据量作为参考数据量;

比例确定模块,用于确定预设的期望采样数据量与所述参考数据量的比值,并将所述比例作为采样比例;

采样模块,用于按照所述采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

进一步的,所述采样模块,具体用于在当前预设采样周期内每接收到一条数据,生成一个取值范围为0到1的伪随机数;并且如果所述为随机数小于所述采样比例,采集该条数据。

进一步的,所述比例确定模块还用于确定预设的期望采样数据量与所述参考数据量之间的大小关系;并且如果所述期望采集数据量小于所述参考数据量,执行所述确定预设的期望采样数据量与所述参考数据量的比值的步骤;

所述采样模块,还用于如果所述期望采集数据量不小于所述参考数据量,采集当前预设采样周期内所接收到的所有待采样数据。

进一步的,所述预估模块,具体用于获取最近预设采样周期内所接收到的数据中不符合预设特征的数据的数据量,并将所述不符合预设特征的数据的数据量作为最近预设采用周期内所接收到的待采样数据的数据量。

进一步的,所述比例确定模块还用于确定所述参考数据量是否为0;并且如果所述参考数据量不为0,执行所述确定预设的期望采样数据量与所述参考数据量的比值的步骤。

所述采样模块,还用于如果所述参考数据量为0,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

在本发明实施例的第三方面,提供了一种基于实时数据流的数据采样电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的基于实时数据流的数据采样方法步骤。

在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的基于实时数据流的数据采样方法。

在本发明实施例的第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的基于实时数据流的数据采样方法。

本发明实施例提供的基于实时数据流的数据采样方法、装置及电子设备,将期望采集到的数据量与最近预设采样周期内接收到的待采样数据的数据量的比值作为下一个预设采样周期内的采样比例,对于流量渐变的数据流,当预设采样周期足够短时,可以近似认为最近预设采样周期内的接收到的待采样数据的数据量等于当前预设采样周期内将要接收到待采样数据的数据量。因此使用该采样比例对当前预设采样周期内将要接收到的数据进行采样,可以使得在当前预设采样周期内采集到近似于期望采集到的数据量的数据,即单位时间内采样得到的数据的数据量相对稳定。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1a为本发明实施例提供的基于实时数据流的数据采样方法的一种流程示意图;

图1b为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图;

图1c为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图;

图2为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图;

图3为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图;

图4为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图;

图5为本发明实施例提供的基于实时数据流的数据采样装置的一种结构示意图;

图6为本发明实施例提供的基于实时数据流的数据采样电子设备的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

参见图1a,图1a所示为本发明实施例提供的基于实时数据流的数据采样方法的一种流程示意图,可以包括以下步骤:

s110,在预设采样周期到达时,获取最近预设采样周期内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量。

其中,预设采样周期到达时,是指从一个特定的时刻起,经过整数个预设采样周期的时间。在本实施例中,该指定的时刻可以是开始接收到待采样数据的时刻。示例性的,记开始接收到数据的时刻为t=0s,预设采样周期为30s,则在t=30s、t=60s、t=90s时都可以视作预设采样周期到达时。最近预设采样周期是指,从预设采样周期到达时算起,往前的一个预设采样周期的时间范围,例如,在t=30s时,最近预设采样周期是指t=0s至t=30s的这30s。

s120,确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例。

其中,期望采样数据量可以是由用户根据实际需求设置的一个数值,例如用户希望在每个采样周期内采集100条数据,则可以将期望采样数据量设置为100,也可以是根据设备性能确定的一个数值,例如设备在一个采样周期内能够处理200条数据,则可以将期望采样数据量设置为200。

s130,按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

选用该实施例,可以将期望采集到的数据量与最近预设采样周期内接收到的待采样数据的数据量的比值作为当前预设采样周期内的采样比例,对于流量渐变的数据流,当预设采样周期足够短时,可以近似认为最近预设采样周期内接收到的待采样数据的数据量等于当前预设采样周期内将要接收到的待采样数据的数据量。因此使用该采样比例对当前预设采样周期内将要接收到的数据进行采样,可以使得在当前预设采样周期内采集到近似于期望采集到的数据量的数据,即单位时间内采样得到的数据的数据量相对稳定。

在一种可选的实施例中,参见图1b,s110可以具体包括以下步骤:

s111,获取最近预设采样周期内所接收到的数据中不符合预设特征的数据的数据量,并将不符合预设特征的数据的数据量作为最近预设采样周期内所接收到的待采样数据的数据量。

具体的,可以是首先获取最近预设采样周期内所接受到的数据,从中剔除符合预设特征的数据,统计剩余数据的数据量,作为最近预设采样周期内所接收到的待采样数据的数据量。

可以理解的是,并非所有接收到的数据都是希望采集到的数据,因此可以在采样前,对接收到的数据进行筛选。示例性的,希望从接收到的大量的弹幕中采集部分弹幕展示给观众,为了避免采集到带有低俗信息的弹幕,可以先对接收到的弹幕进行筛选,剔除其中带有低俗词语的弹幕。

选用该实施例,可以进一步的实现对接收到的数据条件的条件筛选,避免抽样得到的数据中包含不希望得到的数据,提高了抽样的效率。

在一种可选的实施例中,参见图1c,s130可以具体包括以下步骤:

s131,在当前预设采样周期内每接收到一条数据,生成一个取值范围为0到1的伪随机数。

在本实施例中,生成的伪随机数的数值的概率分布呈均匀分布,即对于任意两个处于0到1内的数a和b,生成等于a的伪随机数的概率,和生成等于b的伪随机数的概率相同。

s132,如果该伪随机数小于采样比例,采集该条数据。

选用该实施例可以使得,当前预设采样周期内接收到的每一条数据被采集到的概率相同,采集到的数据能够更准确的反映出待采样数据的统计学特性。

参见图2,图2所示为本发明实施例提供的基于实时数据流的数据采样方法的另一种流程示意图,可以包括以下步骤:

s210,在预设采样周期到达时,获取最近预设采样周期内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量。

可以理解的是,当预设采样周期足够短且数据流的流量不会随时间变化而突变时,可以近似认为两个在相邻的预设采样周期内所接收到的数据的数据量相等,因此可以将最近预设采样周期内所接收到的待采样数据的数据量,作为当前预设采样周期内将要接收到的待采样数据的数据量。

s220,确定预设的期望采样数据量是否小于参考数据量。如果预设的期望采样数据量不小于参考数据量,执行s230,如果预设的期望采样数据量小于参考数据量,执行s240。

s230,采集当前预设采样周期内所接收到的所有待采样数据。

可以理解的是,当预设的期望采样数据量不小于参考数据量时,说明当前预设采样周期内将要接收到的数据量很有可能小于或等于期望采样数据量,选用该实施例,可以采集当前预设采样周期内所接收到的所有待采样数据,以使得采集到的数据的数据量尽可能接近于期望采样数据量。

s240,确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例。

s250,按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

可以理解的是,对于第一个预设采样周期,由于不存在最近预设采样周期,所以无法按照s240中描述的方法确定采样比例。针对这种情况,在其他实施例中,可以不采集或全部采集第一个预设采样周期内所接收到的待采样数据,也可以根据经验设置一个比例,并按照该比例对当前预设采样周期内所接收的待采样数据进行采样。

参见图3,图3所示为本发明实施例提供的基于实时数据流的数据采样方法的一种流程示意图,可以包括以下步骤:

s310,在预设采样周期到达时,获取最近预设采样周期内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量。

s320,确定参考数据量是否为0,如果参考数据量为0,则执行步骤s330,如果参考数据量不为0,则执行步骤s340。

s330,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

可以理解的是,当参考数据量为0时,由于分母为0,因此无法得到预设的期望采样数据量与参考数据量的比值,针对这种情况,该实施例可以按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。在其他实现方式中,也可以不采集或全部采集当前预设采样周期内所接收到的待采样数据。

s340,确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例。

s350,按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

参见图4,图4所示为本发明实施例提供的基于实时数据流的数据采样方法的一种流程示意图,可以包括以下步骤:

s410,在预设采样周期到达时,获取最近预设采样周期内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量。

s420,确定参考数据量是否为0,如果参考数据量为0,则执行步骤s430,如果参考数据量不为0,则执行步骤s440。

s430,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

s440,确定预设的期望采样数据量是否小于参考数据量。如果否,执行s450,如果是,执行s460。

s450,采集当前预设采样周期内所接收到的所有待采样数据。

s460,确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例。

s470,按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

参见图5,图5所示为本发明实施例提供的基于实时数据流的数据采样装置耳朵一种结构示意图,可以包括以下模块:

预估模块510,用于在预设采样周期到达时,获取最近预设采样周内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量;

比例确定模块520,用于确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例;

采样模块530,用于按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

进一步的,采样模块530,可以具体用于在当前预设采样周期内每接收到一条数据,生成一个取值范围为0到1的伪随机数;并且如果该伪随机数小于采样比例,采集该条数据。

进一步的,比例确定模块520还可以用于确定预设的期望采样数据量与参考数据量之间的大小关系;并且如果期望采集数据量小于参考数据量,执行确定预设的期望采样数据量与参考数据量的比值的步骤;

采样模块530,还可以用于如果期望采集数据量不小于参考数据量,采集当前预设采样周期内所接收到的所有待采样数据。

进一步的,预估模块510,可以具体用于获取最近预设采样周期内所接收到的数据中不符合预设特征的数据的数据量,并将不符合预设特征的数据的数据量作为最近预设采用周期内所接收到的待采样数据的数据量。

进一步的,其特征在于,比例确定模块520还可以用于确定参考数据量是否为0;并且如果参考数据量不为0,执行确定预设的期望采样数据量与参考数据量的比值的步骤。

采样模块530,还可以用于如果参考数据量为0,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:

在预设采样周期到达时,获取最近预设采样周期内所接收到的待采样数据的数据量,并将待采样数据的数据量作为参考数据量;

确定预设的期望采样数据量与参考数据量的比值,并将该比值作为采样比例;

按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

进一步的,按照采样比例,对当前预设采样周期内所接收到的待采样数据进行采样,可以包括:

在当前预设采样周期内每接收到一条数据,生成一个取值范围为0到1的伪随机数;

如果该伪随机数小于采样比例,采集该条数据。

进一步的,在确定预设的期望采样数据量与参考数据量的比值之前,还可以包括:

确定预设的期望采样数据量与参考数据量之间的大小关系;

如果期望采集数据量小于参考数据量,执行确定预设的期望采样数据量与参考数据量的比值的步骤;或者,

如果期望采集数据量不小于参考数据量,采集当前预设采样周期内所接收到的所有待采样数据。

进一步的,获取最近预设采样周期内所接收到的待采样数据的数据量,可以包括:

获取最近预设采样周期内所接收到的数据中不符合预设特征的数据的数据量,并将不符合预设特征的数据的数据量作为最近预设采样周期内所接收到的待采样数据的数据量。

进一步的,在确定预设的期望采样数据量与参考数据量的比值之前,还可以包括:

确定参考数据量是否为0;

如果参考数据量不为0,则执行确定预设的期望采样数据量与参考数据量的比值的步骤;或者,

如果为参考数据量为0,按照预设采样比例,对当前预设采样周期内所接收到的待采样数据进行采样。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的基于实时数据流的数据采样方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的基于实时数据流的数据采样方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算节程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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