基于指定时间窗的数据去重统计方法及装置制造方法及图纸

技术编号:19821910 阅读:21 留言:0更新日期:2018-12-19 14:45
本发明专利技术公开了一种基于指定时间窗的数据去重统计方法及装置。其中,方法包括:根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收携带有指定时间窗的去重统计请求,查询数组中覆盖指定时间窗的n个数组元素对应的元素值;根据n个数组元素对应的元素值,计算得到指定时间窗对应的去重统计值。基于本发明专利技术提供的方案,针对所产生的数据,能够实现实时进行数据去重统计,从而满足对实时性要求较高的统计场景的需求,另外,提高了去重统计的精准度,克服了现有去重统计方法去重统计结果精准度低的缺陷,而且使得具有统计需求的用户能够根据实际需求设定统计时长,更为灵活。

【技术实现步骤摘要】
基于指定时间窗的数据去重统计方法及装置
本专利技术涉及数据处理
,具体涉及一种基于指定时间窗的数据去重统计方法及装置。
技术介绍
目前很多业务场景都需要统计某个时间周期内的去重统计值(countdistinct)。例如安全系统可能会统计一台电脑上最近1天有多少个用户登录,用于进行安全防控;再例如广告系统可能会统计最近3分钟某个网页有多少用户访问,用于进行收费。目前现有技术主要采用的以下去重方案:方案1:在数据量不大的场景,可以通过记录每一条数据明细的方式将明细数据进行存储。当需要对某个时间段的某个字段进行去重统计的时候,直接通过数据库实时统计获取,类似使用下面这样的SQL:然而,这种方案只适用于数据非常小的场景。当数据量稍微增大后,该方案对数据库以及耗时会无限增长,甚至可能把数据库拖挂。方案2:通过离线数据统计等离线清洗的方式,进行每日清洗,清洗出特定字段的去重统计值,并将清洗出的值进行存储,供后续使用。然而,该方案为非实时数据统计,而且该方案只能支持到每日更新或每个小时更新,如果需要做到实时数据统计(例如上一秒的访问,下一秒就需要统计进去)是无法支持的。方案3:通过使用基数估计等算法方法进行去重统计,基数估计算法有多种算法,但都没有办法做到精准数据去重统计。因此,上述方案仅适用于对统计的精准度要求不高,能够容忍时间窗固定(即起始时间和截止时间都是固定的,不可更改)或者非精准去重统计场景,无法适用于高灵活、高精准的场景。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于指定时间窗的数据去重统计方法及装置。根据本专利技术的一个方面,提供了一种基于指定时间窗的数据去重统计方法,包括:根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收携带有指定时间窗的去重统计请求,查询数组中覆盖指定时间窗的n个数组元素对应的元素值;根据n个数组元素对应的元素值,计算得到指定时间窗对应的去重统计值。可选地,数组的行数值具体为时间片数,列数值具体为时间片间隔数;查询数组中覆盖指定时间窗的n个数组元素对应的元素值进一步包括:步骤S10,将t赋值为0;步骤S20,获取第i'+t行第j'+t列的数组元素对应的元素值,步骤S30,将t赋值为t+1;判断t是否大于n-1,若否,则跳转执行步骤S20;其中i'为指定时间窗的起始时间对应的时间片数,j'为0,i'+n-1为指定时间窗的截止时间对应的时间片数。可选地,在修改预先建立的数组中相应数组元素的元素值之后,方法还包括:记录特定字段的字段值与数据产生时间的对应关系。可选地,根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值进一步包括:步骤S11,判断是否记录有与实时数据的特定字段的字段值相同的历史数据的数据产生时间,若是,则执行步骤S21;若否,则执行步骤S25;步骤S21,根据实时数据的数据产生时间与历史数据的数据产生时间计算m;步骤S22,将s赋值为0;步骤S23,将第i行第j+s列的数组元素对应的元素值加1;步骤S24,将s赋值为s+1;判断s是否大于m,若否,则跳转执行步骤S23;步骤S25,将第i行第j列的数组元素对应的元素值加1;其中,i为数据产生时间对应的时间片数,j为0。可选地,在根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值之后,方法还包括:将修改得到的数组元素及数组元素对应的元素值以预设存储方式存储至存储介质中。可选地,存储介质包含:Hbase数据库。根据本专利技术的另一方面,提供了一种基于指定时间窗的数据去重统计装置,包括:修改模块,适于根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收模块,适于接收携带有指定时间窗的去重统计请求;查询模块,适于查询数组中覆盖指定时间窗的n个数组元素对应的元素值;计算模块,适于根据n个数组元素对应的元素值,计算得到指定时间窗对应的去重统计值。可选地,数组的行数值具体为时间片数,列数值具体为时间片间隔数;查询模块进一步包括:第一赋值单元,适于将t赋值为0;获取单元,适于获取第i'+t行第j'+t列的数组元素对应的元素值,第一赋值单元进一步适于:将t赋值为t+1;第一判断单元,适于判断t是否大于n-1,若否,则触发获取单元执行;其中i'为指定时间窗的起始时间对应的时间片数,j'为0,i'+n-1为指定时间窗的截止时间对应的时间片数。可选地,装置还包括:记录模块,适于记录特定字段的字段值与数据产生时间的对应关系。可选地,修改模块进一步包括:第二判断单元,适于判断是否记录有与实时数据的特定字段的字段值相同的历史数据的数据产生时间;计算单元,适于若判断出记录有与实时数据的特定字段的字段值相同的历史数据的数据产生时间,则根据实时数据的数据产生时间与历史数据的数据产生时间计算m;第二赋值单元,适于将s赋值为0;修改单元,适于将第i行第j+s列的数组元素对应的元素值加1;第二赋值单元进一步适于:将s赋值为s+1;第三判断单元,适于判断s是否大于m,若否,则触发修改单元执行;修改单元进一步适于:若判断出未记录有与实时数据的特定字段的字段值相同的历史数据的数据产生时间,则将第i行第j列的数组元素对应的元素值加1;其中,i为数据产生时间对应的时间片数,j为0。可选地,装置还包括:存储模块,适于将修改得到的数组元素及数组元素对应的元素值以预设存储方式存储至存储介质中。可选地,存储介质包含:Hbase数据库。根据本专利技术的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于指定时间窗的数据去重统计方法对应的操作。根据本专利技术的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于指定时间窗的数据去重统计方法对应的操作。根据本专利技术提供的方案,根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收携带有指定时间窗的去重统计请求,查询数组中覆盖指定时间窗的n个数组元素对应的元素值;根据n个数组元素对应的元素值,计算得到指定时间窗对应的去重统计值。基于本专利技术提供的方案,针对所产生的数据,能够实现实时进行数据去重统计,从而满足对实时性要求较高的统计场景的需求,另外,根据数据产生时间,修改预先建立的数组中相应数组元素的元素值从而在统计时提高了去重统计的精准度,克服了现有去重统计方法去重统计结果精准度低的缺陷,而且使得具有统计需求的用户能够根据实际需求设定统计时长,更为灵活。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件本文档来自技高网...

【技术保护点】
1.一种基于指定时间窗的数据去重统计方法,包括:根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收携带有指定时间窗的去重统计请求,查询所述数组中覆盖所述指定时间窗的n个数组元素对应的元素值;根据所述n个数组元素对应的元素值,计算得到所述指定时间窗对应的去重统计值。

【技术特征摘要】
1.一种基于指定时间窗的数据去重统计方法,包括:根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值;接收携带有指定时间窗的去重统计请求,查询所述数组中覆盖所述指定时间窗的n个数组元素对应的元素值;根据所述n个数组元素对应的元素值,计算得到所述指定时间窗对应的去重统计值。2.根据权利要求1所述的方法,其中,所述数组的行数值具体为时间片数,列数值具体为时间片间隔数;所述查询数组中覆盖所述指定时间窗的n个数组元素对应的元素值进一步包括:步骤S10,将t赋值为0;步骤S20,获取第i'+t行第j'+t列的数组元素对应的元素值,步骤S30,将t赋值为t+1;判断t是否大于n-1,若否,则跳转执行步骤S20;其中i'为指定时间窗的起始时间对应的时间片数,j'为0,i'+n-1为指定时间窗的截止时间对应的时间片数。3.根据权利要求1或2所述的方法,其中,在修改预先建立的数组中相应数组元素的元素值之后,所述方法还包括:记录特定字段的字段值与数据产生时间的对应关系。4.根据权利要求1-3中任一项所述的方法,其中,所述根据具有特定字段的实时数据的数据产生时间,修改预先建立的数组中相应数组元素的元素值进一步包括:步骤S11,判断是否记录有与所述实时数据的特定字段的字段值相同的历史数据的数据产生时间,若是,则执行步骤S21;若否,则执行步骤S25;步骤S21,根据所述实时数据的数据产生时间与所述历史数据的数据产生时间计算m;步骤S22,将s赋值为0;步骤S23,将第i行第j+s列的数组元素对应的元素值加1;步骤S24,将s赋值为s+1;判断s是否大于m,若否,则跳转执行步骤S23;步骤S25,将第i行第j列的数组元素对应的元素值加1;其中,i为数据产生时间对应的时间片数,j为0。5.根据...

【专利技术属性】
技术研发人员:窦方钰
申请(专利权)人:浙江口碑网络技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1