本篇内容介绍了“Hbase案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
案例背景:各位,相信各位都有浏览凤凰网的历史,那么凤凰网的广告相信各位也都点击过,可是各位有没有发现一个现象。当你某天点击一个广告后,后面的几天都会出现类似的广告,现在各个大的网站都会有这样的现象。比如你今天点击了家具的广告,那么之后,你就会发现跳出来的广告都是与家具有关。
用户行为分析。
也许各位都对这个名词不会陌生。而这就是现实中的一个典型的用户行为分析案例。
用户行为分析,分析的是数据,数据从何而来,从数据库中。数据库中的数据从用户的行为产生。鉴于这样的流程,那么很自然的想到:如何实现?如果数据保存在Hbase中又该如何实现。
针对这样的情形如果保存到传统的关系型数据库中很好设计,设计三张表,一个用户表,一个广告表,一个用户操作记录表,在操作记录表中含有操作的广告外键。
那么如果保存在Hbase中,因为之前没有设计Hbase的经验,下面就根据自己学习Hbase的知识,来设计我的第一个Hbase数据结构:
主题分析:用户行为分析可以看成是用户主题的一个需求。这里面提到一个用户主题,一个主题,可以含有多个需求,比如用户主题,可以含有用户行为分析,可以含有用户区域分析,可以含有用户性别分析,可以含有用户年龄结构分析,等等。下面主要讲解如何在Hbase中实现用户行为分析。
Hbase数据库设计:
在Hbase中建立两张表:
一张用户表:USER ,该表含有两个列族:一个为用户属性列族(族名:userProperty);另外一个为用户行为属性(actionProperty)。行健为:用户ip
另外一张为广告表:ADVERT ,其含有一个列族(adProperty)
下面说说两个表,三个列族的列分别是什么:
USER:userProperty:用户Ip区域(ipArea),用户ip国际(ipCountry),用户名ID(userId)
USER:actionProperty:点击链接(link);广告行健(adId);点击时间(time),
ADERT:adProperty:广告所属行业(adHy),广告利润(adMoney),广告所属商家comp,
创建表这两个表;
向广告表的adProperty插入一个行健数据:
put 'ADERT','ad00120311', ' adProperty:adHy ','家具'
put 'ADERT','ad00120311', ' adProperty: adMoney','11.11'
put 'ADERT','ad00120311', ' adProperty: comp','淘宝'
下面分析一下用户的流程并创建数据:
1:用户第一次点击凤凰网的广告,凤凰网获取到用户的Ip与用户id(如果登陆了),
2:凤凰网根据用户ip从USER表中从actionProperty中查询该ip的操作记录。如果没有该ip的操作记录:
则保存该用户的ip,并保存这次的操作记录,都是保存在USER表中但是保存的列族分别属于actionProperty与userProperty中。
例子数据:
put 'USER','11.11.11.1','userProperty:ipArea','上海'
put 'USER','11.11.11.1','userProperty:ipCountry','中国'
put 'USER','11.11.11.1','userProperty:userId','100001213'
保存用户行为
put 'USER','11.11.11.1', 'actionProperty: link,'/ifeng.com/……'
put 'USER','11.11.11.1', 'actionProperty:adId','ad00120311'
put 'USER','11.11.11.1', 'actionProperty:time','20130623172900'
3:当下一次用户再使用相同的IP进入到凤凰网时,凤凰网会更加用户ip在用户表USER的userProperty列族中寻找数据,如果能够找到,利用ip在USER的actionProperty中寻找用户的操作记录。如果能够找到,则便能够获得广告的id。这表示这段时间,该用户对该产品比较感兴趣,所以需要推送该类型广告,然后利用广告id到广告表ADVERT中寻找该广告,然后寻找所有这个行业的广告信息推送给用户。
“Hbase案例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程之家网站,小编将为大家输出更多高质量的实用文章!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。