大数据开发我爱编程

Hbase什么情况下使用?

2016-10-23  本文已影响192人  葡萄喃喃呓语

//Hadoop_v4_12.pdf(tt分享的教程《Hadoop数据分析平台》)

什么情况下使用Hbase?
 成熟的数据分析主题,查询模式已经确立并且丌轻易改变
 传统的关系型数据库已经无法承受负荷,高速插入,大量读取
 适合海量的,但同时也是简单的操作(例如key-value)

场景一:浏览历史


Paste_Image.png

关系型数据库的困难
 简单的事情只要上了量就会变成无比复杂的事情
 Order by耗费很多性能
 大量发生,但又无法分布式处理
 顾客需要实时看到自己的足迹,因此丌能使用缓存技巧

Hbase迎接挑战
 天生就是面向时间戳查询
 基于行键的查询异常快速,特别是最近的数据被放在内存的memstore里,完全没有
IO开销
 分布式化解负荷

//场景二:商品推荐

Paste_Image.png

用关系型数据库实现
http://f.dataguru.cn/thread-84-1-1.html
 拿ITPUB实验了一把。
阅读推荐说白了,就是你打开一个帖子,看到有一个提示写着读了本帖的人有xx%读了
xxxx贴,有xx%读了xxxx帖。。。等等,这项功能也可以推广到商品推荐,音乐推荐
,下载推荐等等。
在ITPUB中设置了一个log表,记录每次用户点击,有3个列,分别是时间戳,用户id,
还有点击的主题id
使用了一段时间的数据大约有1000万行,写了个sql搞定

使用Hbase:表设计不查询实现
 两个表,一个是u-t,另一个是t-u
 U-t表的结构:行键为userid,列族和列为thread:threadid
 T-u表结构:行键为threadid,列族和列为user:userid
 查询:先在u-t表从userid->threadid,再从t-u表从threadid->userid,在计算程序
中 实现去重和统计功能

上一篇 下一篇

猜你喜欢

热点阅读