发明内容
本发明的主要目的在于提供一种实时系统数据的去重方法和装置,以解决实时系统数据去重效率较低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种实时系统数据的去重方法,包括:接收实时系统数据;判断第一数据的数据源与实时系统数据的数据源是否相同,其中,第一数据为存储在数据缓冲区中的数据;在判断出第一数据的数据源与实时系统数据的数据源相同的情况下,删除第一数据中数据源与实时系统数据数据源相同的数据;以及暂存实时系统数据至数据缓冲区。
进一步地,实时系统数据的数量为多个,判断第一数据的数据源与实时系统数据的数据源是否相同包括:每接收一个实时系统数据,判断一次第一数据的数据源与实时系统数据的数据源是否相同。
进一步地,通过判断每一个第一数据的标识ID与实时系统数据的标识ID是否相同,来判断第一数据的数据源与实时系统数据的数据源是否相同。
进一步地,在暂存实时系统数据至数据缓冲区之后,去重方法还包括:将数据缓冲区中的数据存储至目标存储区域;以及清空数据缓冲区中的数据。
进一步地,每间隔预定时间将数据缓冲区中的数据存储至目标存储区域。
进一步地,实时系统数据为来自视频实时处理系统或者网页实时处理系统的数据。
为了实现上述目的,根据本发明的另一方面,提供了一种实时系统数据的去重装置,该去重装置主要用于执行本发明上述内容所提供的任一种实时系统数据的去重方法。
为了实现上述目的,根据本发明的另一方面,提供了一种实时系统数据的去重装置,包括:接收单元,用于接收实时系统数据;判断单元,用于判断第一数据的数据源与实时系统数据的数据源是否相同,其中,第一数据为存储在数据缓冲区中的数据;删除单元,用于在判断出第一数据的数据源与实时系统数据的数据源相同的情况下,删除第一数据中数据源与实时系统数据数据源相同的数据;以及暂存单元,用于暂存实时系统数据至数据缓冲区。
进一步地,实时系统数据的数量为多个,判断单元包括:判断子单元,用于每接收一个实时系统数据,判断一次第一数据的数据源与实时系统数据的数据源是否相同。
进一步地,判断子单元包括:判断模块,用于判断每一个第一数据的标识ID与实时系统数据的标识ID是否相同,来判断第一数据的数据源与实时系统数据的数据源是否相同。
进一步地,去重装置还包括:存储单元,用于将数据缓冲区中的数据存储至目标存储区域;以及清空单元,用于清空数据缓冲区中的数据。
进一步地,存储单元用于每间隔预定时间将数据缓冲区中的数据存储至目标存储区域。
进一步地,实时系统数据为来自视频实时处理系统或者网页实时处理系统的数据。
本发明采用接收实时系统数据;判断第一数据的数据源与实时系统数据的数据源是否相同,其中,第一数据为存储在数据缓冲区中的数据;在判断出第一数据的数据源与实时系统数据的数据源相同的情况下,删除第一数据中的数据源与实时系统数据数据源相同的数据;以及暂存实时系统数据至数据缓冲区。在接收实时系统数据之前先建立一个数据缓冲区,通过将实时系统数据暂存至缓冲区,且在数据暂存至缓冲区之前,先对数据进行判断,如果缓冲区中有来自同一个数据源的数据则先删除数据缓冲区中的这个数据源的数据,在进行下一步的处理之前就将数据源的重复数据去重,避免了同一个数据源的大量数据直接进入实时处理系统进行去重,解决了实时系统去重效率低的问题,进而达到了提高实时系统效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明提供一种实时系统数据的去重方法,下面对本发明的实时系统数据的去重方法进行具体介绍:
图1是本发明实施例的实时系统数据去重方法的流程图。如图1所示,该方法包括如下的步骤S102至步骤S108:
步骤S102,接收实时系统数据。具体地,在接收数据之前,先在内存里开辟一个数据缓冲区。
步骤S104,判断第一数据的数据源与实时系统数据的数据源是否相同,其中,第一数据为存储在数据缓冲区中的数据。
步骤S106,在判断出第一数据的数据源与实时系统数据的数据源相同的情况下,删除第一数据中的数据源与实时系统数据数据源相同的数据,
步骤S108,暂存实时系统数据至数据缓冲区。
本发明实施例的实时系统数据的去重方法,在接收实时系统数据之前先建立一个数据缓冲区,通过将实时系统数据暂存至缓冲区,且在数据暂存至缓冲区之前,先对数据进行判断,如果缓冲区中有来自同一个数据源的数据则先删除数据缓冲区中的这个数据源的数据,在进行下一步的处理之前就将数据源的重复数据去重,避免了同一个数据源的大量数据直接进入实时处理系统进行去重,解决了实时系统去重效率低的问题,进而达到了提高实时系统处理数据效率的效果。
进一步地,实时系统数据为多个,判断第一数据的数据源与实时系统数据的数据源是否相同包括:每接收一个实时系统数据,判断一次第一数据的数据源与接收到的实时系统数据的数据源是否相同。实时系统的各个数据源会每间隔一段时间发送一个最新的数据,以便于监控系统的运行状态,每接收一个新的数据时,进行一次判断,即将数据缓冲区中的数据的数据源与接收到的这个实时系统数据的数据源进行比较,如果数据缓冲区中某个数据的数据源与接收到的这个实时系统数据的数据源相同,则删除数据缓冲区中的旧数据,暂存这个数据源发来的最新数据。
进一步地,在本发明实施例中,可以通过判断每一个第一数据的标识ID与实时系统数据的标识ID是否相同,来判断第一数据的数据源与实时系统数据的数据源是否相同,其中,当判断出某个第一数据的标识ID与实时系统数据的标识ID相同的情况下,确定这个第一数据的数据源与实时系统数据的数据源相同,反之,则不相同。此种通过标识ID进行判断的方式也称作自连接判断方式,以实时系统数据为来自视频实时处理系统的数据为例进一步说明,假设目前在处理很多条“播放记录”的集合,每条播放记录都有一个唯一的播放Id,对于判断新接收到的视频播放数据的数据源与已经记录的视频播放数据的数据源是否相同,则将新接收到的视频播放数据集合与已经记录的视频播放数据集合进行连接,这两个集合在连接的时候,根据播放Id作为连接的条件判定,即从新接收到的视频数据集合中选择任意一个播放Id的播放记录,到已经记录的视频播放数据的集合中去查找是否具有同样播放Id的播放记录。
通过一对一的自连接,来判断数据缓冲区中的数据与实时系统数据是否来自同一个源的效率要远远高于多对多的数据自连接,判断的效率较高。
进一步地,在暂存实时系统数据至数据缓冲区之后,本发明实施例的实时系统数据的去重方法还包括,每间隔预定时间将数据缓冲区中的数据存储至目标存储区域,并清空数据缓冲区中的数据。
为了让实时系统的最新数据及时输出,以便实时获取实时系统的运行状态,所以需要每隔一段时间将去重的数据存储起来,以便于下一步的处理。在数据存储之后,清空缓冲区,以便与缓冲区缓冲后面接收到的数据。预定时间的长短可以根据后续处理系统对数据实时性的要求来确定。
进一步地,本发明实施例的实时数据的去重方法可以用于统计一段时间以内地视屏播放次数,或者用于统计一段时间内网页浏览的次数,即,在本发明实施例所提供的实时系统数据的去重方法中,实时系统数据可以是来自视频实时处理系统的数据,也可以是来自网页实时处理系统的数据。为了更好的理解本发明实施例,下面以统计一段时间内的视频播放次数为例来说明本发明实施例的实时数据的去重方法。
在00:00:00到00:00:59这段时间内收到的快照如下表所示:
时间 |
00:00:00 |
00:00:05 |
00:00:10 |
00:00:15 |
00:00:20 |
播放Id |
播放1快照1 |
播放1快照2 |
播放1快照3 |
播放2快照1 |
播放2快照2 |
表中虽然有5个快照数据,但是只有播放1和播放2两次播放。假定每个数据的生命周期为1分钟,则在00:00:00到00:00:59这个时间段统计播放次数时会得到播放次数为5次(如图2所示),而实际上只有2次播放。为了得到准确的播放次数,在统计播放次数之前采用流剪辑的方法,当遇到相同ID的新快照时,将旧快照的生命周期截断至新快照开始的时间。流剪辑之后的快照生命周期如图3所示,流剪辑之后统计00:00:00到00:00:59这个时间段的播放次数为2。
如果快照的数量很大,比如00:00:00到00:00:59这个时间段内,有100000个播放快照,那么,在StreamInsight中对其进行流剪辑时,将进行10000*10000次自连接,才能将所有快照进行去重,去重效率较低,本发明的实时数据的去重方法在数据输入StreamInsight之前,先建立一个数据缓冲区,00:00:00接收“播放1快照1”,由于此时数据缓冲区中没有数据,直接放入数据缓冲区中,00:00:05接收“播放1快照2”,此时先进行一次判断,由于“播放1快照1”和“播放1快照2”均为来自“播放1”这个数据源,所以删除“播放1快照1”,将“播放1快照2”保存到数据缓冲区中。按照此方法依次接收数据,到00:00:59的时候,数据缓冲区中的只有“播放1快照3”和“播放2快照2”这两个数据,即,00:00:00到00:00:59这个时间段内有两次播放。
本发明还提供一种实时系统数据去重装置,该装置主要用于实现本法明实施例上述内容所提供的实时系统数据的去重方法,下面对本发明的实时系统数据的去重方法进行具体介绍:
图4是根据本发明实施例的实时系统数据去重方法的结构示意图。如图4所示,该装置主要包括接收单元10、判断单元20、删除单元30和暂存单元40,其中:
接收单元10用于接收实时系统数据。具体地,在接收数据之前,先在内存里开辟一个数据缓冲区。
判断单元20用于判断第一数据的数据源与实时系统数据的数据源是否相同,其中,第一数据为存储在数据缓冲区中的数据。
删除单元30用于在判断出第一数据的数据源与实时系统数据的数据源相同的情况下,删除第一数据中的数据源与实时系统数据数据源相同的数据,
暂存单元40用于暂存实时系统数据至数据缓冲区。
本发明实施例的实时系统数据的去重装置,在接收实时系统数据之前先建立一个数据缓冲区,通过将实时系统数据暂存至数据缓冲区,且在数据暂存至数据缓冲区之前,先对数据进行判断,如果缓冲区中有来自同一个数据源的数据则先删除数据缓冲区中的这个数据源的数据,在进行下一步的处理之前就将数据源的重复数据去重,避免了同一个数据源的大量数据直接进入实时处理系统进行去重,解决了实时系统去重效率低的问题,进而达到了提高实时系统处理数据效率的效果。
进一步地,实时系统数据为多个,判断单元20包括判断子单元,用于每接收一个实时系统数据,判断一次第一数据的数据源与实时系统数据的数据源是否相同。实时系统的各个数据源会每间隔一段时间发送一个最新的数据,以便于监控系统的运行状态,每接收一个新的数据时,进行一次判断,即将数据缓冲区中的数据的数据源与接收到的这个实时系统数据的数据源进行比较,如果数据缓冲区中有数据的数据源与接收到的这个实时系统的数据的数据源相同,则删除数据缓冲区中的旧数据,而这个数据源发来的最新数据。
进一步地,判断子单元包括判断模块,用于判断每一个第一数据的标识ID与实时系统数据的标识ID是否相同,来判断第一数据的数据源与实时系统数据的数据源是否相同,其中,当判断出某个第一数据的标识ID与实时系统数据的标识ID相同的情况下,确定这个第一数据的数据源与实时系统数据的数据源相同,反之,则不相同。此种通过标识ID进行判断的方式也称作自连接判断方式,以实时系统数据为来自视频实时处理系统的数据为例进一步说明,假设目前在处理很多条“播放记录”的集合,每条播放记录都有一个唯一的播放Id,对于判断新接收到的视频播放数据的数据源与已经记录的视频播放数据的数据源是否相同,则将新接收到的视频播放数据集合与已经记录的视频播放数据集合进行连接,这两个集合在连接的时候,根据播放Id作为连接的条件判定,即从新接收到的视频数据集合中选择任意一个播放Id的播放记录,到已经记录的视频播放数据的集合中去查找是否具有同样播放Id的播放记录。。
通过一对一的自连接,来判断数据缓冲区中的数据与实时系统数据是否来自同一个源的效率要远远高于多对多的数据自连接,判断的效率较高。
进一步地,去重装置还包括存储单元,用于将数据缓冲区中的数据存储至目标存储区域;以及清空单元,用于清空数据缓冲区中的数据。其中,存储单元主要是每间隔预定时间将数据缓冲区中的数据存储至目标存储区域,为了让实时系统的最新数据及时输出,以便实时获取实时系统的运行状态,所以需要每隔一段时间将去重的数据存储起来,以便于下一步的处理。在数据存储之后,清空缓冲区,以便与缓冲区缓冲后面接收到的数据。预定时间的长短可以根据后续处理系统对数据实时性的要求来确定。
进一步地,本发明实施例的实时数据的去重装置可以用于统计一段时间以内地视屏播放次数,或者用于统计一段时间内网页浏览的次数,即,在本发明实施例所提供的实时系统数据的去重方法中,实时系统数据可以是来自视频实时处理系统的数据,也可以是来自网页实时处理系统的数据。其中,去重装置用于统计一段时间以内的视屏播放次数的具体统计方式,与本发明实施例上述内容所提供的实时系统数据的去重方法中统计一段时间内的视频播放次数相同,此处不再赘述。
从以上的描述中,可以看出,本发明解决了实时系统去重效率低的问题,进而达到了提高实时系统数据处理效率的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。