CN105893421A - Uv计算方法、装置 - Google Patents
Uv计算方法、装置 Download PDFInfo
- Publication number
- CN105893421A CN105893421A CN201510873389.5A CN201510873389A CN105893421A CN 105893421 A CN105893421 A CN 105893421A CN 201510873389 A CN201510873389 A CN 201510873389A CN 105893421 A CN105893421 A CN 105893421A
- Authority
- CN
- China
- Prior art keywords
- dimension
- counted
- data
- original access
- father
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种UV计算方法、装置,其对于不存在从属关系的多个待统计维度,通过对原始访问数据进行预处理,得到并存储每个待统计维度对应的数据临时表,并对该数据临时表中待统计维度的不同维度值设置不同的维度值标签;当有UV计算需求时,只需根据相应的数据临时表,统计相应的维度值标签的数量,即得到所要统计的用户数量。另外,对于存在父子层级关系的多个待统计维度,根据该父子层级关系对原始访问数据进行分组并排序,根据排序结果统计处于最下层的待统计子维度对应的用户数量,进而通过逐层向上累加得到各个待统计父维度对应的用户数量,即本申请充分利用待统计维度之间的层级关系,达到减少数据读取次数、提高计算效率的目的。
Description
技术领域
本发明涉及数据统计技术领域,特别是涉及UV计算方法、装置。
背景技术
在互联网领域,独立访客(UniqueVisitor,UV),是指访问某个站点或点击某条新闻的自然人,是最能真实反映目标站点访问量的指标。通过统计访问某个站点或点击某条新闻的UV,进而分析UV的属性特征,可以作为制定网站运营、新闻更新、广告投放等策略的依据。例如,通过统计点击某条广告的UV的年龄、性别等属性特征,可以确定关注该广告的用户群体,进而在下次投放同类型广告时,只对该用户群体进行投放,以节省广告投放成本,提高广告点击率。
现有UV计算方法在需要按照某个维度统计UV时,直接在原始访问数据中针对该维度进行查询、统计,得到对应的UV数据;例如,要统计访问目标站点的用户群体中不同性别的用户数量分别有多少,则依照现有UV计算方法,直接从原始访问数据中依次读取每一条数据,确定其用户性别为“女”还是“男”,如果是“女”,则在女性用户计数值上加1,依次遍历原始访问数据,最终得到的女性用户计数值和男性用户计数值即为计算结果。
但是,实际应用中,原始访问数据的数据量通常是很大的,以视频广告数据为例,其数据量在PB(Petabyte)级别,从而导致上述UV计算方法的工作量很大,计算效率低,需要长时间占用相关资源。因此,有必要提供一种UV计算优化方法,以应对大数据量的UV计算。
发明内容
为了解决上述技术问题,本申请公开了一种UV计算方法、装置。
第一方面,本申请提供了一种UV计算方法,所述方法包括:
获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签;
针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表;
针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签;
根据所述维度值标签统计相应维度值对应的用户数量。
结合第一方面,在第一方面第一种可行的实施方式中,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表,包括:
利用Hive工具的multi_insert函数从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,***相应维度标签对应的数据临时表。
第二方面,本申请提供了一种UV计算方法,所述方法包括:
获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系;
根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序;
根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量;
根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
结合第二方面,在第二方面第一种可行的实施方式中,在对所述原始访问数据进行分组之前,所述方法还包括:
针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签,以便在执行后续步骤时根据所述维度标签区分不同的待统计维度。
结合第二方面,或者第二方面第一种可行的实施方式,在第二方面第二种可行的实施方式中,在对所述原始访问数据进行分组之前,所述方法还包括:
对所述原始访问数据进行去重操作。
第三方面,本申请提供了一种UV计算装置,所述装置包括:
原始数据获取单元,用于获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签;
临时表生成单元,用于针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表;
维度值标签设置单元,用于针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签;
UV统计单元,用于根据所述维度值标签统计相应维度值对应的用户数量。
结合第三方面,在第三方面第一种可行的实施方式中,为生成各个维度标签对应的数据临时表,所述临时表生成单元被配置为:
利用Hive工具的multi_insert函数从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,***相应维度标签对应的数据临时表。
第四方面,本申请提供了一种UV计算装置,所述装置包括:
原始数据获取单元,用于获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系;
分组排序单元,用于根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序;
UV统计单元,用于根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量;
UV计算单元,用于根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
结合第四方面,在第四方面第一种可行的实施方式中,所述装置还包括:
维度标签设置单元,用于在对所述原始访问数据进行分组之前,针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签,以便在执行后续步骤时根据所述维度标签区分不同的待统计维度。
结合第四方面,或者第四方面第一种可行的实施方式,在第四方面第二种可行的实施方式中,所述装置还包括:
数据去重单元,用于在对所述原始访问数据进行分组之前,对所述原始访问数据进行去重操作。
由以上技术方案可知,对于不存在从属关系的多个待统计维度,本申请通过对原始访问数据进行预处理,得到并存储每个待统计维度对应的数据临时表,且该数据临时表中待统计维度的不同维度值(或维度值区间)设置有不同的维度值标签;当有UV计算需求时,只需根据相应的数据临时表,统计相应的维度值标签的数量,就可以得到所要统计的用户数量;即对于不存在从属关系的多个待统计维度,本申请实施例以少量的数据临时表存储空间为代价,达到节省大量UV计算时间的目的。另外,对于存在父子层级关系的多个待统计维度,本申请根据该父子层级关系对原始访问数据进行分组并排序,根据排序结果统计处于最下层的待统计子维度对应的用户数量,进而通过逐层向上累加得到各个待统计父维度对应的用户数量,即充分利用待统计维度之间的层级关系,达到减少数据读取次数、提高计算效率的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例提供的UV计算方法的流程图;
图2为本申请另一个实施例提供的UV计算方法的流程图;
图3为本申请一个实施例提供的UV计算装置的结构框图;
图4为本申请另一个实施例提供的UV计算装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
首先对本申请提供的UV计算方法的实施例进行说明。图1为本申请一个实施例提供的UV计算方法流程图;参照图1,该方法包括如下步骤。
S11、获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签。
上述原始访问数据为目标站点记录的各个用户的历史访问数据,每条原始访问数据包括多个字段(每个字段对应一种属性,即一种待统计维度);以广告类站点为例,如下表1所示,其原始访问数据即原始广告曝光数据,包括:广告曝光时间(表征相应用户看到广告的时间),广告点击时间(表征用户点击打开广告的时间),以及相应的用户标识、年龄、性别、地域等字段;其中,用户标识用于区分不同的用户,具体可以为用户名、用户ID等,表1中数据采用用户ID。所谓UV计算,即依照上述原始访问数据,统计满足某个维度条件的用户数量,如广告点击时间在预设时间段内的用户数量、年龄在18至25岁的用户数量、性别为男的用户数量等。
表1 原始广告曝光数据
广告曝光时间 | 广告点击时间 | 用户ID | 年龄 | 性别 | 所在地域 | … |
2015.10.15 9:20:00 | 2015.10.15 9:21:40 | Cuid_0001 | 36 | 男 | 北京 | … |
2015.10.15 9:20:00 | 2015.10.15 9:27:30 | Cuid_0012 | 28 | 女 | 上海 | … |
2015.10.16 8:30:00 | 2015.10.16 9:23:35 | Cuid_2341 | 20 | 男 | 广州 | … |
… | … | … | … | … | … | … |
上述步骤S11为每个待统计维度设置相应的维度标签,例如,对于表1所示原始访问数据,可以设置“广告曝光时间”对应的维度标签“Type1”,“广告点击时间”对应的维度标签为“Type2”,“年龄”对应的维度标签为“Type3”,“性别”对应的维度标签为“Type4”,“所在地域”对应的维度标签为“Type5”。相对于维度的名称,本申请实施例利用维度标签读取原始访问数据并进行后续统计步骤,可以提高数据读取及处理速度,进而提高UV计算效率。
S12、针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表。
本实施例中,根据在原始访问数据中设置的维度标签,从原始访问数据中提取数据,生成与维度标签一一对应的数据临时表;对于每个数据临时表,需要从原始访问数据中提取的数据至少包括相应维度标签对应的待统计维度和用户标识两个字段。以上述表1为例,可以从表1所示原始访问数据中提取“年龄”和“用户ID”两个字段,生成年龄标签“Type3”对应的用户年龄数据临时表,如下表2所示;同理,还可以从表1中提取“性别”和“用户ID”两个字段,生成性别标签“Type4”对应的用户性别数据临时表,从表1中提取“所在地域”和“用户ID”两个字段,生成地域标签“Type5”对应的用户所在地域数据临时表等。
表2 用户年龄数据临时表
用户ID | 年龄/Type3 |
Cuid_0001 | 36 |
Cuid_0012 | 28 |
Cuid_2341 | 20 |
… | … |
S13、针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签。
以表2所示用户年龄数据临时表为例,可以根据统计需求划分年龄区间,为每个年龄区间分配一个年龄值标签,例如:
对于年龄值小于18的,设置年龄值标签为“01”;
对于年龄值在[18,25)内的,设置年龄值标签为“02”;
对于年龄值在[25,30)内的,设置年龄值标签为“03”;
对于年龄值在[30,35)内的,设置年龄值标签为“04”;
对于年龄值在[35,40)内的,设置年龄值标签为“05”;
对于年龄值在[40,45)内的,设置年龄值标签为“06”;
对于年龄值在[45,50)内的,设置年龄值标签为“07”;
对于年龄值在[50,55)内的,设置年龄值标签为“08”;
对于年龄值在[55,60)内的,设置年龄值标签为“09”;
对于年龄值大于60的,设置年龄值标签为“10”。
依照上述年龄值标签设置规则,表2所示数据临时表变为如下表2-1。
表2-1 用户年龄数据临时表
用户ID | 年龄/Type3 | 年龄值标签 |
Cuid_0001 | 36 | 05 |
Cuid_0012 | 28 | 03 |
Cuid_2341 | 20 | 02 |
… | … | … |
同理,对于用户所在地域数据临时表,可以为表中出现的每个地域分配一个数字式标签,对于用户性别数据临时表,分别为“男”和“女”两种性别值分配一个数字式标签。
S14、根据所述维度值标签统计相应维度值对应的用户数量。
假设要统计年龄在[25,30)之间的用户数量,若采用现有技术,则需要从原始访问数据中依次读取每条数据,判断其年龄字段存储的年龄值是否在[25,30)内,如果在,则将计数值加1,并继续读取下一条原始访问数据,如果不在,则直接读取下一条原始访问数据;当读取完所有原始访问数据后,得到的计数值即为年龄在[25,30)之间的用户数量。可见,依照现有技术进行UV计算,需要频繁读取原始访问数据并判断相应待统计维度的维度值是否满足条件,效率较低。
而若采用本申请实施例,直接统计上述用户年龄数据临时表2-1中年龄值标签“03”的数量,即得到年龄在[25,30)之间的用户数量,方便快捷,相对于现有技术,UV计算效率大大提高。
由以上技术方案可知,本申请实施例对于不存在从属关系的多个待统计维度,通过对原始访问数据进行预处理,得到并存储每个待统计维度对应的数据临时表,且该数据临时表中待统计维度的不同维度值(或维度值区间)设置有不同的维度值标签;当有UV计算需求时,只需根据相应的数据临时表,统计相应的维度值标签的数量,就可以得到所要统计的用户数量。可见,本申请实施例以少量的数据临时表存储空间为代价,达到节省大量UV计算时间的目的,可以解决现有UV计算方法工作量大、计算效率低的问题。
另外,本实施例提供的UV计算方法,尤其适用于相互之间无从属/依赖关系的多个维度(包括上述用户的性别、年龄、所在地域等)的UV计算,最终得到的多个数据临时表之间不会存在数据冗余,不会浪费存储空间。
在本申请一个可行的实施例中,上述步骤S12生成各个待统计维度对应的数据临时表,具体可以利用Hive工具的multi_insert函数完成。
其中,Hive工具可以将符合SQL语法的字符串解析生成可以在Hadoop(即分布式存储及计算平台)上执行的MapReduce(一种程序模型)。Multi_insert适用于基于同一个源表(相当于本实施例中原始访问数据)按照不同粒度(相当于不同的待统计维度)不同逻辑处理***不同表(相当于各个维度对应的数据临时表)的场景,只需要扫描源表一次,就可以得到多个新表,应用于本实施例,只需遍历一次原始访问数据,就可以得到各个待统计维度对应的数据临时表。可见,本实施例可以减少数据预处理过程中原始访问数据读取次数,提高计算速度。
图2为本申请实施例提供的另一种UV计算方法的流程图。参照图2,该方法包括如下步骤:
S21、获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系。
上述原始访问数据为目标站点记录的各个用户的历史访问数据,每条原始访问数据包括多个待统计维度,每个待统计维度即原始访问数据的一个字段/属性;以广告类站点为例,其原始访问数据即原始广告曝光数据,其包括如下属性/字段:广告订单(order)、广告订单项(orderitem)、广告主、代理商、广告位、广告类型、广告曝光时间(表征相应用户看到广告的时间)、广告点击时间(表征用户点击打开广告的时间)、用户标识(cuid)等,还可以包括年龄、性别、地域等用户信息。其中,用户标识用于区分不同的用户,具体可以为用户名、用户ID等;更具体的,上述原始广告曝光数据中,用户标识可以细化为曝光用户标识和点击用户标识两种,如果某个用户只看到广告投放***推送的广告内容,没有通过点击操作查看广告详情,则该用户的用户标识只记录于“曝光用户标识”字段,不在“点击用户标识”字段中记录。
实际场景中,可以根据应用需求确定哪些字段为待统计维度。所谓UV计算,即依照上述原始访问数据,统计满足某个待统计维度取值条件的用户数量,如某个广告订单或某个广告订单项对应的用户数量。
本申请实施例所适用的待统计维度之间存在父子层级关系;例如,对于原始广告曝光数据,“广告订单”和“广告订单项”就是存在父子层级关系的两个维度,即同一个广告订单order1可以包括n(n为正整数)个广告订单项orderitem1-1、orderitem1-2、……、orderitem1-n。
步骤S21中,可以将获取到的原始访问数据以数据表的形式进行缓存,以便于后续步骤的执行;下表3示出了一种原始广告曝光数据表,其用户标识具体采用用户ID。
表3 原始广告曝光数据
用户ID | 广告订单 | 广告订单项 | … |
Cuid_0001 | order1 | orderitem1-3 | … |
Cuid_0002 | order2 | orderitem2-9 | … |
Cuid_0003 | order1 | orderitem1-2 | … |
Cuid_0004 | order1 | orderitem1-3 | … |
Cuid_0005 | order2 | orderitem2-1 | … |
… | … | … | … |
S22、根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序。
参照上述表3,以“广告订单”和“广告订单项”为例,依照待统计父维度“广告订单项”的维度值对于原始广告曝光数据进行分组,即“广告订单”的维度值为“order1”的数据为一组,“广告订单”的维度值为“order2”的数据为另一组,依此类推;进而根据待统计子维度“广告订单项”的维度值对每一组中的多条原始访问数据进行排序。下表3-1所示递增排序结果。
表3-1 分组排序后的原始广告曝光数据
用户ID | 广告订单 | 广告订单项 | … |
Cuid_0003 | order1 | orderitem1-2 | … |
Cuid_0001 | order1 | orderitem1-3 | … |
Cuid_0004 | order1 | orderitem1-3 | … |
Cuid_0005 | order2 | orderitem2-1 | … |
Cuid_0002 | order2 | orderitem2-9 | … |
… | … | … | … |
需要说明的是,实际应用中,最下层的待统计子维度的某一维度值,通常同时存在多条原始访问数据,每条原始访问数据的用户ID不同,则在排序过程中,可以进一步根据用户ID对最下层待统计子维度的同一维度值对应的多条数据进行排序。如上表3中,当“广告订单项”取值为“orderitem1-3”时,对应至少两条原始广告曝光数据,相应的用户ID至少包括“Cuid_0001”和“Cuid_0004”两个,则在排序过程中,可以进一步根据用户ID对“orderitem1-3”对应的两条数据进行排序。
S23、根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量。
仍以待统计父维度“广告订单”和待统计子维度“广告订单项”为例,假设“广告订单项”不存在下层子维度,则“广告订单项”为该父子层级链中处于最下层的待统计子维度,参照上述表3-1所展示的5条广告曝光数据的排序结果,分别统计“广告订单项”的每个取值对应的用户数量,即“orderitem1-2”对应1个用户,“orderitem1-3”对应2个用户,“orderitem2-1”对应1个用户“Cuid_0005”,“orderitem2-9”对应1个用户“Cuid_0002”。
S24、根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
本申请实施例中,由于各个待统计维度之间存在父子层级关系,即待统计子维度对应的每个用户都是其待统计父维度的用户,也即在进行UV统计时,待统计父维度对应的用户数量相当于其对应的各个待统计子维度的用户数量之和。有鉴于此,本申请实施例,先计算处于父子层级关系最下层的待统计子维度对应的用户数量,进而将属于同一待统计父维度的多个待统计子维度的用户数量进行累加,即得到该待统计父维度的用户数量;依此原理逐层向上进行累加计算,即可得到每层待统计维度对应的用户数量。
仍以表3-1所示的待统计父维度“广告订单”和待统计子维度“广告订单项”为例,将“orderitem1-2”和“orderitem1-3”对应的用户数量进行累加,即为其共同的父维度值“order1”对应的用户数量,将“orderitem2-1”和“orderitem2-9”对应的用户数量进行累加,即为其共同的父维度值“order2”对应的用户数量。具体的,根据步骤S23的统计结果:“orderitem1-2”对应1个用户,“orderitem1-3”对应2个用户,“orderitem2-1”对应1个用户,“orderitem2-9”对应1个用户,即“order1”对应的用户数量为3,“order2”对应的用户数量2。
由以上技术方案可知,应用本申请实施例对存在父子层级关系的多个待统计维度进行UV计算,只需遍历一次原始访问数据,先统计得到最下层的待统计子维度对应的用户数量,再通过简单的累加计算即可得到上层的各个待统计父维度对应的用户数量。相对于现有技术中计算每个维度的用户数量都需要遍历一次原始访问数据,本申请实施例充分利用待统计维度之间的层级关系,实现数据的更有效的利用,减少数据读取次数,从而减少工作量,大大节省了任务计算时间,提高UV计算效率。
在本申请一个可行的实施例中,步骤S23在统计用户数量的同时,还可以同时存储相应的用户标识。更具体的,可以通过临时表存储步骤S23的统计结果。
对于表3-1所示数据,对于最下层的待统计子维度的维度值“orderitem1-2”,不仅确定其用户数量为1,还记录这1个用户的用户ID为“Cuid_0003”;对于“orderitem1-3”不仅确定其用户数量为2,还记录这2个用户的用户ID分别为“Cuid_0001”和“Cuid_0004”。
相应的,在步骤S24中,在累加用户数量的同时,将对应的用户标识集合也进行累加。即,累加用户数量得到“order1”对应的用户数量为3,同时累加用户集合,得到“order1”对应的用户集合为{Cuid_0003,Cuid_0001,Cuid_0004}。
本实施例中,通过统计用户标识,可以为制定相同或相似站点的推广策略提供参考,如上述表3-1中,记录用户ID后,可以在下次投放同类广告时,直接将记录的用户ID作为投放目标,从而提高广告的点击率,节省广告投放成本。
在本申请一个可行的实施例中,在步骤S23中,可以在Hadoop(即分布式存储及计算平台)上利用row_number指令统计最下层的待统计子维度对应的用户数量。
需要说明的是,原始访问数据的多个待统计维度可以存在多个父子层级结构链,每个父子层级结构链存在一个最下层的待统计子维度,即原始访问数据的多个待统计维度中可以存在多个处于最下层的待统计子维度;相应的,步骤S23中分别统计每个最下层的待统计子维度对应的用户数量。
例如,上文所示的原始广告曝光数据,在订单相关的父子层级结构链中,“广告订单项”为最下层待统计子维度;除此之外,原始广告曝光数据还可以包括广告类型相关的父子层级结构链,相应的与广告类型相关的待统计维度可以包括:作为父维度的一级广告类型(维度值可以为“视频广告”、“图片广告”等)和作为子维度的二级广告类型(对于“视频广告”,其对应的二级广告类型的维度值可以为“游戏广告”、“服饰广告”、“影视广告”等),假设二级广告类型不存在下层子维度,则该二级广告类型即为与广告类型相关的父子层级结构链中的最下层待统计子维度。
在本申请一个可行的实施例中,所述UV计算方法在步骤S21获取到原始访问数据之后,步骤S22对原始访问数据进行分组之前,还可以包括如下步骤:
针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签。
相对于维度的名称,本申请实施例利用维度标签读取原始访问数据并进行后续统计步骤,可以提高数据读取及处理速度,进而提高UV计算效率。
在本申请另一个可行的实施例中,所述UV计算方法在步骤S21获取到原始访问数据之后,步骤S22对原始访问数据进行分组之前,还可以包括如下步骤:
对所述原始访问数据进行去重操作。
具体的,可以在Hadoop平台上通过group_by指令完成去重操作,以消除原始访问数据中的重复冗余数据。更具体的,上述去重操作可以执行两次,即在设置所述维度标签之前执行一次去重操作,在设置所述维度标签之后再执行一次去重操作。
另外,本申请实施例还提供了一种计算机存储介质,例如可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等;该计算机存储介质中存储有程序,当所述存储介质中的程序由相关访问数据处理平台的处理器执行时,使得该访问数据处理平台能够执行上述方法实施例中记载的任一种UV计算方法中的部分或全部步骤。
相应于图1所示UV计算方法,本申请实施例还提供了一种UV计算装置,图3为该装置的结构框图。参照图3,该装置包括:原始数据获取单元101、临时表生成单元102、维度值标签设置单元103和UV统计单元104。
其中,该原始数据获取单元101用于,获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签。
该临时表生成单元102用于,针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表。
该维度值标签设置单元103用于,针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签。
该UV统计单元104用于,根据所述维度值标签统计相应维度值对应的用户数量。
由以上技术方案可知,本申请实施例根据待统计维度对原始访问数据进行预处理,得到并存储每个待统计维度对应的数据临时表,且该数据临时表中待统计维度的不同维度值(或维度值区间)设置有不同的维度值标签;当有UV计算需求时,只需根据相应的数据临时表,统计相应的维度值标签的数量,就可以得到所要统计的用户数量。可见,本申请实施例以少量的数据临时表存储空间为代价,达到节省大量UV计算时间的目的,可以解决现有UV计算方法工作量大、计算效率低的问题。
在本申请一个可行的实施方式中,上述临时表生成单元102具体被配置为:利用Hive工具的multi_insert函数从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,***相应维度标签对应的数据临时表。
通过上述multi_insert函数,只需遍历一次原始访问数据,就可以得到各个待统计维度对应的数据临时表,从而可以减少数据预处理过程中原始访问数据读取次数,提高计算速度。
相应于图2所示UV计算方法,本申请实施例还提供了另一种UV计算装置,图4为该装置的结构框图。如图4所示,该装置包括:原始数据获取单元201、分组排序单元202、UV统计单元203和UV计算单元204。
其中,该原始数据获取单元201用于,获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系;
该分组排序单元202用于,根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序;
该UV统计单元203用于,根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量;
该UV计算单元204用于,根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
由以上技术方案可知,本申请实施例根据各个待统计维度之间的父子层级关系,对原始访问数据进行分组并排序,根据排序结果,先计算处于父子层级关系最下层的待统计子维度对应的用户数量,再将属于同一待统计父维度的多个待统计子维度的用户数量进行累加,即得到该待统计父维度的用户数量,依此原理逐层向上进行累加计算,得到每层待统计维度对应的用户数量。可见,应用本申请实施例进行UV计算,只需遍历一次原始访问数据,得到最下层的待统计子维度对应的用户数量,对于上层的各个待统计父维度,只需通过简单的累加计算即可得到对应的用户数量。相对于现有技术本申请实施例本实施例充分利用待统计维度之间的层级关系,实现数据的更有效的利用,减少数据读取次数,从而减少工作量,大大节省了任务计算时间,提高UV计算效率。
在本申请一个可行的实施方式中,图4所示的UV计算装置还可以包括:维度标签设置单元。
该维度标签设置单元用于,在对所述原始访问数据进行分组之前,针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签。
相对于维度的名称,本申请实施例利用维度标签读取原始访问数据并进行后续统计步骤,可以提高数据读取及处理速度,进而提高UV计算效率。
在本申请另一个可行的实施方式中,图4所示的UV计算装置还可以包括:数据去重单元。
该数据去重单元用于,在对所述原始访问数据进行分组之前,对所述原始访问数据进行去重操作。
通过去重操作,可以消除原始访问数据中的重复冗余数据。更具体的,上述去重操作可以执行两次,即在设置所述维度标签之前执行一次去重操作,在设置所述维度标签之后再执行一次去重操作。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种UV计算方法,其特征在于,包括:
获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签;
针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表;
针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签;
根据所述维度值标签统计相应维度值对应的用户数量。
2.根据权利要求1所述的方法,其特征在于,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表,包括:
利用Hive工具的multi_insert函数从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,***相应维度标签对应的数据临时表。
3.一种UV计算方法,其特征在于,包括:
获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系;
根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序;
根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量;
根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
4.根据权利要求3所述的方法,其特征在于,在对所述原始访问数据进行分组之前,所述方法还包括:
针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签,以便在执行后续步骤时根据所述维度标签区分不同的待统计维度。
5.根据权利要求3或4所述的方法,其特征在于,在对所述原始访问数据进行分组之前,所述方法还包括:
对所述原始访问数据进行去重操作。
6.一种UV计算装置,其特征在于,包括:
原始数据获取单元,用于获取原始访问数据,并针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签;
临时表生成单元,用于针对每个所述维度标签,分别从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,生成所述维度标签对应的数据临时表;
维度值标签设置单元,用于针对每个数据临时表中的各条数据,设置与其待统计维度的维度值一一对应的维度值标签;
UV统计单元,用于根据所述维度值标签统计相应维度值对应的用户数量。
7.根据权利要求6所述的装置,其特征在于,为生成各个维度标签对应的数据临时表,所述临时表生成单元被配置为:
利用Hive工具的multi_insert函数从所述原始访问数据中提取至少包括所述维度标签对应的待统计维度和用户标识两个字段在内的数据,***相应维度标签对应的数据临时表。
8.一种UV计算装置,其特征在于,包括:
原始数据获取单元,用于获取原始访问数据;其中,所述原始访问数据包括多个待统计维度,各个待统计维度之间存在父子层级关系;
分组排序单元,用于根据所述待统计维度中待统计父维度的维度值对所述原始访问数据进行分组,并根据所述待统计父维度对应的待统计子维度的维度值对同一组中的原始访问数据进行排序;
UV统计单元,用于根据所述排序结果,统计维度中处于最下层的待统计子维度对应的用户数量;
UV计算单元,用于根据所述待统计子维度对应的用户数量,及各个待统计维度之间的父子层级关系,逐层向上累加得到各个层级的待统计维度对应的用户数量。
9.根据权利要求8所述的装置,其特征在于,还包括:
维度标签设置单元,用于在对所述原始访问数据进行分组之前,针对每条原始访问数据的各个待统计维度,分别设置相应的维度标签,以便在执行后续步骤时根据所述维度标签区分不同的待统计维度。
10.根据权利要求8或9所述的装置,其特征在于,还包括:
数据去重单元,用于在对所述原始访问数据进行分组之前,对所述原始访问数据进行去重操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510873389.5A CN105893421A (zh) | 2015-12-02 | 2015-12-02 | Uv计算方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510873389.5A CN105893421A (zh) | 2015-12-02 | 2015-12-02 | Uv计算方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893421A true CN105893421A (zh) | 2016-08-24 |
Family
ID=57001865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510873389.5A Pending CN105893421A (zh) | 2015-12-02 | 2015-12-02 | Uv计算方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893421A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798021A (zh) * | 2016-09-07 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 数据关联处理方法、***及电子设备 |
CN109961312A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 广告数据的统计方法、装置和计算机可读存储介质 |
CN110516184A (zh) * | 2019-05-27 | 2019-11-29 | 广州起妙科技有限公司 | 一种统计uv数量的模拟运算方法 |
CN110580322A (zh) * | 2019-09-18 | 2019-12-17 | 北京百度网讯科技有限公司 | 独立访客信息处理的方法、装置、电子设备及存储介质 |
CN111125088A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 多层级数据处理方法和装置 |
CN111222048A (zh) * | 2020-01-03 | 2020-06-02 | 北京字节跳动网络技术有限公司 | 用户数量的查询计算方法、装置、电子设备、及存储介质 |
WO2021036452A1 (zh) * | 2019-08-27 | 2021-03-04 | 苏宁云计算有限公司 | 实时数据去重计数方法及装置 |
CN112685456A (zh) * | 2020-12-28 | 2021-04-20 | 江苏苏宁云计算有限公司 | 一种用户访问数据的处理方法、装置及计算机*** |
CN116028680A (zh) * | 2023-03-29 | 2023-04-28 | 北京锐服信科技有限公司 | 基于图数据库的资产图谱的展示方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999506A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种获取用户独立访问数的方法与装置 |
CN103136335A (zh) * | 2013-01-31 | 2013-06-05 | 北京千分点信息科技有限公司 | 一种基于数据平台的数据控制方法 |
CN103546326A (zh) * | 2013-11-04 | 2014-01-29 | 北京中搜网络技术股份有限公司 | 一种网站流量统计的方法 |
-
2015
- 2015-12-02 CN CN201510873389.5A patent/CN105893421A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999506A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种获取用户独立访问数的方法与装置 |
CN103136335A (zh) * | 2013-01-31 | 2013-06-05 | 北京千分点信息科技有限公司 | 一种基于数据平台的数据控制方法 |
CN103546326A (zh) * | 2013-11-04 | 2014-01-29 | 北京中搜网络技术股份有限公司 | 一种网站流量统计的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798021A (zh) * | 2016-09-07 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 数据关联处理方法、***及电子设备 |
CN109961312A (zh) * | 2017-12-26 | 2019-07-02 | 北京奇虎科技有限公司 | 广告数据的统计方法、装置和计算机可读存储介质 |
CN109961312B (zh) * | 2017-12-26 | 2023-12-22 | 三六零科技集团有限公司 | 广告数据的统计方法、装置和计算机可读存储介质 |
CN111125088A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 多层级数据处理方法和装置 |
CN111125088B (zh) * | 2018-10-31 | 2023-08-25 | 北京国双科技有限公司 | 多层级数据处理方法和装置 |
CN110516184A (zh) * | 2019-05-27 | 2019-11-29 | 广州起妙科技有限公司 | 一种统计uv数量的模拟运算方法 |
WO2021036452A1 (zh) * | 2019-08-27 | 2021-03-04 | 苏宁云计算有限公司 | 实时数据去重计数方法及装置 |
CN110580322A (zh) * | 2019-09-18 | 2019-12-17 | 北京百度网讯科技有限公司 | 独立访客信息处理的方法、装置、电子设备及存储介质 |
CN111222048A (zh) * | 2020-01-03 | 2020-06-02 | 北京字节跳动网络技术有限公司 | 用户数量的查询计算方法、装置、电子设备、及存储介质 |
CN112685456A (zh) * | 2020-12-28 | 2021-04-20 | 江苏苏宁云计算有限公司 | 一种用户访问数据的处理方法、装置及计算机*** |
CN116028680A (zh) * | 2023-03-29 | 2023-04-28 | 北京锐服信科技有限公司 | 基于图数据库的资产图谱的展示方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893421A (zh) | Uv计算方法、装置 | |
CN107239891B (zh) | 一种基于大数据的招投标审核方法 | |
US10325289B2 (en) | User similarity groups for on-line marketing | |
CN105447186B (zh) | 一种基于大数据平台的用户行为分析*** | |
US20180310121A1 (en) | Branching mobile-device to system-namespace identifier mappings | |
JP5542812B2 (ja) | クエリ識別および関連付け | |
US10528970B2 (en) | Systems, methods, and devices for pipelined processing of online advertising performance data | |
US9858308B2 (en) | Real-time content recommendation system | |
CN107577688A (zh) | 基于媒体信息采集的原创文章影响力分析*** | |
CN105631711A (zh) | 一种广告投放方法及装置 | |
US20140258001A1 (en) | Systems and Methods for Determining Net-New Keywords in Expanding Live Advertising Campaigns in Targeted Advertising Systems | |
US20160285672A1 (en) | Method and system for processing network media information | |
US20140101201A1 (en) | Distributed data warehouse | |
CN108550068A (zh) | 一种基于用户行为分析的个性化商品推荐方法及*** | |
CN105654201B (zh) | 一种广告流量预测方法及装置 | |
CN109255640A (zh) | 一种确定用户分组的方法、装置及*** | |
CN104951468A (zh) | 数据搜索处理方法和*** | |
CN103366009B (zh) | 一种基于自适应聚类的图书推荐方法 | |
CN101464984A (zh) | 一种利用广告位标签发布广告的广告发布控制***及方法 | |
CN105654198B (zh) | 具有最优阈值筛选的品牌广告效果优化的方法 | |
CN106445963A (zh) | App平台的广告索引关键词自动生成方法和装置 | |
US10304081B1 (en) | Yielding content recommendations based on serving by probabilistic grade proportions | |
CN109241455B (zh) | 一种推荐对象的展示方法及装置 | |
CN106446149B (zh) | 一种通知信息的过滤方法及装置 | |
CN102521713B (zh) | 数据处理装置和数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |