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

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

锁力度

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

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

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

Region的分布式性能

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

Bugs

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

这个是需要明确的。

总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容