[发明专利]一种获取用户独立访问数的方法与装置有效
申请号: | 201110269194.1 | 申请日: | 2011-09-13 |
公开(公告)号: | CN102999506A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 刘凡;吕春建 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 用户 独立 访问 方法 装置 | ||
技术领域
本申请涉及数据库领域,特别是涉及一种获取用户独立访问数的方法与装置。
背景技术
在数据仓库的后台ETL(Extraction-Transformation-Loading,数据提取、转换和加载)场景中,常常有这样的业务场景,即针对同一份用户行为产生的用户日志,或者用户行为流水表,进行不同维度下的UV(Unique Visitor,用户独立访问数)计算。例如,对于搜索访问用户日志,按照搜索类目,搜索关键词,搜索排序算法等维度进行用户UV的计算。这些数据量是很大的,一般都是上亿条记录数,所以需要使用hadoop(一种分布式系统基础架构)或者Hive(Hive是基于hadoop分布式文件处理系统的一种数据查询和编程语言)进行处理。
在衡量互联网流量效果的指标中,UV是比较特殊的衡量次数,如果某个维度的UV越高,说明此维度设置越有效,并且不同维度的UV不能叠加计算。而现有技术中,通常每计算一个维度下的UV都需要全量遍历一次源表,通常每计算一次指定维度下的UV指标就需要做一次全表遍历。如果需要单独算两个维度的UV,就需要全表遍历两次,N个维度就需要N次,并且每计算一个维度就需要进行两次遍历去重过程,N个维度就需要2N次遍历去重过程,在需要计算的维度较多的情况下,全表遍历次数和遍历去重过程,消耗计算资源和计算时间都呈线性增长的趋势,运算和耗时都非常巨大。
发明内容
本申请所要解决的技术问题是提供一种获取用户独立访问数的方法和装置,只需要一次全表遍历和相应两次遍历去重过程就可获得任意维度组合下的UV。
为了解决上述问题,本申请公开了一种获取用户独立访问数的方法,包括:
打标签步骤,遍历一次用户日志,并以用户id为基准,对各维度下的每条数据打上所属维度的全局标签;
第一分析运算步骤,以标签、维度组合和用户id作为关键词,对所述数据进行聚合汇总得到用户粒度数据;
第二分析运算步骤,遍历所得到的用户粒度数据,再以标签和维度组合作为关键词,对用户粒度数据进行聚合汇总得到各维度下每个子维度的用户独立访问数。
优选的,所述的打标签步骤具体包括:
数据获取步骤,遍历一次用户日志,获得用户数据;
数据复制步骤,当维度组合个数为n时,将每条数据复制n-1条;
数据保留置空步骤,对所得到由同一条用户数据复制得到的n个相同的数据分别不重复地保留一个维度的数据和对应的用户id,并将其他n-1个维度的数据置空;
标记模块步骤,将所得到的每条只保留某维度数据和对应用户id的数据打上所属维度的全局标签。
优选的,所述的第一分析运算步骤具体包括:
第一判断步骤,对打上同一全局标签的每条保留一个维度数据和相应用户id的数据,判断此全局标签下是否含有相同子维度和用户id的数据;如果包含转入第一计数步骤;如果不包含,转入第二计数步骤;其中,所述第一计数步骤为,对所述数据去重并只保留一条此类数据,记录独立访问数为1;所述第二计数步骤为,根据所述数据直接记录用户独立访问数为1;
第一整理步骤,对数据进行整理得到用户粒度数据。
优选的,所述的第二分析运算步骤具体包括:
第二判断步骤,遍历用户粒度数据,去除用户id,对打上同一全局标签的每条数据,判断其中是否含有相同子维度的数据;如果包含,转入第三计数步骤;如果不包含,转入第四计数步骤;其中,所述第三计数步骤为,对所述数据去重并只保留一条此类数据,并记录重复次数为用户独立访问数;所述第四计数步骤为,根据所述数据直接记录用户独立访问次数为1;
第二整理步骤,将各维度下每个子维度的用户独立访问数整理成表。
优选的,还包括第三分析运算步骤,根据同一子纬度数据条数获得各子纬度的用户访问数。
优选的,使用聚合函数进行去重操作。
相应的,本申请还公开了一种获得用户独立访问数的装置,包括:
打标签模块,用于遍历一次用户数据,并以用户id为基准,对各维度下的每条数据打上所属维度的全局标签;
第一分析运算模块,用于以标签、维度和用户id的组合作为关键词,对所述数据进行聚合汇总得到用户粒度数据;
第二分析运算模块,用于遍历所得到的用户粒度数据,再以标签和维度的组合作为关键词,对用户粒度数据进行聚合汇总得到各维度下每个子维度的用户独立访问数。
优选的,所述的打标签模块具体包括:
数据获取模块,用于遍历一次用户日志,获得用户数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110269194.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种微小型飞轮控制电路
- 下一篇:面垫机