[原]自学大数据:Hive基于搜狗搜索的用户日志行为分析
前言
”大数据时代“,“大数据/云计算”,“大数据平台”,每天听到太多的大数据相关的词语,好像现在说一句话不跟大数据沾边都不好意思说自己是做IT的。可能这与整个IT圈子的炒作也有关联,某一个方面来看其实就是一营销术语。很多朋友就想问,我想做大数据,但是没有这个条件,没有这个数据量,没有那么多业务场景,没有那多集群可以吗?其实,我觉得是可以的,大数据只是一个华丽的词语,实际的背后也是一些开源框架的支撑,也是通过技术来实现的,所以只要掌握这一套理论体系,开源框架,技术手段,底层实现,就ok。
所以我想写一系列的博客,来让这个看起揭开这个高大上技术的面纱,展露它的本质,让更多的人领略大数据的魅力。
至于怎么搭建hadoop集群,安装生态圈中的hbase、hive、pig、mahout、spark、flume等等,就不在我想讨论的范围内,有太多的的文章、博客都详实的记录了。
这篇我主要想分享,基于搜索引擎的用户日志行为的一些分析,时间比较仓促,如有遗漏或错误欢迎留言,互动,大家进步。
数据来源
打造最权威的中文信息处理数据提供和评测平台 。数据来源, 搜狗实验室
理论知识
做技术分析之前必须需要相关的理论知识作为研究支撑,所以建议先掌握相应的理论知识。主要分两部分,一个是统计分析相关的,一些关于得出数据总量分量的关系,百分比,进而绘制出趋势走向,历史图标,各种报表等,提供BI的功能。另外一部分是数据挖掘/文本挖掘,挖掘用户查询词的语义,查到相邻词语,进而进行相关搜索推荐等,挖掘出用户兴趣,人群画像等。
统计分析相关
数据挖掘/文本挖掘相关
大规模中文搜索引擎的用户日志分析
基于用户日志的查询推荐系统
准备工作
1、下载 搜狗搜索的用户日志 ,有完整版(2GB)和迷你版(87KB),可以先下载迷你版查看数据格式,最终使用完整版做数据分析
2、建hive表: create table querylog (time string,userid string,keyword string,pagerank int,clickorder int,url string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
分析过程
http://www.4399.com/ 231722 小游戏网站 0.532%
http://www.youku.com/ 133650 视频网站 0.306%
http://www.hao123.com/ 129220 导航网站
http://qzone.qq.com/ 114878 qq空间 sns网站
http://www.7k7k.com/ 98103 小游戏网站
http://cf.qq.com/ 85555 穿越火线网站
1 18274343 41.966% 第一次搜索的命中率比较高 18274343 / 43545444
2 7926133 18.201%3 4798577 11.019%43250306 7.464%5243910161860029715301458128520891082268101097680 2.520%112311220513193
可以看出来,以每页10条数据的显示,用户通常情况下只查看第一页的数据,占到了绝大多数,最后很少一部分会查看第二页的数据。查询之后返回结果的第一页的点击率是41.966%,接近一半,说明用户会得到想要的查询的结果,或者更改查询语句
4、用户访问应用的时间特点
00点 817218
01点 543054
02点 375981
03点 283579
04点 235414
05点 221724
06点 256387
07点 405673
08点 1208389
09点 2032463
10点 2435041
11点 2408354
12点 2405614
13点 2612695
14点 2769876
15点 2870105
16点 2847254
17点 2609760
18点 2614522
19点 3050032 7.004% 20点 3167798 7.274%21点 2995447
22点 2517636
23点 1861428
5、用户查询中包含的中文、英文字数的平均个数
select count(keyword) from querylog where clickorder=1;
用户搜索出来的查询词总共长度是: 221004260
6、用户查看结果页面停留的时间有多长
- 用户的查询类型与数量
- 查询串中包含的字符类型
- 查询串中包含的词项个数
- 结果页面的查询与时间间隔
- 用户点击url与历史网页