Changes between Version 2 and Version 3 of hbase_table_design
- Timestamp:
- 09/13/2012 03:20:13 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
hbase_table_design
v2 v3 1 1 1、表的属性[[BR]] 2 2 3 (1)最大版本数:通常是3,如果对于更新比较频繁的应用完全可以设置为1,能够快速的淘汰无用数据,对于节省存储空间和提高查询速度有效果。 不过这类需求在海量数据领域比较小众。[[BR]]3 (1)最大版本数:通常是3,如果对于更新比较频繁的应用完全可以设置为1,能够快速的淘汰无用数据,对于节省存储空间和提高查询速度有效果。[[BR]] 4 4 5 (2)压缩算法: 可以尝试一下最新出炉的snappy算法,相对lzo来说,压缩率接近,压缩效率稍高,解压效率高很多。[[BR]]5 (2)压缩算法:尝试使用snappy算法,相对lzo来说,压缩率接近,压缩效率稍高,解压效率高很多,而且安装相对方便[[BR]] 6 6 7 (3)inmemory:表在内存中存放, 一直会被忽略的属性。如果完全将数据存放在内存中,那么hbase和现在流行的内存数据库memorycached和redis性能差距有多少,尚待实测。[[BR]]7 (3)inmemory:表在内存中存放,同时磁盘上也会存放,可以提高访问速度,可以设置到某个CF,HBASE并不保证数据都在内存。[[BR]] 8 8 9 (4) bloomfilter:根据应用来定,看需要精确到rowkey还是column。不过这里需要理解一下原理,bloomfilter的作用是对一个region下查找记录所在的hfile有用。即如果一个region下的hfile数量很多,bloomfilter的作用越明显。适合那种compaction赶不上flush速度的应用。[[BR]]9 (4)[http://blog.csdn.net/jiaomeng/article/details/1495500 bloomfilter]:开启可以提升Get和exist的速度,根据应用来定,看需要精确到rowkey还是column。不过这里需要理解一下原理,bloomfilter的作用是对一个region下查找记录所在的hfile有用。即如果一个region下的hfile数量很多,bloomfilter的作用越明显。适合那种compaction赶不上flush速度的应用,单这种应用在我们这里比较少见。如果你在表中设置了Bloomfilter,那么HBase会在生成StoreFile时包含一份bloomfilter结构的数据,称其为MetaBlock;MetaBlock与DataBlock(真实的KeyValue数据)一起由LRUBlockCache维护。所以,开启bloomfilter会有一定的存储及内存cache开销[[BR]] 10 10 11 11 2、rowkey[[BR]] … … 34 34 35 35 可以考虑将column设计到rowkey的方法解决。例如原来的rowkey是uid1,,column是uid2,uid3...。重新设计之后rowkey为<uid1>~<uid2>,<uid1>~<uid3>...当然大家会有疑问,这种方式如何查询,如果要查询uid1下面的所有uid怎么办。这里说明一下hbase并不是只有get一种随机读取的方法。而是含有scan(startkey,endkey)的扫描方法,而这种方法和get的效率相当。需要取得uid1下的记录只需要new Scan("uid1~","uid1~~")即可。 36 37 38 39 == 程序开发是注意的地方 == 40 41 (1)、需要判断所求的数据行是否存在时,尽量不要用HTable.exists(final byte [] row) 而用HTable.exists(final byte [] row, final byte[] column)等带列族的方法替代。[[BR]] 42 43 (2)、不要使用HTable.get(final byte [] row, final byte [] column) == null来判断所求的数据存在,而是用HTable.exists(final byte [] row, final byte[] column)替代[[BR]] 44 45 (3)、HTable.close()方法少用.因为我遇到过一些很令人费解的错误 (这点没有验证)
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)