hbase的列(family:column) 的个数是否有数量限制?

没有限制,但是需要考虑一些问题:

锁力度

当你操作一行数据的时候,这个regionserver 会对这个行进行暂时锁定,来进行操作,

从好的方面看,我们可以并发的进行原子读操作,或者压根不能修改操作。除非可以可以容忍误差(部分更新,数据时效不敏感)

在弊的方面看,这意味着单个行内的吞吐量的写入操作被限制(可能几百每秒)。

Region的分布式性能

对一个row进行操作的负载均衡和分布式单位都在一个region上,所以这个region到底有多忙,他也只会通过这台机器提供服务。如果是多行那么就可以做多台服务进行一个负载均衡。

Bugs

在一些早起版本有些bug,他会突然加载反序列化整行数据到内存中,所以行column非常多(100MB)的话就会导致OOM, 这些bug可能已经解决了吧?regionserver也会更聪明的选择需要的column进行加载。

这个是需要明确的。

总结

如果你不需要做原子操作,那么可能最好的方式是设计一个高表模型来实现的逻辑

    原文作者:_Leo___
    原文地址: https://www.jianshu.com/p/9b936629a77a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞