HBase应用程序开发04---案例
来源:互联网 发布:小超市记账软件 编辑:程序博客网 时间:2024/05/16 04:58
Hbase与RDBMS的区别在于:HBase的Cell(每条数据记录中的数据项)是具有版本描述的(versioned),行是有序的,列(qualifier)在所属列簇(Column families)存在的情况下,由客户端自由添加。以下的几个因素是Hbase Schema设计需要考虑的问题:
1、 Hbase中没有joins的概念
大表的结构可以使得不需要joins,而解决这一问题。
注意:HBase中没有join的概念,但是,大表的结构可以使其不需要Join操作就能解决Join操作所解决的问题。
###2、Row keys 设计
主键,在Region里按字母顺序来排序(byte数组存储)。
写入要分散,如订单表: order_id做逆排序后做rowkey,以便分布式存储,避免数据只保存在个别节点上。
多条件查询时,设为组合row key
注:读取数据只能按row key(及其range)或scan全表扫描,确保查询高效
###3、列族CF设计
尽量少,建议CF数量在1-2个。
设计Hbase schema的时候,要尽量只有一个column family。
flush和compaction触发的基本单位都是Region级别。当一个CF有大量的数据的时候会触发整个region里面的其他CF的memstore(其实这些memstore可能仅有少量的数据,还不需要flush的)也发生flush动作;
另外compaction触发的条件是当store file的个数(不是总的store file的大小)达到一定数量的时候会发生,而flush产生的大量store file通常会导致compaction,flush/compaction会发生很多IO相关的负载,这对Hbase的整体性能有很大影响,所以选择合适的column family个数很重要。
一、建立学生表和课程表
需求:学生可以选择多个课程,每个课程可以被多个学生选择。
查询某个学生所选的所有课程列表。
查询某个课程的学生列表。
学生可以修改所选的课程。
表的设计
0 0
- HBase应用程序开发04---案例
- HBase应用程序开发00
- 使用Eclipse开发HBase应用程序
- 使用Eclipse开发HBase应用程序
- 使用MyEclipse开发HBase应用程序
- HBase应用程序开发03查询
- HBase应用程序开发01创建表
- HBase应用程序开发02插入数据
- 《Android应用程序开发与典型案例》完整版
- 《C#数据库应用程序开发技术与案例教程》勘误表
- 【电子书下载】《Android应用程序开发与典型案例》完整版!!
- 案例一(HBase+Lucene)
- 案例一(HBase+Lucene)
- HBase Coprocessor编程案例
- HBase的应用程序
- scala spark hbase 操作案例
- 开发案例
- HBase完全分布式安装及案例设计
- C语言实现小游戏---三子棋
- Java Servlet完全教程
- 快速入门互联网协议
- Convert HTML Entities
- 面向对象基础
- HBase应用程序开发04---案例
- 未来Linux系统将是运维行业必备的技能之一
- VS2013生成DLL文件
- 如何实现导航菜单栏中的二级下拉菜单?
- Java Servlet 技术简介
- mac os通过homebrew安装docker
- javascript中对象字面量与数组字面量
- 浅谈webpack最强大的功能——Loaders
- 武大集训队的解题报告模板(拉过来参考一下)