HBase中高表和宽表的优缺点?

因为HBase是列式存储的nosql,宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数少,而高表是指很多行较少列,即行多列少,一行中的数据量较少,行数大。

经过查询,总结出如下结论:

  高表优势:查询性能更好------因为查询条件都在row key中,而高表的行数据较少,所以查询缓存BlockCache能缓存更多的行;

       分片能力更强------同样因为高表中行数据少,宽表中行数据多。HBase按行(row key)来进行分片,所以分片能力更强;

  宽表优势:元数据开销较小---高表中行多,row key多,可能造成region数量也多,过大的元数据开销,可能引起HBase集群的不稳定;

       事务(业务)能力更强----宽表事务性更好。HBase对一行的写入(Put)是有事务原子性的,一行的所有列要么全部写入成功,要么全部没有写入。但是多行的更新之间没有事务性保证;

       数据压缩比更高---故名思议,宽表中行数据远远大于高表,故获得的压缩比更高。

posted on 2017-09-22 11:33  任性的大萝卜  阅读(1076)  评论(0编辑  收藏  举报

导航