转自:http://blog.itpub.net/28912557/viewspace-1119865/

什么情况下使用Hbase?
1,成熟的数据分析主题,查询模式已经确定并且不易轻易改变。(主要还是查询模式要确定,否则,还是选用关系型数据库吧)
2,传统关系型数据库已经无法承受负荷,告诉插入,大量读取。
3,适合海量的,但同时也是简单的操作(例如key-value)

例子1:显示我的浏览历史,关系型数据库的困难:
1,简单的事情只要上了量就会变成无比复杂的事情
2,order by耗费很多性能
3,大量发生,担忧无法分布式处理
4,顾客需要实时看到自己的足迹,因此不能使用缓存技术

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

模式设计
行健:userid
列族和列:book:bookid
为了充分利用分布式,可以利用reverse key,hash等技巧改造行健

例子2:推荐系统
两个表,一个是u-t,另一个是t-u
u-t表结构:行健为userid,列族和列为thread:threadid
t-u表结构:行健为threadid,列族和列为user:userid
查询:现在t-u表从threadid->userid,再从u-t表中根据userid->threadid,最后在业务逻辑中实现去重、统计等功能。

辅助索引
例子:学生表(学号,身份证号,姓名,性别,系,年龄),有时在学号上查询,有时在身份证上查询
主表:行健为学号,列族为学生,下面的列式身份证号,姓名,性别,系,年龄
辅助(索引)表:行健为身份证号,列族和列为学号

复合行健设计
查询场景1:根据userid查询所有邮件
查询场景2:根据userid+messageid查询具体一封邮件
不同于辅助索引的“或”关系,这里是“且”的关系,解决方法就是设计复合索引:将userid+message作为复合索引
由于Hbase的行健按字典排序,且支持行健的范围查询,所以当需要查询userid的所有邮件时,只需查询行健范围为12345到123456的集合即可。
复合行健设计的优点:
1,行健比较随机,region有利于分散在各个节点,充分利用节点性能
2,便于多条件伸缩查询

Hbase建模的更多相关文章

  1. Hbase建模选择

    日期 2017年3月17日 HBase建模记录 OLTP 应用场景: OLAP 应用场景: 语音分析系统的应用场景 基于HBase的建模考虑 1.话单为主来考虑hbase的rowkey的生成规则: 1 ...

  2. HBase案例:HBase 在人工智能场景的使用

    近几年来,人工智能逐渐火热起来,特别是和大数据一起结合使用.人工智能的主要场景又包括图像能力.语音能力.自然语言处理能力和用户画像能力等等.这些场景我们都需要处理海量的数据,处理完的数据一般都需要存储 ...

  3. HBase 在人工智能场景的使用

    近几年来,人工智能逐渐火热起来,特别是和大数据一起结合使用.人工智能的主要场景又包括图像能力.语音能力.自然语言处理能力和用户画像能力等等.这些场景我们都需要处理海量的数据,处理完的数据一般都需要存储 ...

  4. 大数据架构师NoSQL建模技术

    从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...

  5. Hadoop第13周练习—HBase作业

    1    :举例子说明HBase相对简单 1.1 1.2     回答 2    :设计HBase存储站内短信 2.1 2.2     回答 书面作业1:举例子说明HBase相对简单 请举出一例子,使 ...

  6. HBase数据模型剖析

    出处:http://wuyudong.com/1987.html HBase 进行数据建模的方式和你熟悉的关系型数据库有些不同.关系型数据库围绕表.列和数据类型——数据的形态使用严格的规则.遵守这些严 ...

  7. HBase(六): HBase体系结构剖析(上)

    HBase隶属于hadoop生态系统,它参考了谷歌的BigTable建模,实现的编程语言为 Java, 建立在hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统.它仅能通过主键( ...

  8. NoSQL 数据建模技术(转)

    本文转载自:http://coolshell.cn/articles/7270.html ================================================ 全文译自墙外 ...

  9. 【HBase学习】Apache HBase项目简介

    原创声明:转载请注明作者和原始链接 http://www.cnblogs.com/zhangningbo/p/4068957.html       英文原版:http://hbase.apache.o ...

随机推荐

  1. 再看C#中的托付和事件

    在一口一个设计模式--观察者模式中.我们已经知道怎样应用观察者模式,但通过近期的深入学习,发现观察者模式存在下面缺陷: 1.抽象通知者依赖于抽象观察者: 2.每一个详细观察者被调用的方法必须一致. 比 ...

  2. 转:ASP.NET MVC 将IList<T>导出Excel文档的泛型类

    /// <summary> /// 提供将泛型集合数据导出Excel文档. /// </summary> /// <typeparam name="T" ...

  3. Excel操作类库最常用到的4种开源项目与MS Excel类库写操作对比分析性能

    4种开源Excel读写类库与MS Excel类库写操作对比 软件开发过程中,经常需要将数据保存为.xls或.xlsx文件.之前发现微软提供的Microsoft.Office.Interop.Excel ...

  4. 山东大学硕士/博士研究生毕业论文--Latex模板

    山东大学硕士/博士研究生毕业论文Latex模板 模板下载地址:  https://github.com/Tsingke/SDU_thesis_template_for_postgraduate 封皮预 ...

  5. 如何在virtualenv虚拟环境中安装mysql-python

    接触过virtualenv后,想在这个虚拟环境中安装独立的开发环境.在安装MySQLdb时遇到错误 pc 09:09:30 File "/home/pc/work/VENV/py3/loca ...

  6. ActiveMQ + NodeJS + Stomp 入门

    NodeJS + stomp-client 入门 准备 下载ActiveMQ并安装 执行bin\win32\activemq.bat启动MQ服务 打开http://localhost:8161/adm ...

  7. uva 10537 Toll! Revisited(优先队列优化dijstra及变形)

    Toll! Revisited 大致题意:有两种节点,一种是大写字母,一种是小写字母. 首先输入m条边.当经过小写字母时须要付一单位的过路费.当经过大写字母时,要付当前財务的1/20做过路费. 问在起 ...

  8. 将数据库select出来的数据转化为与相应databean相应的字典

    例如以下图: 从user_logs表格select出来的数据放在一个可变数组NSMutableArray中,如 user_logs,如今要 把数据一条条转化为Userlog databean,User ...

  9. 2. 解题报告~买卖股票的最佳时机 II

    原题地址:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/22/ 给定一个数组, ...

  10. SQL游标操作每隔5分钟时间段数据统计信息

    Tb_People 表信息: id     uname    era     amount    plushtime           1000031    张亮    中年    100000   ...