数据采集方法和装置与流程

文档序号:11460098阅读:356来源:国知局
数据采集方法和装置与流程

本发明涉及数据处理技术领域,尤其涉及一种数据采集方法和装置。



背景技术:

假设如下的应用场景:由于存储空间有限等原因,系统a中存储的数据需要被传输到系统b中进行集中存储,此时,数据采集装置需要从系统a中采集或者说读取数据,并发送至系统b中存储,该数据采集装置比如可以实现为系统a中的数据采集进程。

实际应用中,任一服务都有自己的能力上限,为了保证在遇到流量高峰期或者流量突增时,服务也能保证一定的弹性和稳定性,最有效的方案就是进行服务降级,而限流就是降级系统最常采用的方案之一。限流的目的是在遇到流量突增时,把流量速率限制在一个能接受的合理范围之内。

因此,在上述数据采集应用中,为了保证数据采集服务的稳定性,数据采集过程中可以采用一定限流手段进行限流处理。



技术实现要素:

目前,一种数据采集过程中采用的限流方式是:预先设定固定的数据采集速率阈值,即预先设定单位时间内可采集的数据量上限。若实际采集过程中单位时间内各次采集获得的数据量大小超过了该数据量上限,则丢弃导致超过数据量上限的采集到的数据。

举例来说,假设上述数据采集速率阈值为10mb/s,即单位时间1s内能够采集的数据量上限为10mb。并且假设单位时间1s内可以以200ms为采集间隔来周期性采集数据,假设1ms时采集到了5mb的数据,由于小于10mb,则直接被发送至系统b中存储,假设201ms采集到了7mb数据,此时该单位时间内已经采集了12mb数据,超出了10mb的限制,此时将丢弃当前采集到的该7mb的数据。

在上述采用固定数据采集速率阈值的限流策略中,一方面,该数据采集速率阈值的设定往往是基于人为经验设定的,另一方面,不管当前系统a中被写入的数据量如何,不管系统a中其他服务的处理负载如何,都是以固定数据采集速率阈值进行数据采集处理,这样可能降低了系统a全局的负载处理效率。

有鉴于此,本发明实施例提供一种数据采集方法和装置,在包含数据采集节点和业务处理节点的系统中,通过动态调整数据采集节点的数据采集速率阈值,以提高系统全局的负载处理效率。

第一方面,本发明实施例提供一种数据采集方法,包括:

获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源;

根据所述处理资源使用率,确定数据采集速率阈值;

根据所述数据采集速率阈值采集数据。

可选地,所述获取当前周期内业务处理节点对应的处理资源使用率,包括:

获取当前周期内所述业务处理节点在连续多个时间片段内的平均处理资源使用率。

可选地,所述根据所述处理资源使用率,确定数据采集速率阈值之前,还包括:

获取数据采集速率阈值加权因子;

所述根据所述处理资源使用率,确定数据采集速率阈值,包括:

根据所述处理资源使用率和所述数据采集速率阈值加权因子,确定所述数据采集速率阈值。

可选地,所述获取数据采集速率阈值加权因子,包括:

获取预设历史时间段内所述业务处理节点对应的处理资源使用率分布曲线,以及所述数据采集节点对应的数据采集速率阈值分布曲线;

确定所述处理资源使用率分布曲线的n分位值对应的处理资源使用率,以及所述数据采集速率阈值分布曲线的m分位值对应的数据采集速率阈值,其中,m%=1-n%,50≤n<100;

根据所述n分位值对应的处理资源使用率和所述m分位值对应的数据采集速率阈值,计算所述数据采集速率阈值加权因子。

可选地,所述根据所述数据采集速率阈值采集数据,包括:

根据所述数据采集速率阈值确定所述当前周期内每个采集窗口对应的可采集数据量上限,所述每个采集窗口的时间长度为所述数据采集速率阈值对应的单位时间,所述每个采集窗口中包括彼此相隔预设采集间隔的多个采集时刻;

对于当前采集窗口内的当前采集时刻,若在所述当前采集时刻采集的累计数据量大于所述可采集数据量上限,则延迟下一次采集对应的采集时刻。

可选地,所述根据所述数据采集速率阈值确定所述当前周期内每个采集窗口对应的可采集数据量上限,包括:

若执行所述数据采集速率阈值的时刻对齐所述当前采集窗口的起始时刻,则确定所述可采集数据量上限为所述数据采集速率阈值表征的单位时间内采集的数据量大小;

若执行所述数据采集速率阈值的时刻未对齐所述当前采集窗口的起始时刻,则根据原数据采集速率阈值和所述数据采集速率阈值确定所述可采集数据量上限,所述原数据采集速率阈值为执行所述数据采集速率阈值之前采用的数据采集速率阈值。

可选地,所述延迟下一次采集对应的采集时刻,包括:

根据所述累计数据量与所述可采集数据量上限之间的差额数据量,以及每个预设采集间隔能够传输的平均数据量,确定完成所述差额数据量的传输所需的采集间隔个数;

在与所述当前采集时刻相距所述采集间隔个数后的采集时刻执行下一次采集。

第二方面,本发明实施例提供一种数据采集装置,包括:

第一获取模块,用于获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源;

确定模块,用于根据所述处理资源使用率,确定数据采集速率阈值;

采集模块,用于根据所述数据采集速率阈值采集数据。

在一个可能的设计中,上述数据采集装置的结构中包括处理器和存储器,所述存储器用于存储支持数据采集装置执行上述第一方面中数据采集方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述数据采集装置还可以包括通信接口,用于数据采集装置与其他设备或通信网络通信。

第三方面,本发明实施例提供了一种计算机存储介质,用于储存数据采集装置所用的计算机软件指令,其包含用于执行上述第一方面中数据采集方法所涉及的程序。

本发明实施例提供的数据采集方法和装置,在业务处理节点与数据采集节点共用处理资源分别进行业务处理和数据采集的应用场景中,结合当前周期内业务处理节点对共用的处理资源的处理资源使用率来确定数据采集节点的数据采集速率阈值,以在该数据采集速率阈值的限制下进行数据采集,从而实现了周期性地根据业务处理节点对处理资源的使用率来动态调整数据采集节点的数据采集速率阈值,以在数据采集的同时兼顾更为重要的业务处理节点的处理负载,有助于提高全局的负载处理效率以及处理资源的利用效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的数据采集系统的结构示意图;

图2为本发明另一实施例提供的数据采集方法的流程图;

图3为本发明又一实施例提供的数据采集方法的流程图;

图4为图3所示实施例中一种可选的处理资源使用率分布曲线示意图;

图5为图3所示实施例中一种可选的数据采集速率阈值分布曲线示意图;

图6为本发明又一实施例提供的数据采集方法的流程图;

图7为图6所示实施例中步骤2031对应的一种情景的示意图;

图8为图6所示实施例中步骤2031对应的另一种情景的示意图;

图9为图6所示实施例中步骤2032对应的一种情景的示意图;

图10为图6所示实施例中步骤2032对应的另一种情景的示意图;

图11为本发明又一实施例提供的数据采集装置的结构示意图;

图12为本发明又一实施例提供的数据采集装置的结构示意图;

图13为本发明又一实施例提供的数据采集装置的结构示意图;

图14为本发明又一实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

本发明实施例提供的数据采集方法可基于图1所示的数据采集系统实现,但不限于此。如图1所示,该数据采集系统包括:业务处理节点、数据采集节点、数据库。其中,业务处理节点的数量可以是一个或多于一个。可选地,如图1中所示,该业务处理节点和数据采集节点可以是位于同一服务器a中的不同功能模块或者不同进程,当然,业务处理节点和数据采集节点并不局限于集成在同一设备中的情况。该数据采集系统的目的是采集数据库中存储的数据,以转存至服务器b中进行存储,当然,该从一服务器a中采集数据至另一服务器b中存储的场景仅为举例,不以此为限。

值得说明的是,在一可选方式中,数据采集节点中被置入一定数据采集处理逻辑,基于该处理逻辑数据采集节点进行数据采集速率阈值确定以及采集数据等过程,此时,可以将设置有该数据采集处理逻辑的数据采集节点称为数据采集装置。在另一可选方式中,所述数据采集处理逻辑可以作为一个独立的功能模块,其可以与数据采集节点之间进行通信,也可以与业务处理节点之间通信,比如该数据采集处理逻辑将确定出的数据采集速率阈值传输至数据采集节点,以使得数据采集节点基于该数据采集速率阈值进行后续的数据采集处理。此时,为便于描述,在不引起歧义的情况下,可以将该数据采集处理逻辑和数据采集节点的整体视为数据采集装置。

结合图1所示的数据采集系统,以下实施例从数据采集装置的角度,详细说明本发明实施例提供的数据采集方法的流程。

图2为本发明另一实施例提供的数据采集方法的流程图,如图2所示,该方法包括如下步骤:

步骤201、获取当前周期内业务处理节点对应的处理资源使用率,业务处理节点与数据采集节点共用处理资源。

本发明实施例中,上述业务处理节点一般是指与数据采集节点关联的业务处理节点,该关联性比如体现为:数据采集节点所要采集的数据是由业务处理节点产生的。实际应用中,可以预先设定与数据采集节点关联的业务处理节点。

另外,上述关联性也可以反映为业务处理节点与数据采集节点共用处理资源,比如图1中,两者共用服务器a的处理资源,该处理资源比如包括服务器a的cpu、内存等资源。

比如在如下场景中:用户向服务器a发送订餐请求,服务器a中的业务处理节点响应该订餐请求,进行相应的处理,处理过程中,比如可以将用户的订餐信息、为用户分配的物流配送信息存入数据库中。另外,由于服务器a中的存储空间有限等原因,需要将数据库中存储的这些订餐相关信息转至服务器b中存储。从而此时,业务处理节点不断向数据库中存入数据,数据采集节点需要不断从数据库中采集数据至另一服务器中存储。

本发明实施例提供的数据采集方法的主要目的在于:动态调整数据采集节点的数据采集速率阈值,以使得整个数据采集系统比如上述举例的服务器a的整体处理负载处理效率最优。为此,数据采集速率阈值调整的总体原则是:如果业务处理节点的处理资源使用率高则降低数据采集速率阈值;如果业务处理节点的处理资源使用率偏低,则提高数据采集速率阈值,以保证整个系统在一个较优的负载处理状态。

由上述原则可知,为了动态调整数据采集速率阈值,需要相应地动态获取业务处理节点对处理资源的使用情况。因此,本实施例中,可以周期性地确定业务处理节点对处理资源的使用情况,即周期性地确定业务处理节点对应的处理资源使用率,以根据当前周期内业务处理节点对应的处理资源使用率确定当前周期内数据采集节点对应的数据采集速率阈值。

每个周期具有一定的预设时间长度,在一可选方式中,可以将每个周期按照预设的时间片段大小划分为连续的多个时间片段,从而可以通过获取当前周期内业务处理节点在该连续多个时间片段内的平均处理资源使用率来确定当前周期内业务处理节点对应的处理资源使用率。

举例来说,假设一个周期的长度为1min,并且将每个周期划为6个时间片段,每个时间片段为10s,这样当前的某个周期内业务处理节点对应的平均处理资源使用率其中,n为每个周期内包含的时间片段个数,在上述举例中n取值为6,xi为第i个时间片段对应的处理资源使用率。以处理资源为cpu为例,可以每隔10s查询确定业务处理节点对cpu的占用率,其中,业务处理节点对cpu的占用率可以通过现有的监测进程对cpu的占用率的手段确定,在此不赘述。再比如,以处理资源为内存为例,可以每隔10s统计业务处理节点对内存空间的占用率。

步骤202、根据业务处理节点对应的处理资源使用率,确定数据采集速率阈值。

由前述介绍的总体原则可知,数据采集节点的数据采集速率阈值与业务处理节点的处理资源利用率呈现的是此消彼长的变化趋势,因此,可以基于该变化趋势,预先设定数据采集速率阈值与业务处理节点的处理资源利用率的函数关系,从而在确定了业务处理节点的处理资源利用率的情况下,基于该函数关系确定数据采集速率阈值。比如该函数关系为:r=k/x,其中,k为数据采集速率阈值加权因子,可以是预先设定的固定值;r为数据采集速率阈值。

步骤203、根据数据采集速率阈值采集数据。

在根据业务处理节点的处理资源利用率确定了当前周期内数据采集节点的数据采集速率阈值后,在该数据采集速率阈值的限制下进行当前周期的数据采集处理,以将采集的数据存入到目标存储位置,比如前述举例的服务器b中。

本实施例中,在业务处理节点与数据采集节点共用处理资源分别进行业务处理和数据采集的应用场景中,结合当前周期内业务处理节点对共用的处理资源的处理资源使用率来确定数据采集节点的数据采集速率阈值,以在该数据采集速率阈值的限制下进行数据采集,从而实现了周期性地根据业务处理节点对处理资源的使用率来动态调整数据采集节点的数据采集速率阈值,从而以在数据采集的同时兼顾更为重要的业务处理节点的处理负载,有助于提高全局的负载处理效率以及处理资源的利用效率。

前述实施例中举例说明了业务处理节点的处理资源利用率与数据采集节点的数据采集速率阈值之间的函数关系,该函数关系中涉及到加权因子k,即基于该函数关系,是根据业务处理节点的处理资源使用率和该数据采集速率阈值加权因子来确定数据采集速率阈值。上述举例中,该加权因子k可以是预先经验设定的固定值,在另一可选方式中,该加权因子k还可以是基于历史时间段内业务处理节点的处理资源使用特征以及数据采集节点的数据采集速率阈值特征来确定的。因此,在上述实施例或下述实施例中,如图3所示,根据处理资源使用率确定数据采集速率阈值,可以包括以下步骤:

步骤2021、获取预设历史时间段内业务处理节点对应的处理资源使用率分布曲线,以及数据采集节点对应的数据采集速率阈值分布曲线。

本实施例中,上述历史时间段的定义可以是灵活多样的,可选地,考虑到业务在时间维度上的相似性,可以预先设定上述表征动态调整数据采集速率阈值的周期与历史时间段的对应关系。

比如以订餐场景为例,一般周末的订餐量、订餐时间分布特征与工作日的订餐量、订餐时间分布特征可能不同,假设当前执行数据采集方法的当前周期处于某个周日,那么可以认为相对于当前周期来说,上述历史时间段为前几个周六、周日中的某些时间段。

如图4所示,处理资源使用率分布曲线的横轴代表的是时间,纵轴代表的是处理资源使用率。如图5所示,数据采集速率阈值分布曲线的横轴代表的是时间,纵轴代表的是数据采集速率阈值。也就是说,该处理资源使用率分布曲线表征了业务处理节点在各时间上对应的处理资源使用率。该数据采集速率阈值分布曲线表征了数据采集节点在各时间上对应的数据采集速率阈值。

实际应用中,随着数据采集节点和业务处理节点的运行,不断收集在不同时间上数据采集节点对应的数据采集速率阈值以及业务处理节点对应的处理资源使用率。进而,针对当前周期来说,从已经收集的数据中选出对应历史时间段内的数据,分别绘制得到上述处理资源使用率分布曲线和数据采集速率阈值分布曲线。其中,处理资源使用率的收集过程可以参考前述实施例中平均处理资源使用率的获取方式执行,对应的数据采集速率阈值可以基于上述函数关系确定。值得说明的是,初始时,上述函数关系中的k值可以经验设置,随着时间的推移,该k值则可以基于本实施例提供的方式动态变化。

步骤2022、确定处理资源使用率分布曲线的n分位值对应的处理资源使用率,以及数据采集速率阈值分布曲线的m分位值对应的数据采集速率阈值。

本实施例中,n的取值范围可以为:50≤n<100,n比如可以取值为75,;m的取值比如为:m%=1-n%,即为25分位值。

值得说明的是,这里的“1”,从数学的角度,可以理解为是表示100。

如图4所示,假设处理资源使用率分布曲线为一正态分布曲线,横轴数值从左往右是逐渐增大的,75分位值意思就是从左往右找一个分界点竖线,他把左侧面积占比设定为75%,相应的右侧面积就是25%,而这个分界点竖线与横轴的交点75分位值,对应的纵坐标值就是对应的处理资源使用率,记为a1。

同理,如图5所示,假设数据采集速率分布曲线为一正态分布曲线,横轴数值从左往右是逐渐增大的,25分位值意思就是从左往右找一个分界点竖线,他把左侧面积占比设定为25%,相应的右侧面积就是75%,而这个分界点竖线与横轴的交点25分位值,对应的纵坐标值就是对应的数据采集速率阈值,记为a2。

步骤2023、根据n分位值对应的处理资源使用率和m分位值对应的数据采集速率阈值,计算数据采集速率阈值加权因子。

本实施例中,可以设定数据采集速率阈值加权因子k=a1×a2。

步骤2024、根据业务处理节点对应的处理资源使用率和数据采集速率阈值加权因子,确定数据采集速率阈值。

确定当前周期内的数据采集速率阈值为:

本实施例中,基于历史时间内业务处理节点的处理资源使用率分布特征以及数据采集节点的数据采集速率阈值的分布特征来确定与该历史时间对应的当前周期内的数据采集速率阈值的加权因子,使得确定的当前周期内数据采集速率阈值与对应的历史规律相适应,对平衡业务处理节点和数据采集节点对共用的处理资源的占用具有积极作用,从而有利于提高整体的负载处理效率和处理资源利用率。

在上述实施例或下述实施例中,如图6所示,根据数据采集速率阈值采集数据,可以包括以下步骤:

步骤2031、根据数据采集速率阈值确定当前周期内每个采集窗口对应的可采集数据量上限,每个采集窗口中包括彼此相隔预设采集间隔的多个采集时刻。

可选地,本实施例中,每个采集窗口的时间长度可以为数据采集速率阈值对应的单位时间。

本发明实施例中,数据采集速率阈值的含义顾名思义是指单位时间内能够允许采集的最大数据量。因此,在当前周期的数据采集过程中,可以视为将当前周期划分为多个采集窗口,每个采集窗口的时间跨度即为数据采集速率阈值对应的单位时间,比如为1s。相应的,当前周期内每个采集窗口对应的可采集数据量上限可以为数据采集速率阈值所对应的数值,比如数据采集速率阈值若为10mb/s,则当前周期内每个采集窗口对应的可采集数据量上限为10mb。

而在实际数据采集过程中,一般来说,并非是每隔单位时间的长度采集一次数据,而往往是在单位时间内采集多次数据,因此,本实施例中,每个采集窗口中又包含多个采集时刻,相邻采集时刻之间间隔一定的时间长度,比如200ms,则一个采集窗口中包含5个采集时刻。

本发明实施例中,周期性地调整数据采集节点的数据采集速率阈值,但是,一般来说,并不能完全保证每个周期的起始时刻正好对齐一个采集窗口的起始,也就是说,实际执行过程中,可能会出现执行当前周期对应的数据采集速率阈值的时刻即往往近乎于当前周期的起始时刻,近乎对齐当前采集窗口的起始时刻即第一个采集时刻a1的情景,如图7所示;也可能会出现执行当前周期对应的数据采集速率阈值的时刻没有对齐当前采集窗口的起始时刻,比如可能对齐于当前采集窗口中的第三个采集时刻a3的情况,如图8所示。

从而,相应地,根据数据采集速率阈值确定当前周期内每个采集窗口对应的可采集数据量上限,包括:

若执行数据采集速率阈值的时刻对齐当前采集窗口的起始时刻,则确定可采集数据量上限为数据采集速率阈值表征的单位时间内采集的数据量大小;

若执行数据采集速率阈值的时刻未对齐当前采集窗口的起始时刻,则根据原数据采集速率阈值和数据采集速率阈值确定可采集数据量上限,其中,原数据采集速率阈值为执行数据采集速率阈值之前采用的数据采集速率阈值。

如图7中所示,此时执行当前周期对应的数据采集速率阈值的时刻对齐当前采集窗口的起始时刻,则确定可采集数据量上限为数据采集速率阈值表征的单位时间内采集的数据量大小,假设数据采集速率阈值对应的数据量大小为10mb,则当前周期对应的采集窗口1、采集窗口2等各采集窗口分别对应的可采集数据量上限都为10mb。

如图8中所示,此时执行当前周期对应的数据采集速率阈值的时刻未对齐当前采集窗口的起始时刻,图中示意出的是对齐了当前的采集窗口1中的第3个采集时刻。假设当前周期对应的数据采集速率阈值为10mb/s,当前周期的前一周期对应的数据采集速率阈值为15mb/s,则针对采集窗口1来说:由于前一周期对应的数据采集速率阈值15mb/s覆盖了其中的前两个采集时刻,而且每个采集窗口中都含有5个采集时刻,从而每个采集时刻对应的平均可采集数据量为15/5=3mb,因此,前两个采集时刻总共可以采集的数据量为6mb;由于当前周期对应的数据采集速率阈值10mb/s覆盖了采集窗口1中的后三个采集时刻,而且每个采集窗口中都含有5个采集时刻,从而每个采集时刻对应的平均可采集数据量为10/5=2mb,因此,后三个采集时刻总共可以采集的数据量为6mb,从而,采集窗口1对应的可采集数据量上限为6mb+6mb=12mb。而对于当前周期内的比如采集窗口2等其他采集窗口,由于都被当前周期完整覆盖,从而对应的可采集数据量上限为10mb。当然,如果当前周期覆盖的最后一个采集窗口也如其覆盖的第一个采集窗口1一样,并未完全覆盖,则采用如采集窗口1的可采集数据量上限的确定方式确定最后一个采集窗口对应的可采集数据量上限。

步骤2032、对于当前采集窗口内的当前采集时刻,若在当前采集时刻采集的累计数据量大于可采集数据量上限,则延迟下一次采集对应的采集时刻。

其中,当前采集时刻采集的累计数据量是指从当前采集窗口的第一个采集时刻至当前采集时刻累计采集到的数据量。

本实施例中数据采集的一重要原则是:保证数据不丢失。也就是说,与现有限流机制下的数据采集过程不同,在现有限流机制下,如果采集到的数据大于一定的数据量限制,则丢弃部分数据。而本实施例中,即使一个采集窗口中采集到的数据量已经超过了对应的可采集数据量上限的限制,也不会丢弃数据。

具体地,针对当前的采集窗口来说,在以其对应的可采集数据量上限为约束的数据采集过程中,在每个采集时刻数据采集节点采集数据,将累计采集到的数据量与该采集窗口对应的可采集数据量上限进行比较,如果当前的采集时刻对应的累计数据量还没有达到可采集数据量上限,则在下一个采集时刻继续采集数据,否则,如果当前的采集时刻对应的累计数据量已经达到可采集数据量上限,那么需要重新确定执行下一次数据采集动作的采集时刻,即需要延迟下一次采集对应的采集时刻,以保证当前采集时刻对应的累计数据量中还没有被传输至目的存储空间比如服务器b中的数据被完整传输完。

其中,在需要延迟下一次采集对应的采集时刻时,如何确定延迟至的采集时刻,可以通过如下方式实现:

根据累计数据量与可采集数据量上限之间的差额数据量,以及每个预设采集间隔能够传输的平均数据量,确定完成差额数据量的传输所需的采集间隔个数;其中,每个预设采集间隔能够传输的平均数据量为该预设采集间隔对应的数据采集速率阈值与多个采集时刻的个数的商值所表征的数据量大小;

在与当前采集时刻相距上述所需的采集间隔个数后的采集时刻执行下一次采集,即下一次采集对应的采集时刻为:与当前采集时刻相距所需的采集间隔个数后的采集时刻。

为方便理解,结合如下的情景举例说明:

如图9所示,假设采集窗口1包含a1、a2、a3、a4、a5这五个采集时刻,且该采集窗口1对应的数据采集速率阈值为10mb/s,即某个周期对应的数据采集速率阈值为10mb/s,该周期覆盖了采集窗口1。假设采集窗口2包含a6、a7、a8、a9、a10这五个采集时刻,其中,该采集窗口2中的a6、a7、a8采集时刻对应的数据采集速率阈值为15mb/s,即另一周期对应的数据采集速率阈值为15mb/s,该周期覆盖了采集窗口2的前三个采集时刻;其中,该采集窗口2中的a9、a10采集时刻对应的数据采集速率阈值为5mb/s,即又一周期对应的数据采集速率阈值为5mb/s,该周期覆盖了采集窗口2的后两个采集时刻。

在上述假设条件下,采集窗口1对应的可采集数据量上限为10mb,其中的每个预设采集间隔能够传输的平均数据量为数据采集速率阈值(10mb/s)与多个采集时刻的个数(5个)的商值所表征的数据量大小:10mb/5=2mb。

在数据采集的过程中,如图9中所示,假设采集时刻a1采集到的数据量为2mb,由于采集时刻a1为当前采集窗口1的第一个采集时刻,此时对应的累计数据量即为2mb,没有超过可采集数据量上限10mb,随即将采集到的2mb数据传输至目的存储空间存储;

当采集时刻a2到来的时候,采集到的数据量为5mb,此时对应的累计数据量为2+5=7mb,也没有超过可采集数据量上限10mb,随即将采集到的5mb数据传输至目的存储空间存储;

当采集时刻a3到来的时候,采集到的数据量为1mb,此时对应的累计数据量为2+5+1=8mb,也没有超过可采集数据量上限10mb,随即将采集到的1mb数据传输至目的存储空间存储;

当采集时刻a4到来的时候,采集到的数据量为1mb,此时对应的累计数据量为2+5+1+1=9mb,也没有超过可采集数据量上限10mb,随即将采集到的1mb数据传输至目的存储空间存储;

当采集时刻a5到来的时候,采集到的数据量为6mb,此时对应的累计数据量为2+5+1+1+6=15mb,超过了可采集数据量上限10mb。此时,采集时刻a5对应的累计数据量15mb超过当前采集窗口1的可采集数据量上限10mb的差额数据量为15mb-10mb=5mb,也就是说,采集时刻a5采集到的6mb数据在向目的存储空间传输的过程中,理想情况下,在采集窗口1内仅能够传输1mb,剩余的5mb无法在采集窗口1完成传输。为了保证数据的完整性,不丢弃采集到的数据,则需要延迟下一次采集数据的时刻,因为,如果在下一个采集时刻即采集窗口2的第一个采集时刻a6就执行数据采集动作,则此时采集窗口1的采集时刻a5采集到的6mb数据还没有传输完毕,不能保证数据完整性。

在确定需要延迟到何时才能完成上述差额数据量5mb的传输时,由于当前的采集窗口1内已经没有采集时刻了,需要在接下来的一个或多个采集窗口中确定需要延迟几个采集时刻。针对采集窗口1后续相邻的采集窗口2来说,由于采集窗口2到来时,数据采集速率阈值已经调整为15mb/s,此时认为采集窗口2的可采集数据量上限为15mb,其对应的每个采集间隔能够传输的平均数据量为数据采集速率阈值(15mb/s)与多个采集时刻的个数(5个)的商值所表征的数据量大小:15mb/5=3mb。从而,为了完成差额数据量5mb的传输,需要2个采集间隔,即求解5mb<min(intn)*3mb,得到n=2,因此,a6和a7采集时刻不执行数据采集动作,用于差额数据量5mb的传输,a8才开始执行数据采集。

但是值得说明的是:由于采集窗口2对应的数据采集速率阈值15mb/s其实只覆盖了其中的前三个采集时刻,即只覆盖了前三个采集间隔。因此,上述平均数据量3mb其实仅适用于a6、a7、a8三个采集时刻对应的采集间隔,后续a9和a10对应的采集间隔对应的平均数据量为5mb/5=1mb。因此,如果上述差额数据量超过a6、a7、a8对应的三个采集间隔能够承担的总数据量3mb*3=9mb,则后续需要按照每个采集间隔能够传输平均数据量为1mb的情况计算需要延迟多少个采集间隔。举例来说,假设差额数据量为10mb,则按照上述公式发现,以每个采集间隔能够传输的平均数据量为3mb来传输,则至少需要4个采集间隔,而目前仅有三个采集间隔能支持平均数据量为3mb的传输,则还剩余10-9=1mb的数据,此时,由于采集窗口2的a9、a10对应的采集间隔能够传输的平均数据量为1mb,则满足1mb<min(intn)*1mb的n的取值为1,则还需要延迟一个采集时刻a9才能将全部的10mb差额数据量传输完毕。

再举例,如图10所示,与图9所示实施例不同的是,图10中假设采集窗口1中的a1、a2、a3、a4对应的数据采集速率阈值为10mb/s,a5以及采集窗口2中的a6、a7、a8对应的数据采集速率阈值为15mb/s,自采集窗口2的a9开始对应的数据采集速率阈值为5mb/s。

上述条件下,对于采集窗口1来说,其对应的可采集数据量上限不再为10mb,而是需要根据覆盖采集窗口1的两个采集速率阈值10mb/s和15mb/s来确定其对应的可采集数据量上限,具体确定方法参见对步骤2031的介绍,此时,采集窗口1对应的可采集数据量上限为:(10mb/5)*4+(15mb/5)*1=11mb。

仍旧假设采集窗口1中各采集时刻采集到的数据量与图9中一致,则采集时刻a5对应的累计数据量为15mb,差额数据量为15mb-11mb=4mb。满足4mb<min(intn)*3mb的n取值为2,则需要延迟a6、a7后,从a8开始执行数据采集动作,即a6、a7时不进行数据采集。

针对后续采集时刻以及后续采集窗口的处理与前述举例的原理类似,不再赘述。

本实施例中,在以每个采集窗口对应的数据采集速率阈值所表征的数据量大小为约束的数据采集过程中,在每个采集窗口实际采集到的数据量大于其对应的数据量上限时,通过延迟下一次数据采集的时刻的方式保证已经采集到的数据能够被完整的存储,保证了数据的完整性。

以下将详细描述本发明的一个或多个实施例的数据采集装置。这些数据采集装置可以被实现在服务器的基础架构中。本领域技术人员可以理解,这些数据采集装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。

图11为本发明又一实施例提供的数据采集装置的结构示意图,如图11所示,该数据采集装置包括:第一获取模块11、确定模块12、采集模块13。

第一获取模块11,用于获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源。

确定模块12,用于根据所述处理资源使用率,确定数据采集速率阈值。

采集模块13,用于根据所述数据采集速率阈值采集数据。

可选地,所述第一获取模块11具体用于:

获取当前周期内所述业务处理节点在连续多个时间片段内的平均处理资源使用率。

图11所示装置可以执行图2所示实施例的方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。

图12为本发明又一实施例提供的数据采集装置的结构示意图,如图12所示,在图11所示实施例基础上,该装置还包括:第二获取模块21。

第二获取模块21,用于获取数据采集速率阈值加权因子。

所述确定模块12具体用于:根据所述处理资源使用率和所述数据采集速率阈值加权因子,确定所述数据采集速率阈值。

可选地,所述第二获取模块21包括:获取单元211、第一确定单元212、计算单元213。

获取单元211,用于获取预设历史时间段内所述业务处理节点对应的处理资源使用率分布曲线,以及所述数据采集节点对应的数据采集速率阈值分布曲线。

第一确定单元212,用于确定所述处理资源使用率分布曲线的n分位值对应的处理资源使用率,以及所述数据采集速率阈值分布曲线的m分位值对应的数据采集速率阈值,其中,m%=1-n%,50≤n<100。

计算单元213,用于根据所述n分位值对应的处理资源使用率和所述m分位值对应的数据采集速率阈值,计算所述数据采集速率阈值加权因子。

图12所示装置可以执行图3所示实施例的方法,本实施例未详细描述的部分,可参考对图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图3所示实施例中的描述,在此不再赘述。

图13为本发明又一实施例提供的数据采集装置的结构示意图,如图13所示,在图12所示实施例基础上,所述采集模块13包括:第二确定单元131、采集处理单元132。

第二确定单元131,用于根据所述数据采集速率阈值确定所述当前周期内每个采集窗口对应的可采集数据量上限,所述每个采集窗口的时间长度为所述数据采集速率阈值对应的单位时间,所述每个采集窗口中包括彼此相隔预设采集间隔的多个采集时刻。

采集处理单元132,用于对于当前采集窗口内的当前采集时刻,若在所述当前采集时刻采集的累计数据量大于所述可采集数据量上限,则延迟下一次采集对应的采集时刻。

其中,所述累计数据量是指从所述当前采集窗口的第一个采集时刻至所述当前采集时刻累计采集到的数据量。

可选地,所述第二确定单元131具体用于:

若执行所述数据采集速率阈值的时刻对齐所述当前采集窗口的起始时刻,则确定所述可采集数据量上限为所述数据采集速率阈值表征的单位时间内采集的数据量大小;

若执行所述数据采集速率阈值的时刻未对齐所述当前采集窗口的起始时刻,则根据原数据采集速率阈值和所述数据采集速率阈值确定所述可采集数据量上限,所述原数据采集速率阈值为执行所述数据采集速率阈值之前采用的数据采集速率阈值。

可选地,所述采集处理单元132具体用于:

根据所述累计数据量与所述可采集数据量上限之间的差额数据量,以及每个预设采集间隔能够传输的平均数据量,确定完成所述差额数据量的传输所需的采集间隔个数;

在与所述当前采集时刻相距所述采集间隔个数后的采集时刻执行下一次采集。

其中,所述平均数据量为所述每个预设采集间隔对应的数据采集速率阈值与所述多个采集时刻的个数的商值所表征的数据量大小。

图13所示装置可以执行图6所示实施例的方法,本实施例未详细描述的部分,可参考对图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图6所示实施例中的描述,在此不再赘述。

以上描述了数据采集装置的内部功能和结构,在一个可能的设计中,该数据采集装置的结构可实现为服务器,如图14所示,可以包括:处理器41和存储器42。其中,所述存储器42用于存储支持数据采集装置执行上述任一实施例中提供的数据采集方法的程序,所述处理器41被配置为用于执行所述存储器42中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器41调用执行。

所述处理器41用于:获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源;根据所述处理资源使用率,确定数据采集速率阈值;根据所述数据采集速率阈值采集数据。

可选地,所述处理器41还用于执行前述各方法步骤中的全部或部分步骤。

其中,所述数据采集装置的结构中还可以包括通信接口43,用于数据采集装置与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存数据采集装置所用的计算机软件指令,其包含用于执行上述第一方面中数据采集方法所涉及的程序。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以产品的形式体现出来,该计算机产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

本发明公共a8、一种数据采集装置,包括:

第一获取模块,用于获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源;

确定模块,用于根据所述处理资源使用率,确定数据采集速率阈值;

采集模块,用于根据所述数据采集速率阈值采集数据。

a9、根据a8所述的装置,所述第一获取模块具体用于:

获取当前周期内所述业务处理节点在连续多个时间片段内的平均处理资源使用率。

a10、根据a8所述的装置,还包括:

第二获取模块,用于获取数据采集速率阈值加权因子;

所述确定模块具体用于:

根据所述处理资源使用率和所述数据采集速率阈值加权因子,确定所述数据采集速率阈值。

a11、根据a10所述的装置,所述第二获取模块包括:

获取单元,用于获取预设历史时间段内所述业务处理节点对应的处理资源使用率分布曲线,以及所述数据采集节点对应的数据采集速率阈值分布曲线;

第一确定单元,用于确定所述处理资源使用率分布曲线的n分位值对应的处理资源使用率,以及所述数据采集速率阈值分布曲线的m分位值对应的数据采集速率阈值,其中,m%=1-n%,50≤n<100;

计算单元,用于根据所述n分位值对应的处理资源使用率和所述m分位值对应的数据采集速率阈值,计算所述数据采集速率阈值加权因子。

a12、根据a8至a11中任一项所述的装置,所述采集模块包括:

第二确定单元,用于根据所述数据采集速率阈值确定所述当前周期内每个采集窗口对应的可采集数据量上限,所述每个采集窗口的时间长度为所述数据采集速率阈值对应的单位时间,所述每个采集窗口中包括彼此相隔预设采集间隔的多个采集时刻;

采集处理单元,用于对于当前采集窗口内的当前采集时刻,若在所述当前采集时刻采集的累计数据量大于所述可采集数据量上限,则延迟下一次采集对应的采集时刻。

a13、根据a12所述的装置,所述第二确定单元具体用于:

若执行所述数据采集速率阈值的时刻对齐所述当前采集窗口的起始时刻,则确定所述可采集数据量上限为所述数据采集速率阈值表征的单位时间内采集的数据量大小;

若执行所述数据采集速率阈值的时刻未对齐所述当前采集窗口的起始时刻,则根据原数据采集速率阈值和所述数据采集速率阈值确定所述可采集数据量上限,所述原数据采集速率阈值为执行所述数据采集速率阈值之前采用的数据采集速率阈值。

a14、根据a12所述的装置,所述采集处理单元具体用于:

根据所述累计数据量与所述可采集数据量上限之间的差额数据量,以及每个预设采集间隔能够传输的平均数据量,确定完成所述差额数据量的传输所需的采集间隔个数;在与所述当前采集时刻相距所述采集间隔个数后的采集时刻执行下一次采集。

本发明还公开了b15、一种服务器,包括存储器和处理器;其中,

所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行;

所述处理器用于:获取当前周期内业务处理节点对应的处理资源使用率,所述业务处理节点与数据采集节点共用所述处理资源;根据所述处理资源使用率,确定数据采集速率阈值;根据所述数据采集速率阈值采集数据。

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