首页> 中国专利> 基于流批配合的累计独立访问量确定方法、装置及设备

基于流批配合的累计独立访问量确定方法、装置及设备

摘要

本说明书实施例公开了一种基于流批配合的累计独立访问量确定方法,方法包括:通过流数据源获取用户访问流;按照预设的时间间隔从用户访问流中提取用户访问数据,得到批数据源;根据批数据源创建批任务,执行批任务以进行去重,得到至少部分去重的历史访问维表;创建对应于当前时间段的流任务,根据当前的历史访问维表,以及用户访问流中对应于当前时间段的流数据,执行流任务以进行再去重,得到当前时间段内的累计独立访问量。

著录项

  • 公开/公告号CN113868525A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 支付宝(杭州)信息技术有限公司;

    申请/专利号CN202111138453.7

  • 发明设计人 雷锦伟;

    申请日2021-09-27

  • 分类号G06F16/9535(20190101);G06F16/242(20190101);G06F16/215(20190101);

  • 代理机构11716 北京君慧知识产权代理事务所(普通合伙);

  • 代理人吴绍群

  • 地址 310000 浙江省杭州市西湖区西溪路556号8层B段801-11

  • 入库时间 2023-06-19 13:29:16

说明书

技术领域

本说明书涉及计算机技术领域,尤其涉及一种基于流批配合的累计独立访问量确定方法、装置及设备。

背景技术

很多情况下,需要统计累计独立访问量,以通过累计独立访问量更好地了解实践效果,比如,某个网站需要统计新用户的增加情况、某个活动需要统计新用户的参与情况。

在流计算场景下,通过流任务确定累计独立访问量。其中,流任务是对当前时间段的访问数据进行实时处理,以确定出当前时间段的累计独立访问量,但仅依靠流任务得到的累计独立访问量可能不准确,难以给用户提供可靠的参考数据。

基于此,现在需要一种准确的方式确定累计独立访问量。

发明内容

本说明书一个或多个实施例提供了一种基于流批配合的累计独立访问量确定方法、装置及设备,用于解决如下技术问题:

在流计算场景下,仅依靠流任务得到的累计独立访问量可能不准确,难以给用户提供可靠的参考数据。

本说明书一个或多个实施例采用下述技术方案:

本说明书一个或多个实施例提供一种基于流批配合的累计独立访问量确定方法,所述方法包括:

通过流数据源获取用户访问流;

按照预设的时间间隔从所述用户访问流中提取用户访问数据,得到批数据源;

根据所述批数据源创建批任务,执行所述批任务以进行去重,得到至少部分去重的历史访问维表;

创建对应于当前时间段的流任务,根据当前的所述历史访问维表,以及所述用户访问流中对应于所述当前时间段的流数据,执行所述流任务以进行再去重,得到所述当前时间段内的累计独立访问量。

本说明书一个或多个实施例还提供一种基于流批配合的累计独立访问量确定装置,所述装置包括:

获取单元,通过流数据源获取用户访问流;

提取单元,按照预设的时间间隔从所述用户访问流中提取用户访问数据,得到批数据源;

维表确定单元,根据所述批数据源创建批任务,执行所述批任务以进行去重,得到至少部分去重的历史访问维表;

累计单元,创建对应于当前时间段的流任务,根据当前的所述历史访问维表,以及所述用户访问流中对应于所述当前时间段的流数据,执行所述流任务以进行再去重,得到所述当前时间段内的累计独立访问量。

本说明书一个或多个实施例还提供一种基于流批配合的累计独立访问量确定设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

通过流数据源获取用户访问流;

按照预设的时间间隔从所述用户访问流中提取用户访问数据,得到批数据源;

根据所述批数据源创建批任务,执行所述批任务以进行去重,得到至少部分去重的历史访问维表;

创建对应于当前时间段的流任务,根据当前的所述历史访问维表,以及所述用户访问流中对应于所述当前时间段的流数据,执行所述流任务以进行再去重,得到所述当前时间段内的累计独立访问量。

本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:

通过流数据源获取用户访问流;

按照预设的时间间隔从所述用户访问流中提取用户访问数据,得到批数据源;

根据所述批数据源创建批任务,执行所述批任务以进行去重,得到至少部分去重的历史访问维表;

创建对应于当前时间段的流任务,根据当前的所述历史访问维表,以及所述用户访问流中对应于所述当前时间段的流数据,执行所述流任务以进行再去重,得到所述当前时间段内的累计独立访问量。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

1、本说明书实施例通过流数据源获取用户访问流,此处的用户访问流为实时累计的全量数据,在后续累计独立访问量确定时根据全量数据可以使得结果更准确可靠。

2、本说明书实施例在预设的时间间隔从用户访问流中提取用户访问数据,以得到批数据源,其中的批数据源为当前时间段之前的历史访问数据,按照预设的时间间隔进行划分可以更好地对历史访问数据进行去重。

3、本说明书实施例通过批任务对批数据源进行去重,得到去重后的历史访问维表,期间通过批任务对历史访问数据进行分段去重,可以尽量减少历史访问维表中的数据,使得后续更好地确定累计独立访问量。

4、本说明书实施例根据当前的历史访问维表与用户访问流中对应于当前时间段的流数据,执行当前时间段的流任务进行再去重,以得到当前时间段内的累计独立访问量,该过程是流任务与批任务协同处理,并由去重后的历史访问数据与当前时间段的访问数据组成全量访问数据计算得到更准确的当前时间段内的累计独立访问量。

附图说明

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

图1为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定方法的流程示意图;

图2为本说明书一个或多个实施例提供的流批一体计算系统框架的结构示意图;

图3为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定装置的结构示意图;

图4为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定设备的结构示意图。

具体实施方式

本说明书实施例提供一种基于流批配合的累计独立访问量确定方法、装置及设备。

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

累计独立访问量是指特定时间段内新增的独立访问量,新增的独立访问量经过去重后得到。对累计独立访问量进行去重时,不只针对指特定时间段内的访问数据,还需要针对特定时间段之前的历史访问数据。

下面举例说明累计独立访问量的计算规则:

例如,统计A网站的累计访问量,期间多次访问A网站的同一个用户只能记为1次,若特定时间段为2021年9月1日0时-2021年9月1日12时,累计独立访问量为2021年9月1日0时-2021年9月1日12时内新增的独立访问量,若a用户在2021年9月1日0时之前已经访问过A网站,a用户在2021年9月1日10时与2021年9月1日11时再次访问A网站,由于a用户已经在2021年9月1日0时之前曾访问A网站,所以a用户即使在2021年9月1日10时与2021年9月1日11时再次访问A网站,也无法将a用户计入累计独立访问量中。

同样统计A网站在2021年9月1日0时-2021年9月1日12时内的累计访问量,若b用户在2021年9月1日0时之前没有访问过A网站,b用户在2021年9月1日8时与2021年9月1日10时访问A网站,此时b用户可以计入累计独立访问量中,并记入累计独立访问量时的访问时间可以记录为2021年9月1日8时。

在累计独立访问量的场景中,需要根据全量数据去重后计算特定时间段的累计独立访问量。在流计算场景下,会通过流计算确定独立访问量(此处并非累计独立访问量),因为流计算引擎开始计算的时候,并没有历史访问数据,导致新增的部分数据并没有完全去重,无法给用户提供准确的累计独立访问量,只能计算出未与历史访问数据去重的独立访问量。其中,流计算是对数据流进行实时处理。

下面对流计算确定独立访问量进行举例说明:

1)实时计算当天零点起,到当前时间的独立访问量,可以通过下面的SQL指令完成:

select DateUtil(event_time,'yyyyMMdd'),count(distinct user)

from page_visit

group by DateUtil(event_time,'yyyyMMdd');

'yyyyMMdd'为日期,精确到天,distinct user为不重复的用户,比如,'yyyyMMdd'为2021年9月1日,上述SQL指令表示从当前的用户访问流中选取时间为2021年9月1日的不重复用户,并对用户进行分组。由此可以看出,通过该SQL指令可以计算当天的独立访问量,但由于流计算的缺陷,并未考虑历史访问数据,无法求得当天的累计独立访问量。

2)实时计算当前每小时的累计访问量。0点……12点……24点,可以通过下面的SQL指令完成:

select DateUtil(event_time,'yyyyMMddHH'),count(distinct user)

from page_visit

group by DateUtil(event_time,'yyyyMMddHH');

'yyyyMMdd'为日期,精确到小时,其余同上一个SQL指令,无法求得每小时的累计独立访问量。

针对上述缺陷,以下结合附图,详细说明本说明书提供的技术方案。

图1为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定方法的流程示意图,该流程可以由流批一体计算系统执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。

S102,通过流数据源获取用户访问流。

流数据源可以为实时累计的全量数据,即每次用户访问时皆累计到流数据源。用户访问流可以至少包括独立统计维度与访问时间。创建用户访问流可以通过下述SQL指令完成:

create table page_visit(

user STRING'user id',

event_time BIGINT'visit timestamp'

dt STRING'day partition'

);

上述SQL指令中,独立统计维度为用户ID,page_visit即为用户访问流,在创建page_visit时,包括user id(用户ID)、visit timestamp(访问时间)与day partition(按照日分隔的时间格式)。

S104,按照预设的时间间隔从用户访问流中提取用户访问数据,得到批数据源。

在本说明书实施例中,为了保证累计独立访问量准确,批数据源需要从首个用户访问数据进行提取,以使得累计独立访问量是基于全量数据得到。

预设的时间间隔可以根据实际情况确定,以保证预设的时间间隔内的用户合理的进行提取。若每日的访问量低于预设值,可以将预设的时间间隔设置为3天,若每日的访问量高于预设值,可以将预设的时间间隔设置为12个小时,若每日的访问量为预设值,可以将预设的时间间隔设置为1天。

S106,根据批数据源创建批任务,执行批任务以进行去重,得到至少部分去重的历史访问维表。

批数据源是预设的各时间间隔的用户访问数据,需要对预设的各时间间隔的用户访问数据分别进行去重,得到去重后的历史访问维表。该历史访问维表在预设的各时间间隔分别进行去重,但在预设的各时间间隔之间的用户访问数据并没有去重,如此操作对于后续确定累计访问量并不影响,后面会进行详细说明。

此时也可以对预设的各时间间隔之间的用户访问数据进行去重,只需要将预设的各时间间隔之间的用户访问数据进行对比,筛除存在重复用户访问数据,以完成预设的各时间间隔之间的用户访问数据。

进一步的,根据批数据源创建批任务是可以基于当前的时间段进行的操作,预设的各时间间隔并不属于当前时间段,预设的各时间间隔的用户访问数据为当前时间段之前的历史访问数据。当前时间段对应的访问数据为确定累计独立访问量的时间段。下面进行举例说明:

例如,在2021年9月1日12时发出计算2021年9月1日0时到2021年9月1日12时这一时间段的累计访问量,需要用到2021年9月1日0时之前的所有用户访问数据,并且2021年9月1日0时之前的所有用户访问数据存储于批数据源,该批数据源是预设的各时间间隔的用户访问数据,需要对预设的各时间间隔的用户访问数据分别进行去重。

需要说明的是,根据批数据源中预设的各时间间隔的用户访问数据分别创建不同的批任务,批任务是通过批计算处理批数据源。

进一步的,执行得到至少部分去重的历史访问维表之前,还需执行下述步骤:获取待确定的累计独立访问量对应的独立统计维度,并创建包含的维度仅有独立统计维度的历史访问维表,历史访问维表是通过执行批任务进行更新的,用户访问流对应的多个属性维度中包含独立统计维度。

历史访问维表仅有独立统计维度,在节省内存空间的同时,顺利的完成对预设的各时间间隔的用户访问数据的去重操作。历史访问维表可以通过下述SQL指令完成创建:

create table dim_history_visit(

user STRING'user id'

);

上述SQL指令中,独立统计维度为用户ID。

S106执行时,可以根据批数据源中的预设的各时间间隔对应的用户访问数据与对应的第三去重SQL指令分别创建批任务,并执行各批任务进行去重,得到各时间间隔分别单独去重的历史访问维表。

对预设的各时间间隔的用户访问数据进行去重可以通过下述SQL指令(第三去重SQL指令)完成:

insert into dim_history_visit

select distinct user from page_visit where dt='${bizDate}'

此时的独立统计维度为用户维度,dim_history_visit为历史访问维表,bizDate为预设的各时间间隔,该SQL指令的含义是插入历史访问维表,从预设的各时间间隔中对相同的用户进行去重,以达到预设的各时间间隔中同一个用户的访问记录只保留一次。

S108,创建对应于当前时间段的流任务,根据当前的历史访问维表,以及用户访问流中对应于当前时间段的流数据,执行流任务以进行再去重,得到当前时间段内的累计独立访问量。

执行创建对应于当前时间段的流任务时,接收累计独立访问量的查询者发送流批无关的第一去重SQL指令;通过对第一去重SQL指令进行自动改写,得到第二去重SQL指令;根据第二去重SQL指令,创建对应于当前时间段的流任务。

关于第一去重SQL指令,是用户输入用于计算当前时间段内的累计独立访问量,该用户可以并不知晓第二去重SQL指令,也是可以改写成第二去重SQL指令。第一去重SQL指令可以为改写成第二去重SQL指令提供相应的参数。当然,用户也可能知晓第二去重SQL指令,用户直接输入第一去重SQL指令,可以节省用户的时间。

第一去重SQL指令可以通过下述SQL指令完成:

select

deduplicate('max 1',user,event_time)

from

page_visit

group by

user

其中,上述SQL指令中'max 1',user,event_time用于限定第二去重SQL指令中选取访问时间中的最大值,page_visit用于限定第二去重SQL指令中当前时间段的用户访问流。

需要说明的是,通过对第一去重SQL指令进行自动改写,得到第二去重SQL指令的同时,还可以得到S106中执行的第三去重SQL指令。此时,第一去重SQL指令可以改写成第二去重SQL指令与第三去重SQL指令提供相应的参数。

此外,第三去重SQL指令还可以是在创建批任务时对第一去重SQL指令进行自动改写得到。具体的,先获取当前时间段对应的预设的时间间隔,作为最新批任务调度时间;再根据最新批任务调度时间,对第一去重SQL指令进行自动改写,得到第三去重SQL指令。

S108执行时,将当前时间段的流数据与当前的历史访问维表连接;并在连接的过程中,根据独立统计维度,对当前时间段的流数据与当前的历史访问维表进行维度对齐,得到连接的结果;在连接的结果中筛选出当前时间段的流数据中存在但当前的历史访问维表中不存在的用户记录;通过针对筛选的结果进行去重,完成对流任务的执行。

在执行步骤通过针对筛选的结果进行去重,完成对流任务的执行时,可以根据独立统计维度,对筛选的结果中包含的各用户访问记录进行分组,得到一个或者多个访问记录组;分别为各访问记录组中的用户访问记录进行单独编号,得到各用户访问记录的记录行号;以相同的一个记录行号在各访问记录组中分别进行过滤,使得过滤后的各访问记录组分别仅保留一条用户访问记录;根据保留的用户访问记录,完成对流任务的执行。

当前时间段内的累计独立访问量时,可以根据下述SQL指令进行:

select

user,event_time

from

(

select

*

,

Row_Number()over(partiton by user order by event_timedesc)as rn

from(--维表关联,过滤历史冷数据

select*from page_visit p left join dim_history_visit h

on p.user=h.user where h.user is null

)

)t where t.rn=1

其中,独立统计维度为用户维度,Row_Number()over(partition by user orderby event_time)用于处理当前时间段内的访问数据,用于表示根据用户维度分组,并在分组内部按照访问时间排序,desc表示对访问时间降序排列,即从大到小排序,as rn表示将排序得出的结果记为rn,select*from page_visit p left join dim_history_visit honp.user=h.user where h.user is null用于将当前时间段的用户访问数据进行维表关联,过滤历史访问数据,page_visit p表示将当前时间段的访问数据记为p,dim_history_visit h表示将历史访问维表记为h,left join表示将当前时间段的访问数据与历史访问维表进行左联接,on p.user=h.user表示先执行将当前时间段的访问数据中的用户维度与历史访问维表中的用户维度对齐,select*表示基于用户维度,在当前时间段的访问数据中选取出历史访问维表不存在的用户访问记录,t表示根据历史访问数据过滤的当前时间段的访问流数据记为t,where t.rn=1表示对当前时间段的访问流数据进行再过滤,可以通过Row_Number()对同一用户维度的访问数据进行了分组并生成相应的行号,此时只需要选取每组中行号为1的访问数据进行累计。

需要说明的是,关于S106中,对预设的各时间间隔之间的用户访问数据并没有去重,也不会对计算的累计独立访问量的准确性造成影响,是因为S108中只需要确定出当前时间段的用户访问流中独立统计维度对应访问记录并未在历史访问维表出现即可,若独立统计维度为用户维度时,只需要确定当前时间段的用户访问流中某一个用户ID在历史访问维表未曾出现,即可确定该用户ID可以进行累计。

上述方案是针对当前时间段计算的累计访问量,当前时间段生成的条件可以是用户在任意时刻发出指令,本说明书实施例还可以有对各时间段进行累计访问量的计算,下面针对这种情况进行说明:

按照依次来自用户访问流的各用户访问记录,创建针对预设的各时间间隔的流任务,此时的流任务的创建是为了实现预设的各时间间隔进行累计访问量的计算,此处的各时间间隔可以表示上述步骤的当前时间段,和S104的时间间隔并不相同;之后通过预设的各时间间隔对应的流任务获取对应的用户访问流,通过预设各时间间隔对应的批任务获取对应的至少部分去重的历史访问维表;再根据预设的各时间间隔对应的用户访问流与历史访问维表,执行预设的各时间间隔的流任务以进行去重,得到预设的各时间间隔内的累计独立访问量,并将预设的各时间间隔的累计独立访问量存储至累计独立访问量数据库。

进一步的,本说明书实施例可以应用在用户转化促进活动中,通过计算累计独立访问量,可以很好的了解新增用户的情况,了解促进活动的效果,为后续活动的方向提供参考。

下面对于执行促进活动进行详细说明:

确定从第一指定时刻开始的用户转化促进活动,并接收第二指定时刻的用户转化效果查询指令,其中,第二指定时刻晚于第一指定时刻,且第二指定时刻与第一指定时刻之间包含多个预设的时间间隔;解析用户转化效果查询指令,确定出所需查询的时间区间,时间区间包括至少一个预设的时间间隔;调用累计独立访问量数据库,获取时间区间对应的累计独立访问量,以确定出用户转化数据。

通过上述操作,可以查询第一指定时刻与第二指定时刻之间任意区间的累计独立访问量,确定出用户转化数据,并通过用户转化数据可以侧面反映促进活动的效果,为后续促进活动是否更改提供参考。

本说明书实施例基于历史访问维表,实现流批之间的协同,即:批任务可以用于生成历史已经访问的用户维度的数据。

本说明书实施例通过利用流批一体的计算系统框架,并可以自动拆解历史访问维表生成批任务,达到过滤历史访问数据目的,保证能够实时计算出累计独立访问量,克服流任务引擎无法存储历史访问数据的问题。下面对流批一体的计算系统框架进行详细说明:

图2为本说明书一个或多个实施例提供的流批一体计算系统框架的结构示意图,图中的流数据源生成流任务,批数据源生成批任务,并在流批无关的SQL指令生成时可以自动改写成流任务与批任务,流任务执行完成后可以计算出累计独立访问量,并将累计独立访问量统一存储。

图3为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定装置的结构示意图,装置包括:获取单元302、提取单元304、维表确定单元306与累计单元308。

获取单元302通过流数据源获取用户访问流;

提取单元304按照预设的时间间隔从用户访问流中提取用户访问数据,得到批数据源;

维表确定单元306根据批数据源创建批任务,执行批任务以进行去重,得到至少部分去重的历史访问维表;

累计单元308创建对应于当前时间段的流任务,根据当前的历史访问维表,以及用户访问流中对应于当前时间段的流数据,执行流任务以进行再去重,得到当前时间段内的累计独立访问量。

进一步的,维表确定单元306执行得到至少部分去重的历史访问维表之前,装置还包括:

维度获取单元310获取待确定的累计独立访问量对应的独立统计维度;

维表创建单元312创建包含的维度仅有独立统计维度的历史访问维表,历史访问维表是通过执行批任务进行更新的,用户访问流对应的多个属性维度中包含独立统计维度。

进一步的,累计单元308执行创建对应于当前时间段的流任务时,具体用于:

接收累计独立访问量的查询者发送流批无关的第一去重SQL指令;

通过对第一去重SQL指令进行自动改写,得到第二去重SQL指令;

根据第二去重SQL指令,创建对应于当前时间段的流任务。

进一步的,维表确定单元306执行根据批数据源创建批任务,执行批任务以进行去重,得到至少部分去重的历史访问维表时,具体用于:

根据批数据源中的预设的各时间间隔对应的用户访问数据与对应的第三去重SQL指令分别创建批任务;

执行各批任务进行去重,得到各时间间隔分别单独去重的历史访问维表。

进一步的,维表确定单元306执行创建批任务时,具体用于:

获取当前时间段对应的预设的时间间隔,作为最新批任务调度时间;

根据最新批任务调度时间,对第一去重SQL指令进行自动改写,得到第三去重SQL指令。

进一步的,累计单元308执行根据当前的历史访问维表,以及用户访问流中对应于当前时间段的流数据,执行流任务以进行再去重时,具体用于:

将当前时间段的流数据与当前的历史访问维表连接;

在连接的过程中,根据独立统计维度,对当前时间段的流数据与当前的历史访问维表进行维度对齐,得到连接的结果;

在连接的结果中筛选出当前时间段的流数据中存在但当前的历史访问维表中不存在的用户记录;

通过针对筛选的结果进行去重,完成对流任务的执行。

进一步的,累计单元308执行通过针对筛选的结果进行去重,完成对流任务的执行时,具体用于:

根据独立统计维度,对筛选的结果中包含的各用户访问记录进行分组,得到一个或者多个访问记录组;

分别为各访问记录组中的用户访问记录进行单独编号,得到各用户访问记录的记录行号;

以相同的一个记录行号在各访问记录组中分别进行过滤,使得过滤后的各访问记录组分别仅保留一条用户访问记录;

根据保留的用户访问记录,完成对流任务的执行。

进一步的,装置还包括:

流任务创建单元314按照依次来自用户访问流的各用户访问记录,创建针对预设的各时间间隔的流任务;

访问流获取单元316通过预设的各时间间隔对应的流任务获取对应的用户访问流,通过预设各时间间隔对应的批任务获取对应的至少部分去重的历史访问维表;

累计存储单元318根据预设的各时间间隔对应的用户访问流与历史访问维表,执行预设的各时间间隔的流任务以进行去重,得到预设的各时间间隔内的累计独立访问量,并将预设的各时间间隔的累计独立访问量存储至累计独立访问量数据库。

进一步的,装置还包括:

活动确定单元320确定从第一指定时刻开始的用户转化促进活动;

指令接收单元322接收第二指定时刻的用户转化效果查询指令,其中,第二指定时刻晚于第一指定时刻,且第二指定时刻与第一指定时刻之间包含多个预设的时间间隔;

查询时间确定单元324解析用户转化效果查询指令,确定出所需查询的时间区间,时间区间包括至少一个预设的时间间隔;

数据确定单元326调用累计独立访问量数据库,获取时间区间对应的累计独立访问量,以确定出用户转化数据。

图4为本说明书一个或多个实施例提供的一种基于流批配合的累计独立访问量确定设备的结构示意图,包括:

至少一个处理器;以及,

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:

通过流数据源获取用户访问流;

按照预设的时间间隔从用户访问流中提取用户访问数据,得到批数据源;

根据批数据源创建批任务,执行批任务以进行去重,得到至少部分去重的历史访问维表;

创建对应于当前时间段的流任务,根据当前的历史访问维表,以及用户访问流中对应于当前时间段的流数据,执行流任务以进行再去重,得到当前时间段内的累计独立访问量。

本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:

通过流数据源获取用户访问流;

按照预设的时间间隔从所述用户访问流中提取用户访问数据,得到批数据源;

根据所述批数据源创建批任务,执行所述批任务以进行去重,得到至少部分去重的历史访问维表;

创建对应于当前时间段的流任务,根据当前的所述历史访问维表,以及所述用户访问流中对应于所述当前时间段的流数据,执行所述流任务以进行再去重,得到所述当前时间段内的累计独立访问量。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

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

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

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

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号