去重计数方法及设备的制造方法

文档序号:10624843阅读:486来源:国知局
去重计数方法及设备的制造方法
【专利摘要】本申请提供一种去重计数方法及设备,本申请根据各个数据的上一次出现的时间段的记录和当前时间段内的各个数据可以快速获取该时间段内出现的数据个数及该时间段分别相对于前时间段出现的数据个数的增量,便于后续基于数据个数和/或数据个数的增量快速进行各种数据统计。另外,本申请利用数据个数和数据个数的增量,能够对若干相邻的时间段内的组合的数据进行精确去重计数。此外,本申请以流式的方式快速和精确地获取和记录某个时间段内出现的数据个数及该时间段分别相对于前时间段出现的数据个数的增量,只需记录和更新各个数据的上一次出现的时间段,无需记录每个时间段中数据出现的历史明细,减少数据存储量。
【专利说明】
去重计数方法及设备
技术领域
[0001] 本申请涉及通信及计算机领域,尤其涉及一种去重计数方法及设备。
【背景技术】
[0002] 互联网的应用/网站,经常需要统计一些数据,如计数、去重计数、求和、求均 值等。PV(PageView,访问量),即页面浏览量或点击量,用户每次刷新即被计算一次。 UV OJniqueVisitor,独立访客),访问某一网站的一台电脑客户端为一个访客,00:00-24:00 内相同的客户端只会被计算一次。网站PV和UV的统计,就属于计数/去重计数。去重计 数的应用场景包括;电商网站的去重买家数,双十一当天成交卖家数等等。
[0003] W统计某个网站各个连续时间段内的独立访客去重计数为例(W下简称例一), 即去除00:00-24:00时间限制的UV计算,后续本申请的描述均基于本例一进行说明,假 设:
[0004] 04¥1(第一天)的00:00~24:00,访客为曰6曰〇;
[0005] DAY2(第二天)的 00:00 ~ 24:00,访客为acdef;
[0006] DAY3(第H天)的 00:00 ~ 24:00,访客为aafgb;
[0007] 需要分别对 DAY1, DAY2, DAY3, DAY1 ~DAY2, DAY2 ~DAY3, DAY1 ~DAY3 各个时间 段内的数据分别进行精确去重计数,各个时间段内的数据的精确去重计数结果应该如表1 所示:
[0008]
[0009]
[0010] 表 1
[0011] 表1中,DAY1的去重计数后的访客为3个,分别为a b C ;DAY2的去重计数后的访 客为5个,分别为a C d e f;DAY3的去重计数后的访客为4个,分别为a f g b;DAYl~ DAY2的去重计数后的访客为6个,分别为a b c d e f ;DAY2~DAY3的去重计数后的访客 为7个,分别为a b c d e f g ;DAY1~DAYS的去重计数后的访客为7个,分别为a b c d e f邑。
[0012] 例一中,如果采用传统的非流式去重计数的方案,即将所有的明细数据全部存储 起来,需要去重计数时,再基于存储的明细数据进行去重计数。例一中,需要记录的数据量 为:14(4巧巧),
[001 引 DAY1 ;a b a C
[0014] DAY2 :a c d e f
[001 引 DAY3 ;a a f g b。
[0016] 另外,如果某一天相同用户大量访问,郝记录的数据量,将是无上限,比如;DAYl 访问用户为a a a a a a a…。因此,该方案在数据量大的场景,存储明细数据的量将会非 常大,每次获得去重计数时,需要重新统计(读时统计),数据量大时,计算相当慢,特别是 对多个相邻时间段进行统计时,基于明细数据存储进行去重计数的计算量将会大大增加, 统计时间也将随时增加,最终导致无法实时进行计算。
[0017] 针对传统的非流式去重计数的方案存在的问题,又产生了基于流式数据的统计方 案,包括:每个时间段内的精确流式去重计数和每个时间段内的近似流式去重计数。但是由 于基于流式数据的统计方案不存储明细数据,所W往往存在诸多限制,比如;只能对每个时 间段分别进行去重计数,无法得到若干相邻时间段组合的去重计数,或者用近似值代替精 确值来进行去重计数,存在统计结果不精确的问题。
[0018] 例一如果采用上述每个时间段内的精确流式去重计数的方案,可W用缓存+ -维 数组得到在DAY1,DAY2, DAY3各个时间段内的精确流式去重计数,例一中使用缓存量只与 独立访客量有关,例一数据量为7即a b C d e f g,该方案解决了每次获得统计值时,要重 新统计(读时统计)的问题,在用户发生访问量时,就进行编译(写入统计),获得去重值非 常快。但该方案无法得到DAY1~DAY2, DAY2~DAY3,DAY1~DAY3的若干相邻时间段组合 的去重计数。其中,缓存记录每个访客最后一次访问时间,例一中的缓存最终如表2所示:
[0019]
[0020] 表 2
[0021] 一维数组记录每个时间段内的去重计数结果如表3所示:
[0022]
[0023] 表 3
[0024] 表3的一维数组中实际只记录了 3、5、4,代表DAYl = 3,DAY2 = 5,DAY3 = 4,表 3中每格的括号里的内容不会记录于一维数组中,在此标出只是用于说明每天的访客是哪 些。
[0025] 例一如果采用每个时间段内的近似流式去重计数的方案,如Linear、 HyperLogLog、Hype;rLogLog++等,在精确度要求不高的场景下,可W将缓存进行精简,用布 隆过滤器度loomFilter)等来近似判断历史缓存是否命中,用近似缓存+ -维数组,来进 行近似流式去重计数,得到的一维数组格式不变如表3,同样,本方案也无法得到DAY1~ DAY2, DAY2~DAY3, DAY1~DAY3的若干相邻时间段组合的去重计数。

【发明内容】

[0026] 本申请的目的是提供一种去重计数方法及设备,能够快速获取某时间段内出现的 数据个数及该时间段分别相对于前时间段出现的数据个数的增量。
[0027] 有鉴于此,本申请提供去重计数方法,包括:
[002引依次根据各个数据的上一次出现的时间段Μ的记录和当前第K个时间段内的各个 数据确定第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至前Κ-1个时 间段出现的数据个数的增量,其中,Ν,Κ,Μ为正整数,2,Κ= (1,2,...,Ν},1《Μ《Ν, Μ《Κ。
[0029] 进一步的,确定第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1 个至前Κ-1个时间段出现的数据个数的增量之后,所述方法还包括:
[0030] 根据确定的数据个数和数据个数的增量得到第Κι至第Κ 2个时间段内数据个数的 去重计数,其中,1《Κι《Ν,1《Κ2《Ν,Κι《Κ2。
[0031] 进一步的,根据确定的数据个数和数据个数的增量得到第κ產第Κ2个时间段内数 据个数的去重计数包括:
[003引根据第Κι个时间段内的数据个数与所有第Q个时间段相对于前Q-K 1个时间段的 数据个数的增量之和得到第Κι至第Κ 2个时间段内数据个数的去重计数,其中,Q为正整数,
[0033] 进一步的,确定第Κ个时间段内出现的数据个数及第Κ个时间段分别相对于前1 个至前Κ-1个时间段出现的数据个数的增量,包括:
[0034] 记当前第Κ个时间段内的数据个数、第Κ个时间段分别相对于前1个至前Κ-1个 时间段的数据个数的增量分别初始为0 ;
[0035] 判断第Κ个时间段内的每个数据是否已有所述记录,
[0036] 若无记录,分别对第Κ个时间段内出现的数据个数、第Κ个时间段分别相对于前1 至前Κ-1个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记 录;
[0037] 若有记录,判断时间段Μ的值,
[003引若Μ = Κ-1,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数加1后,更新该数据的上一次出现的时间段Μ的记录;
[0039] 若Μ《Κ-2,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数、第Κ个时间段分别相对于前1个至前Ν-Μ-1个时间段的数据个数的增量加1 后,更新该数据的上一次出现的时间段Μ的记录。
[0040] 进一步的,各个数据的上一次出现的时间段记录于缓存中。
[0041] 进一步的,第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至 前Κ-1个时间段出现的数据个数的增量记录于一维数组中。
[0042] 进一步的,第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至 前Κ-1个时间段出现的数据个数的增量记录于二维数组中。
[0043] 进一步的,所述一维数组或二维数组为固定大小。
[0044] 进一步的,第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至 前Κ-1个时间段出现的数据个数的增量记录于二维数组的某列中。
[0045] 进一步的,根据下述公式将第Κ个时间段内出现的数据个数,及第Κ个时间段分别 相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于二维数组的某列:
[0046]
[0047] 其中,col, row分别表不二维数组的行号和列号,Ρ(,)表不由行号和列号确定的 二维数组某个位置中记录的值,NUM康示第Κ个时间段内出现的数据个数,ADD化,胃1)表示 第K个时间段相对于前row-1个时间段出现的数据个数的增量。
[0048] 进一步的,根据下述公式得到第Κι至第K2个时间段内数据个数的去重计数 Rcount 化~Κ 2)的:
[0049]
[0050] 本申请另一方面还提供一种用于去重计数的设备,其中,包括:
[0051] 第一装置,用于依次根据各个数据的上一次出现的时间段Μ的记录和当前第K 个时间段内的各个数据确定第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对 于前1个至前Κ-1个时间段出现的数据个数的增量,其中,Ν,Κ,Μ为正整数,Ν > 2, Κ = (1,2,...,Ν},1《Μ《Ν,Μ《Κ。
[0052] 进一步的,所述设备还包括;第二装置,用于根据确定的数据个数和数据个数的增 量得到第Κι至第Κ2个时间段内数据个数的去重计数,其中,1《Κι《Ν,1《Κ2《Ν,Κι《Κ2。
[0053] 进一步的,所述第二装置,用于根据第Κι个时间段内的数据个数与所有第Q个时 间段相对于前Q-Ki个时间段的数据个数的增量之和得到第Κ 1至第Κ 2个时间段内数据个数 的去重计数,其中,Q为正整数,
[0054] 进一步的,所述第一装置,包括:
[0055] 第一一单元,用于记当前第K个时间段内的数据个数、第K个时间段分别相对于前 1个至前K-1个时间段的数据个数的增量分别初始为0 ;
[0056] 第一二单元,用于判断第K个时间段内的每个数据是否已有所述记录,
[0057] 若无记录,分别对第K个时间段内出现的数据个数、第K个时间段分别相对于前1 至前κ-1个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记 录;
[005引若有记录,判断时间段Μ的值,
[0059] 若Μ = Κ-1,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数加1后,更新该数据的上一次出现的时间段Μ的记录;
[0060] 若Μ《Κ-2,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数、第Κ个时间段分别相对于前1个至前Ν-Μ-1个时间段的数据个数的增量加1 后,更新该数据的上一次出现的时间段Μ的记录。
[0061] 进一步的,各个数据的上一次出现的时间段记录于缓存中。
[0062] 进一步的,所述第一装置,还用于将第Κ个时间段内出现的数据个数,及第Κ个时 间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于一维数组中。
[0063] 进一步的,所述第一装置,还用于将第Κ个时间段内出现的数据个数,及第Κ个时 间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于二维数组中。
[0064] 进一步的,所述一维数组或二维数组为固定大小。
[0065] 进一步的,所述第一装置,用于将第Κ个时间段内出现的数据个数,及第Κ个时间 段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于二维数组的某列中。
[0066] 进一步的,所述第一装置根据下述公式将第Κ个时间段内出现的数据个数,及第Κ 个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于二维数组的某 列:
[0067]
[006引其中,col, row分别表不二维数组的行号和列号,Ρ(,)表不由行号和列号确定的 二维数组某个位置中记录的值,NUM康示第Κ个时间段内出现的数据个数,ADD化,胃1)表示 第K个时间段相对于前row-1个时间段出现的数据个数的增量。
[0069] 进一步的,所述第二装置根据下述公式得到第Κι至第K2个时间段内数据个数的去 重计数 Rcount〇(i ~Κ2):
[0070]
[0071] 与现有技术相比,本申请根据各个数据的上一次出现的时间段Μ的记录和当前第 Κ个时间段内的各个数据可W快速获取第Κ个时间段内出现的数据个数及第Κ个时间段分 别相对于前1个至前Κ-1个时间段出现的数据个数的增量,便于后续基于数据个数和/或 数据个数的增量快速进行各种数据统计。
[0072] 进一步的,本申请利用数据个数和数据个数的增量,能够对若干相邻的时间段内 的组合如第Κι至第Κ 2个时间段的数据进行精确去重计数。
[0073] 进一步,本申请W流式的方式快速和精确地获取和记录第Κ个时间段内出现的数 据个数及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量,只需 记录和更新各个数据的上一次出现的时间段,无需记录每个时间段中数据出现的历史明 细,减少数据存储量。
【附图说明】
[0074] 通过阅读参照W下附图所作的对非限制性实施例所作的详细描述,本申请的其它 特征、目的和优点将会变得更明显:
[0075] 图1示出根据本申请一个方面的去重计数方法的方法流程图;
[0076] 图2示出本申请一实施例的数据个数和增量的记录方式示意图;
[0077] 图3示出本申请一实施例的对应于图3的记录位置示意图;
[0078] 图4示出本申请的一优选的实施例去重计数方法的方法流程图;
[0079] 图5示出本申请的另一优选的实施例去重计数方法的方法流程图;
[0080] 图6示出根据本申请另一个方面的用于去重计数的设备示意图;
[0081] 图7示出本申请的一优选的实施例用于去重计数的设备示意图;
[0082] 图8示出本申请的另一优选的实施例用于去重计数的设备示意图;
[0083] 图9示出本申请一实施例的DAY1结束时得到的Η角数据的示意图;
[0084] 图10示出本申请一实施例的DAY2结束时得到的Η角数据的示意图;
[0085] 图11示出本申请一实施例的DAY3结束时得到的Η角数据的示意图;
[0086] 图12示出本申请一实施例根据图11获取去重计数的示意图;
[0087] 附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[008引在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个 处理器(CPU)、输入/输出接口、网络接口和内存。
[0089] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质 的示例。
[0090] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可W由任何方法 或技术来实现信息存储。信息可W是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、 动态随机存取存储器值RAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电 可擦除可编程只读存储器巧EPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘值VD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性 存储设备或任何其他非传输介质,可用于存储可W被计算设备访问的信息。按照本文中的 界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信 号和载波。
[0091] 如图1所示,本申请提供去重计数方法,包括:
[0092] 步骤S1,依次根据各个数据的上一次出现的时间段Μ的记录和当前第K个时间段 内的各个数据确定第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至 前Κ-1个时间段出现的数据个数的增量,即第Κ个时间段分别相对于前1个(即第Κ-1个), 前2个(即第Κ-1和第Κ-2个),…,前Κ-1个(第Κ-1、第Κ-2、…和第1个时间段)出现 的数据个数的增量,其中,Ν,Κ,Μ为正整数,Ν > 2, Κ = (1,2,. . .,Ν},1《Μ《Ν,Μ《Κ,即 各个数据最后一次出现的时间段Μ可能是第1至第Κ个时间段中的任一个时间段,在例一 中,如图2和3所示,第Κ个时间段为第;个时间段DAY3时,DAY3的前1个时间段为DAY2, 则DAY3时间段相对于前1个时间段DAY2的数据个数的增量为DAY3有且DAY2无的数据的 个数,即对应记录图2中的第3/^2格记录的数据个数,DAY3的前2个时间段为DAY1和DAY2, DAY3时间段相对于前2个时间段DAY2和DAY1的数据个数的增量为DAY3有且DAY2和DAY1 均无的数据的个数,即对应图2中的第3/3格记录的数据个数。在此,通过本实施例,可W 快速获取第Κ个时间段内出现的数据个数及第Κ个时间段分别相对于前1个至前Κ-1个时 间段出现的数据个数的增量,便于后续基于数据个数和/或数据个数的增量快速进行各种 数据统计。
[0093] 如图4所示,本申请的去重计数方法的一优选实施例中,基于数据个数和/或数据 个数的增量快速进行各种数据统计可W是一种去重计数,相应的,步骤S1之后,所述方法 还包括:
[0094] 步骤S2,根据确定的数据个数和数据个数的增量得到第Κ產第Κ 2个时间段内数 据个数的去重计数,其中,1《Κι《Ν,1《Κ Ν,Κ Κ 2。在此,本实施例利用数据个数和 数据个数的增量,能够对若干相邻的时间段内的组合如第Κι至第Κ2个时间段的数据进行精 确去重计数。
[0095] 本申请的去重计数方法的一较佳实施例中,上述根据确定的数据个数和数据个数 的增量得到第Κι至第Κ 2个时间段内数据个数的去重计数包括:
[0096] 根据第Κι个时间段内的数据个数与所有第Q个时间段相对于前Q-K 1个时间段的 数据个数的增量之和得到第Κι至第Κ 2个时间段内数据个数的去重计数,其中,Q为正整数,
例一中,如Κι为DAY1,Κ 2为DAY3,郝么DAY1~DAY3时间 〇 段内数据个数的去重计数为DAY1时间段内的数据个数、DAY2时间段相对于前1个时间段 (DAY1时间段)的数据个数的增量(即DAY2时间段有某个数据,但DAY1时间段没有该数 据)和DAY3时间段相对于前2个时间段(DAY2和DAY1时间段)的数据个数的增量(即 DAY3时间段有某个数据,但DAY2和DAY1时间段均没有该数据)的相加之和,即如图2所示 的第一线1连接的各个格子内的值的相加之和,对应于图3中各个格的标识,即第1/1格+ 第2/2格+3/3之和;又如Κι为DAY2,K2为DAY3,DAY2~DAY3时间段内数据个数的去重计 数为DAY2时间段内的数据个数、DAY3时间段相对于前1个时间段(DAY2时间段)的数据 个数的增量的相加之和,即如图1所示的第二线2连接的各个格子内的值的相加之和,对应 于图2中各个格的标识,即第2/1格+第3/2格之和。在此,如果Κι= K 2,第Κι至第K 2个 时间段内数据个数的去重计数即为第Κι个时间段内的数据个数。本领域技术人员应能理 解上述去重计数方式的描述仅为举例,其他现有的或今后可能出现的去重计数方式的描述 如可适用于本申请,也应包含在本申请保护范围W内,并在此W引用方式包含于此。
[0097] 如图5所示,本申请的去重计数方法一优选的实施例中,步骤S1包括:
[009引步骤S11,记当前第Κ个时间段内的数据个数、第Κ个时间段分别相对于前1个至 前Κ-1个时间段的数据个数的增量分别初始为0 ;
[0099] 步骤S12,判断第Κ个时间段内的每个数据是否已有所述记录,若无记录(即此时 有一个新的数据写入记录),转到步骤S13,若有记录,转到步骤S14 ;
[0100] 步骤S13,分别对第K个时间段内出现的数据个数、第K个时间段分别相对于前1 至前K-1个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记 录后转到步骤S17 ;
[010。 步骤S14,判断时间段Μ的值,若Μ = I,则转到步骤S17,若Μ = K-1,转到步骤S15, 若Μ《Κ-2,转到步骤S16 ;
[0102] 步骤S15,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现的 数据个数加1后,更新该数据的上一次出现的时间段Μ的记录后,转到步骤S17 ;
[0103] 步骤S16,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现的 数据个数、第Κ个时间段分别相对于前1个至前Ν-Μ-1个时间段的数据个数的增量加1后, 更新该数据的上一次出现的时间段Μ的记录后,转到步骤S17 ;
[0104] 步骤S17,判断当前数据是否是第Κ个时间段内的最后一个数据,若是,则结束,若 否,跳到下一个数据后转到步骤S12。本实施例W流式的方式快速和精确地获取和记录第Κ 个时间段内出现的数据个数及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数 据个数的增量,在此,只需记录和更新各个数据的上一次出现的时间段,无需记录每个时间 段中数据出现的历史明细,减少数据存储量。具体的,例一中,一共需要计算Ν = 3天中每 一天(即第Κ个时间段)内出现的数据个数,及该天(第Κ个时间段)分别相对于前1个 至前Κ-1个时间段出现的数据个数的增量,具体计算过程如下:
[0105] 1.第1天前均无每个数据对应的上一次出现的时间段Μ的记录,第1天(DAY1)有 a b a C访客进行访问,分别判断每个数据a b a C是否已有所述记录后,DAY1的数据个数 (初始为0)通过1+1+1最终为3,
[0106] 第1天(DAY1)结束时,每个数据对应的上一次出现的时间段Μ的记录修改为:
[0107] a DAY1
[010引 b DAY1
[010引 C DAY1 ;
[0110] 2.第2天(DAY。有曰C d e f访客访问:
[0111] a进入发现有记录DAY1,则对DAY2内出现的数据个数(初始为0)加1后,更新a 上一次出现的时间段Μ的记录为Μ = DAY2 ;
[0112] C进入发现有记录DAY1,则对DAY2内出现的数据个数再加1后,并更新C上一次 出现的时间段Μ的记录为Μ = DAY2 ;
[0113] d进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量(初始为0)加1后,并新增d上一次出现的时间段Μ 的记录为Μ = DAY2 ;
[0114] e进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量再加1后,并新增e上一次出现的时间段Μ的记录为Μ =DAY2 ;
[0115] f进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量再加1后,并新增f上一次出现的时间段Μ的记录为Μ =DAY2 ;
[0116] DAY2结束时,每个数据的上一次出现的时间段Μ的记录修改如下:
[0117] a DAY2
[om] b DAYl-无更新
[0119] c DAY2
[0120] d DAY2
[0121] e DAY2
[012引 f DAY2
[012引 3.第3天(DAY:3)有a a f g b访客访问:
[0124] a进入发现有记录DAY2,则对DAYS内出现的数据个数(初始为0)再加1后,并 更新a上一次出现的时间段Μ的记录为Μ = DAY3 ;
[01巧]a再次进入发现有记录DAY3,则跳到下一个数据f ;
[0126] f进入发现有记录DAY2,则对DAYS内出现的数据个数再加1后,并更新f上一次 出现的时间段Μ的记录为Μ = DAY3 ;
[0127] g进入发现无记录,则对DAYS内出现的数据个数再加1,对DAYS相对于前1个时间 段(DAY2)出现的数据个数(初始为0)的增量再加1,对DAY3相对于前2个时间段(DAY2 和DAY1)出现的数据个数(初始为0)的增量再加1后,并新增g上一次出现的时间段Μ 的记录为Μ = DAY3 ;
[0128] b进入发现有记录DAY1,则对DAYS内出现的数据个数再加1,对DAY3相对于前1 个时间段(DAY2)出现的数据个数的增量再加1后,并新增f上一次出现的时间段Μ的记录 为 Μ = ;
[0129] DAYS结束时,每个数据的上一次出现的时间段Μ的记录修改如下:
[0130] a DAYS
[01 引]b
[0132] c DAY2
[013引 d DAY2
[0134] e DAY2
[013引 f DAYS
[0136] g DAY3。
[0137] 本领域技术人员应能理解上述确定第K个时间段内出现的数据个数,及第K个时 间段分别相对于前1个至前K-1个时间段出现的数据个数的增量的描述仅为举例,其他现 有的或今后可能出现的确定第K个时间段内出现的数据个数,及第K个时间段分别相对于 前1个至前K-1个时间段出现的数据个数的增量的描述如可适用于本申请,也应包含在本 申请保护范围W内,并在此W引用方式包含于此。
[0138] 本申请的去重计数方法一优选的实施例中,步骤S1中的各个数据的上一次出现 的时间段记录于缓存中,从而只需记录和更新各个数据的上一次出现的时间段,无需记录 每个时间段中数据出现的历史明细,减少数据存储量,实现精确流式去重计数。另外,在有 各个数据有过期时间的KV缓存(如Tair)时,可W根据过期时间的KV缓存中各个数据的 过期时间得到各个数据的上一次出现的时间段,进而节省缓存空间,并简化缓存的设计。
[0139] 本申请的去重计数方法一优选的实施例中,步骤S1中的第K个时间段内出现的数 据个数,及第κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量记录 于一维数组中。另外,本申请的去重计数方法一优选的实施例中,步骤S1中的第Κ个时间段 内出现的数据个数,及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数 的增量也可记录于二维数组中。在此,所述数据个数及其增量记录于一维数组或二维数组 中,只要后续能够通过相应的查找方式找到需要的读取的数据个数及其增量在一维数组或 二维数组中存储的对应位置即可。本领域技术人员应能理解上述第Κ个时间段内出现的数 据个数,及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量的记 录方式的描述仅为举例,其他现有的或今后可能出现的第Κ个时间段内出现的数据个数, 及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量的记录方式的 描述如可适用于本申请,也应包含在本申请保护范围W内,并在此W引用方式包含于此。
[0140] 本申请的去重计数方法一较佳的实施例中,所述一维数组或二维数组为固定大 小。在此,一维数组或二维数组为固定大小可W根据统计周期决定,即根据第Κι至第Κ 2个 时间段之间的时间段的数量决定,例如,将如图2和3所示将二维数组用于统计周期为3天 (时间段的数量)的访问去重计数,DAM时,将第2例的数左移一例到第1例即覆盖原第1 例的数据,将第3例的数据左移一例到第2例即覆盖原第3例的数据,将DAM时间段内出现 的数据个数,及DAM时间段分别相对于前1个(DAY3)至前2个时间段(DAY3和DAY2)出 现的数据个数的增量分别记录于第3例的各个格,从而实现固定周期内数组的循环使用, W节约存储空间。本领域技术人员应能理解上述循环使用存储空间的描述仅为举例,其他 现有的或今后可能出现的循环使用存储空间如可适用于本申请,也应包含在本申请保护范 围W内,并在此W引用方式包含于此。
[0141] 本申请的去重计数方法一更优的实施例中,步骤S1中,将第K个时间段内出现的 数据个数,及第K个时间段分别相对于前1个至前K-1个时间段出现的数据个数的增量记 录于二维数组的某列中。例如,可W根据下述公式将第K个时间段内出现的数据个数,及第 K个时间段分别相对于前1个至前K-1个时间段出现的数据个数的增量记录于二维数组的 某列:
[0142]
[0143] 其中,col, row分别表示二维数组的行号和列号,P(,)表示由行号和列号 确定的二维数组某个位置中记录的值,NUM|<表示第K个时间段内出现的数据个数, A孤(吃。"1)表示第K个时间段相对于前row-1个时间段出现的数据个数的增量,送里 1《col《N,1《row《N。从而实现第Κι个时间段内的数据个数与所有第Q个时间段相 对于前Q-K1个时间段的数据个数的增量分别按数组的斜对角线存储即按列加1的方式存 储,便于后续读取时按列加1的方式快速得到第Κι至第Κ 2个时间段内数据个数的去重计 数。相应的,步骤S2中,可根据下述公式得到第Κι至第Κ 2个时间段内数据个数的去重计数 Rcount 化~Κ 2)的:
[0144]
本领域技术人员应能理解上述记录于二 维数组的描述仅为举例,其他现有的或今后可能出现的记录于二维数组的描述如可适用于 本申请,也应包含在本申请保护范围w内,并在此w引用方式包含于此。
[0145] 如图6所示,根据本申请的另一面还提供一种用于去重计数的设备6,包括:
[0146] 第一装置61,用于依次根据各个数据的上一次出现的时间段Μ的记录和当前第K 个时间段内的各个数据确定第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于 前1个至前Κ-1个时间段出现的数据个数的增量,即第Κ个时间段分别相对于前1个(即第 Κ-1个),前2个(即第Κ-1和第Κ-2个),…,前Κ-1个(第Κ-1、第Κ-2、…和第1个时间 段)出现的数据个数的增量,其中,Ν,Κ,Μ为正整数,Ν > 2, Κ = (1,2,. . .,Ν},1《Μ《Ν, Μ《Κ,即各个数据最后一次出现的时间段Μ可能是第1至第Κ个时间段中的任一个时间 段,在例一中,如图2和3所示,第Κ个时间段为第Η个时间段DAY3时,DAY3的前1个时间 段为DAY2,则DAY3时间段相对于前1个时间段DAY2的数据个数的增量为DAY3有且DAY2 无的数据的个数,即对应记录图2中的第3/2格记录的数据个数,DAY3的前2个时间段为 DAY1和DAY2,DAY3时间段相对于前2个时间段DAY2和DAY1的数据个数的增量为DAY3有 且DAY2和DAY1均无的数据的个数,即对应图2中的第3/3格记录的数据个数。在此,通过 本实施例,可W快速获取第K个时间段内出现的数据个数及第K个时间段分别相对于前1 个至前K-1个时间段出现的数据个数的增量,便于后续基于数据个数和/或数据个数的增 量快速进行各种数据统计。
[0147] 如图7所述,本申请用于去重计数的设备的一优选实施例中,还包括:第二装置 62,用于根据确定的数据个数和数据个数的增量得到第Κι至第K2个时间段内数据个数的去 重计数,其中,1《Κι《Ν,1《Κ Ν,Κ Κ 2。在此,本实施例利用数据个数和数据个数 的增量,能够对若干相邻的时间段内的组合如第Κι至第Κ2个时间段的数据进行精确去重计 数。
[0148] 本申请的用于去重计数的设备的一较佳实施例中,所述第二装置62,用于根 据第Κι个时间段内的数据个数与所有第Q个时间段相对于前Q-Ki个时间段的数据个 数的增量之和得到第Κι至第K 2个时间段内数据个数的去重计数,其中,Q为正整数,
。例一中,如Κι为DAY1,Κ2为DAY3,郝么DAY1~DAY3时间 段内数据个数的去重计数为DAY1时间段内的数据个数、DAY2时间段相对于前1个时间段 (DAY1时间段)的数据个数的增量(即DAY2时间段有某个数据,但DAY1时间段没有该数 据)和DAY3时间段相对于前2个时间段(DAY2和DAY1时间段)的数据个数的增量(即 DAY3时间段有某个数据,但DAY2和DAY1时间段均没有该数据)的相加之和,即如图2所示 的第一线1连接的各个格子内的值的相加之和,对应于图3中各个格的标识,即第1/1格+ 第2/2格+3/3之和;又如Κι为DAY2,K2为DAY3,DAY2~DAY3时间段内数据个数的去重计 数为DAY2时间段内的数据个数、DAY3时间段相对于前1个时间段(DAY2时间段)的数据 个数的增量的相加之和,即如图1所示的第二线2连接的各个格子内的值的相加之和,对应 于图2中各个格的标识,即第2/1格+第3/2格之和。在此,如果Κι= K 2,第Κι至第K 2个 时间段内数据个数的去重计数即为第Κι个时间段内的数据个数。本领域技术人员应能理 解上述去重计数方式的描述仅为举例,其他现有的或今后可能出现的去重计数方式的描述 如可适用于本申请,也应包含在本申请保护范围W内,并在此W引用方式包含于此。
[0149] 如图8所示,本申请的用于去重计数的设备一优选的实施例中,所述第一装置61, 包括:
[0150] 第一一单元611,用于记当前第K个时间段内的数据个数、第K个时间段分别相对 于前1个至前K-1个时间段的数据个数的增量分别初始为0 ;
[0151] 第一二单元612,用于判断第K个时间段内的每个数据是否已有所述记录,
[0152] 若无记录,分别对第K个时间段内出现的数据个数、第K个时间段分别相对于前1 至前K-1个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记 录;
[0153] 若有记录,判断时间段Μ的值,
[0154] 若Μ = Κ-1,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数加1后,更新该数据的上一次出现的时间段Μ的记录;
[015引若Μ《Κ-2,根据该数据的上一次出现的时间段Μ的记录,对第Κ个时间段内出现 的数据个数、第Κ个时间段分别相对于前1个至前Ν-Μ-1个时间段的数据个数的增量加1 后,更新该数据的上一次出现的时间段Μ的记录。本实施例W流式的方式快速和精确地获 取和记录第Κ个时间段内出现的数据个数及第Κ个时间段分别相对于前1个至前Κ-1个时 间段出现的数据个数的增量,在此,只需记录和更新各个数据的上一次出现的时间段,无需 记录每个时间段中数据出现的历史明细,减少数据存储量。具体的,例一中,一共需要计算Ν =3天中每一天(即第Κ个时间段)内出现的数据个数,及该天(第Κ个时间段)分别相 对于前1个至前Κ-1个时间段出现的数据个数的增量,具体计算过程如下:
[0156] 1.第1天前均无每个数据对应的上一次出现的时间段Μ的记录,第1天(DAY1)有 a b a C访客进行访问,分别判断每个数据a b a C是否已有所述记录后,DAY1的数据个数 (初始为0)通过1+1+1最终为3,
[0157] 第1天(DAY1)结束时,每个数据对应的上一次出现的时间段Μ的记录修改为:
[015引 a DAY1
[0159] b DAYl
[0160] c DAYl ;
[0161] 2.第2天(DAY。有曰c d e f访客访问:
[0162] a进入发现有记录DAYl,则对DAY2内出现的数据个数(初始为0)加1后,更新a 上一次出现的时间段Μ的记录为Μ = DAY2 ;
[0163] C进入发现有记录DAYl,则对DAY2内出现的数据个数再加1后,并更新C上一次 出现的时间段Μ的记录为Μ = DAY2 ;
[0164] d进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量(初始为0)加1后,并新增d上一次出现的时间段Μ 的记录为Μ = DAY2 ;
[016引 e进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量再加1后,并新增e上一次出现的时间段Μ的记录为Μ =DAY2 ;
[0166] f进入发现无记录,则对DAY2内出现的数据个数再加1,对DAY2相对于前1个时 间段(DAY1)出现的数据个数的增量再加1后,并新增f上一次出现的时间段Μ的记录为Μ =DAY2 ;
[0167] DAY2结束时,每个数据的上一次出现的时间段Μ的记录修改如下:
[016引 a DAY2
[0169] b DAYl-无更新
[0170] c DAY2
[0171] d DAY2
[0172] e DAY2
[017引 f DAY2
[0174] 3.第 3 天(DAY:3)有 a a f g b 访客访问:
[0Π 5] a进入发现有记录DAY2,则对DAYS内出现的数据个数(初始为0)再加1后,并 更新a上一次出现的时间段Μ的记录为Μ = DAY3 ;
[0176] a再次进入发现有记录DAY3,则跳到下一个数据f ;
[0177] f进入发现有记录DAY2,则对DAYS内出现的数据个数再加1后,并更新f上一次 出现的时间段Μ的记录为Μ = DAY3 ;
[017引 g进入发现无记录,则对DAY3内出现的数据个数再加1,对DAY3相对于前1个时间 段(DAY2)出现的数据个数(初始为0)的增量再加1,对DAY3相对于前2个时间段(DAY2 和DAY1)出现的数据个数(初始为0)的增量再加1后,并新增g上一次出现的时间段Μ 的记录为Μ = DAY3 ;
[0179] b进入发现有记录DAY1,则对DAYS内出现的数据个数再加1,对DAY3相对于前1 个时间段(DAY2)出现的数据个数的增量再加1后,并新增f上一次出现的时间段Μ的记录 为 Μ = ;
[0180] DAYS结束时,每个数据的上一次出现的时间段Μ的记录修改如下:
[0181] a DAYS
[0182] b DAYS
[0183] c DAY2
[0184] d DAY2
[0185] e DAY2
[018引 f DAYS
[0187] g DAY3。
[0188] 本领域技术人员应能理解上述确定第K个时间段内出现的数据个数,及第K个时 间段分别相对于前1个至前K-1个时间段出现的数据个数的增量的描述仅为举例,其他现 有的或今后可能出现的确定第K个时间段内出现的数据个数,及第K个时间段分别相对于 前1个至前K-1个时间段出现的数据个数的增量的描述如可适用于本申请,也应包含在本 申请保护范围W内,并在此W引用方式包含于此。
[0189] 本申请的用于去重计数的设备的一优选的实施例中,各个数据的上一次出现的时 间段记录于缓存中,从而只需记录和更新各个数据的上一次出现的时间段,无需记录每个 时间段中数据出现的历史明细,减少数据存储量,实现精确流式去重计数。另外,在有各个 数据有过期时间的KV缓存(如Tair)时,可W根据过期时间的KV缓存中各个数据的过期 时间得到各个数据的上一次出现的时间段,进而节省缓存空间,并简化缓存的设计。
[0190] 本申请的用于去重计数的设备的一优选的实施例中,所述第一装置61,还用于将 第κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至前Κ-1个时间段出 现的数据个数的增量记录于一维数组中。另外,本申请的用于去重计数的设备的一优选的 实施例中,所述第一装置,还用于将第Κ个时间段内出现的数据个数,及第Κ个时间段分别 相对于前1个至前Κ-1个时间段出现的数据个数的增量记录于二维数组中。在此,所述数 据个数及其增量记录于一维数组或二维数组中,只要后续能够通过相应的查找方式找到需 要的读取的数据个数及其增量在一维数组或二维数组中存储的对应位置即可。本领域技术 人员应能理解上述第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至 前Κ-1个时间段出现的数据个数的增量的记录方式的描述仅为举例,其他现有的或今后可 能出现的第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对于前1个至前Κ-1个 时间段出现的数据个数的增量的记录方式的描述如可适用于
[0191] 本申请的用于去重计数的设备的一较佳的实施例中,所述一维数组或二维数组为 固定大小。在此,一维数组或二维数组为固定大小可W根据统计周期决定,即根据第Κι至 第Κ2个时间段之间的时间段的数量决定,例如,将如图2和3所示将二维数组用于统计周期 为3天(时间段的数量)的访问去重计数,DAY4时,将第2例的数左移一例到第1例即覆 盖原第1例的数据,将第3例的数据左移一例到第2例即覆盖原第3例的数据,将DAM时 间段内出现的数据个数,及DAM时间段分别相对于前1个(DAY3)至前2个时间段(DAY3 和DAY2)出现的数据个数的增量分别记录于第3例的各个格,从而实现固定周期内数组的 循环使用,W节约存储空间。本领域技术人员应能理解上述循环使用存储空间的描述仅为 举例,其他现有的或今后可能出现的循环使用存储空间如可适用于本申请,也应包含在本 申请保护范围W内,并在此W引用方式包含于此。
[0192] 本申请的用于去重计数的设备一更优的实施例中,所述第一装置61,用于将第K 个时间段内出现的数据个数,及第K个时间段分别相对于前1个至前K-1个时间段出现的 数据个数的增量记录于二维数组的某列中。例如,所述第一装置61可W根据下述公式将第 K个时间段内出现的数据个数,及第K个时间段分别相对于前1个至前K-1个时间段出现的 数据个数的增量记录于二维数组的某列:
[0193]
[0194] 其中,col, row分别表不二维数组的行号和列号,P(,)表不由行号和列号确定的 二维数组某个位置中记录的值,NUM康示第K个时间段内出现的数据个数,ADD化,胃1)表示 第K个时间段相对于前row-1个时间段出现的数据个数的增量。从而实现第Κι个时间段 内的数据个数与所有第Q个时间段相对于前Q-K1个时间段的数据个数的增量分别按数组 的斜对角线存储即按列加1的方式存储,便于后续读取时按列加1的方式快速得到第Κι至 第Κ2个时间段内数据个数的去重计数。相应的,所述第二装置62根据下述公式得到第Κ 1 至第Κ2个时间段内数据个数的去重计数Rcount化1~Κ 2):
[0195]
[0196] 本申请一实际应用例中,可利用缓存+ H角数据(H角数据可用如图2和3所示的 二维数组代替)方式进行去重统计,其中,缓存用于记录各个数据的上一次出现的时间段, Η角数据根据缓存的更新对应第Κ个时间段内出现的数据个数,及第Κ个时间段分别相对 于前1个至前Κ-1个时间段出现的数据个数的增量。具体如例一中,缓存记录每个访客最 后一次访问时间,Η角数据记录实时计算结果,具体计算过程如下:
[0197] 例一中,一共需要计算Ν = 3天中每一天(即第Κ个时间段)内出现的数据个数, 及该天(第Κ个时间段)分别相对于前1个至前Κ-1个时间段出现的数据个数的增量,具 体计算过程如下:
[019引1.第1天(DAY1)有a b a C访客进行访问,结束时,缓存数据如下:
[0199] a DAY1
[0200] b DAYl
[020。 c DAYl ;
[0202] 得到的H角数据如图9所示,第1/1格最终的值为3 ;
[020引 2.第2天(DAY。有a C d e f访客访问:
[0204] a进入发现缓存DAYl,则记入如图3所示的第2/1格(初始为0)加1,并更新a缓 存为DAY2 ;
[0205] C进入发现缓存DAY1,则记入如图3所示的第2/1格加1,并更新C缓存为DAY2 ;
[0206] d进入发现无缓存,则记入如图3所示的第2/1加1和2/2格(初始为0)加1,并 新增d缓存为DAY2 ;
[0207] e进入发现无缓存,则记入如图3所示的第2/1加1和2/2格加1,并新增e缓存 为 DAY2 ;
[020引 f进入发现无缓存,则记入如图3所示的第2/1加1和2/2格加1,并新增f缓存 为 DAY2 ;
[0209] DAY2结束时,缓存数据如下:
[0210] a DAY2
[0211] b DAYl--无更新
[0212] c DAY2
[021 引 d DAY2
[0214] e DAY2
[021 引 f DAY2
[0216] 得到的Η角数据如图10所示,图10中,DAY2内出现的数据个数为5,及DAY2分别 相对于前1个天(DAY1)出现的数据个数的增量为3 ;
[0引7] 3.第3天(DAY:3)有a a f g b访客访问:
[021引 a进入发现缓存DAY2,则记入如图3所示第3/1格(初始为0)加1,并更新a缓 存为DAY3 ;
[0219] a再次进入发现缓存DAY3,则跳到下一个数据f ;
[0220] f进入发现缓存DAY2,则记入如图3所示的第3/1格加1,并更新f缓存为DAY3 ;
[0221] g进入发现无缓存,则记入如图3所示的第3/1格加1,3/2格加1和3/3格加1,, 并新增g缓存为DAY3 ;
[0222] b进入发现缓存DAY1,则记入如图3所示的第3/1格加1和3/2格加1,并更新b 缓存为DAY3 ;
[022引 DAYS结束时,缓存数据如下:
[0224] a DAYS
[022引 b DAYS
[0226] c DAY2
[0227] d DAY2
[022引 e DAY2
[0229] f DAYS
[0230] g DAYS
[0231] 得到的H角数据如图11所示,图11中,DAYS内出现的数据个数为4,及DAY3分别 相对于前1个天(DAY2)出现的数据个数的增量为2, DAY3分别相对于前2个天(DAY2和 DAY1)出现的数据个数的增量为1。
[0232] 后续获取第K產第K2个时间段内数据个数的去重计数时,可如图12所示,W开始 时间Κι为起点,斜对角线向上,遇到结束时间K 2为止,将斜对角线上的数据相加,即为所求 的去重计数,即得到如下去重计数的结果:
[023引 DAY1 ;a b a C [0234] DAY2 :a c d e f
[023引 DAY3:a a f g b
[0236] DAYl ~DAY2,即 3+3 = 6,与实际相符(a b c d e f)
[0237] DAY2 ~DAY3,即 5巧=7,与实际相符(a b c d e f g)
[0238] DAYl ~DAY3,即 3+3+1 = 7,与实际相符(a b c d e f g)
[0239] DAYl = 3,与实际相符(a b c)
[0240] DAY2 = 5,与实际相符(a c d e f)
[0241] DAYS = 4,与实际相符(a b f g)。
[0242] 综上所述,本申请根据各个数据的上一次出现的时间段M的记录和当前第K个时 间段内的各个数据可W快速获取第K个时间段内出现的数据个数及第K个时间段分别相对 于前1个至前K-1个时间段出现的数据个数的增量,便于后续基于数据个数和/或数据个 数的增量快速进行各种数据统计。
[0243] 进一步的,本申请利用数据个数和数据个数的增量,能够对若干相邻的时间段内 的组合如第Κι至第K 2个时间段的数据进行精确去重计数。
[0244] 进一步,本申请W流式的方式快速和精确地获取和记录第Κ个时间段内出现的数 据个数及第Κ个时间段分别相对于前1个至前Κ-1个时间段出现的数据个数的增量,只需 记录和更新各个数据的上一次出现的时间段,无需记录每个时间段中数据出现的历史明 细,减少数据存储量。
[0245] 显然,本领域的技术人员可W对本申请进行各种改动和变型而不脱离本申请的精 神和范围。送样,倘若本申请的送些修改和变型属于本申请权利要求及其等同技术的范围 之内,则本申请也意图包含送些改动和变型在内。
[0246] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采 用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例 中,本申请的软件程序可W通过处理器执行W实现上文所述步骤或功能。同样地,本申请的 软件程序(包括相关的数据结构)可W被存储到计算机可读记录介质中,例如,RAM存储器, 磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例 女口,作为与处理器配合从而执行各个步骤或功能的电路。
[0247] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被 计算机执行时,通过该计算机的操作,可W调用或提供根据本申请的方法和/或技术方案。 而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通 过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行 的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括 用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序 指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或 技术方案。
[024引对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在 不背离本申请的精神或基本特征的情况下,能够W其他的具体形式实现本申请。因此,无论 从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权 利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有 变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此 夕b显然"包括"一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多 个单元或装置也可W由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来 表示名称,而并不表示任何特定的顺序。
【主权项】
1. 一种去重计数方法,其中,包括: 依次根据各个数据的上一次出现的时间段M的记录和当前第K个时间段内的各个数 据确定第K个时间段内出现的数据个数,及第K个时间段分别相对于前1个至前K-I个时 间段出现的数据个数的增量,其中,N,K,M为正整数,2,K= (1,2,...,N},1《M《N, K。2. 如权利要求1所述的方法,其中,确定第K个时间段内出现的数据个数,及第K个时 间段分别相对于前1个至前K-I个时间段出现的数据个数的增量之后,所述方法还包括: 根据确定的数据个数和数据个数的增量得到第Ki至第K 2个时间段内数据个数的去重 计数,其中,1《Ki《N,1《K2《N,Ki《Kz。3. 如权利要求2所述的方法,其中,根据确定的数据个数和数据个数的增量得到第K I 至第Kz个时间段内数据个数的去重计数包括: 根据第Ki个时间段内的数据个数与所有第Q个时间段相对于前Q-K 1个时间段的数 据个数的增量之和得到第Ki至第Kz个时间段内数据个数的去重计数,其中,Q为正整数,4. 如权利要求1至3任一所述的方法,其中,确定第K个时间段内出现的数据个数及第 K个时间段分别相对于前1个至前K-I个时间段出现的数据个数的增量,包括: 记当前第K个时间段内的数据个数、第K个时间段分别相对于前1个至前K-I个时间 段的数据个数的增量分别初始为O ; 判断第K个时间段内的每个数据是否已有所述记录, 若无记录,分别对第K个时间段内出现的数据个数、第K个时间段分别相对于前1至前 K-I个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记录; 若有记录,判断时间段M的值, 若M = K-L根据该数据的上一次出现的时间段M的记录,对第K个时间段内出现的数 据个数加1后,更新该数据的上一次出现的时间段M的记录; 若M《K-2,根据该数据的上一次出现的时间段M的记录,对第K个时间段内出现的数 据个数、第K个时间段分别相对于前1个至前N-M-I个时间段的数据个数的增量加1后,更 新该数据的上一次出现的时间段M的记录。5. 如权利要求1至4任一项所述的方法,其中,各个数据的上一次出现的时间段记录于 缓存中。6. 如权利要求1至4任一项所述的方法,其中,第K个时间段内出现的数据个数,及第 K个时间段分别相对于前1个至前K-I个时间段出现的数据个数的增量记录于一维数组中。7. 如权利要求1至4任一项所述的方法,其中,第K个时间段内出现的数据个数,及第 K个时间段分别相对于前1个至前K-I个时间段出现的数据个数的增量记录于二维数组中。8. 如权利要求6或7所述的方法,其中,所述一维数组或二维数组为固定大小。9. 如权利要求7所述的方法,其中,第K个时间段内出现的数据个数,及第K个时间段 分别相对于前1个至前K-I个时间段出现的数据个数的增量记录于二维数组的某列中。10. 如权利要求9所述的方法,其中,根据下述公式将第K个时间段内出现的数据个数, 及第K个时间段分别相对于前I个至前K-I个时间段出现的数据个数的增量记录于二维数 组的某列:其中,col, row分别表示二维数组的行号和列号,P(,)表示由行号和列号确定的二维 数组某个位置中记录的值,NUMk表示第K个时间段内出现的数据个数,ADD (K "" 1)表示第K 个时间段相对于前row-1个时间段出现的数据个数的增量。11. 如权利要求10所述的方法,其中,根据下述公式得到第K產第K 2个时间段内数据 个数的去重计数Rcount化~K 2)的:12. -种用于去重计数的设备,其中,包括: 第一装置,用于依次根据各个数据的上一次出现的时间段M的记录和当前第K个时间 段内的各个数据确定第K个时间段内出现的数据个数,及第K个时间段分别相对于前1个 至前K-I个时间段出现的数据个数的增量,其中,N,K,M为正整数,N > 2, K = {1,2, ...,N}, 1《N,M《K。13. 如权利要求12所述的设备,其中,所述设备还包括;第二装置,用于根据确定的 数据个数和数据个数的增量得到第Ki至第K 2个时间段内数据个数的去重计数,其中, 1《Ki《N, 1《K2《N,Ki《Kzo14. 如权利要求13所述的设备,其中,所述第二装置,用于根据第K I个时间段内的数据 个数与所有第Q个时间段相对于前Q-Ki个时间段的数据个数的增量之和得到第K 1至第K 2 个时间段内数据个数的去重计数,其中,Q为正整数,。15. 如权利要求12至14任一项所述的设备,其中,所述第一装置,包括: 第一一单元,用于记当前第K个时间段内的数据个数、第K个时间段分别相对于前1个 至前K-I个时间段的数据个数的增量分别初始为0 ; 第一二单元,用于判断第K个时间段内的每个数据是否已有所述记录, 若无记录,分别对第K个时间段内出现的数据个数、第K个时间段分别相对于前1至前 K-I个时间段出现的数据个数的增量加1后,增加该数据的上一次出现的时间段的记录; 若有记录,判断时间段M的值, 若M = K-L根据该数据的上一次出现的时间段M的记录,对第K个时间段内出现的数 据个数加1后,更新该数据的上一次出现的时间段M的记录; 若M《K-2,根据该数据的上一次出现的时间段M的记录,对第K个时间段内出现的数 据个数、第K个时间段分别相对于前1个至前N-M-I个时间段的数据个数的增量加1后,更 新该数据的上一次出现的时间段M的记录。16. 如权利要求12至15任一项所述的设备,其中,各个数据的上一次出现的时间段记 录于缓存中。17. 如权利要求12至15任一项所述的设备,其中,所述第一装置,还用于将第K个时间 段内出现的数据个数,及第K个时间段分别相对于前I个至前K-I个时间段出现的数据个 数的增量记录于一维数组中。18. 如权利要求12至15任一项所述的设备,其中,所述第一装置,还用于将第K个时间 段内出现的数据个数,及第K个时间段分别相对于前1个至前K-I个时间段出现的数据个 数的增量记录于二维数组中。19. 如权利要求17或18所述的设备,其中,所述一维数组或二维数组为固定大小。20. 如权利要求18所述的设备,其中,所述第一装置,用于将第K个时间段内出现的数 据个数,及第K个时间段分别相对于前1个至前K-I个时间段出现的数据个数的增量记录 于二维数组的某列中。21. 如权利要求20所述的设备,其中,所述第一装置根据下述公式将第K个时间段内出 现的数据个数,及第K个时间段分别相对于前1个至前K-I个时间段出现的数据个数的增 量记录于二维数组的某列:其中,col, row分别表示二维数组的行号和列号,P(,)表示由行号和列号确定的二维 数组某个位置中记录的值,NUMk表示第K个时间段内出现的数据个数,ADD (K "" 1)表示第K 个时间段相对于前row-1个时间段出现的数据个数的增量。22. 如权利要求21所述的设备,其中,所述第二装置根据下述公式得到第K 1至第K 2个 时间段内数据个数的去重计数Rcount化~K 2):
【文档编号】G06F17/30GK105989072SQ201510069931
【公开日】2016年10月5日
【申请日】2015年2月10日
【发明人】胡四海
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1