中间件速查手册
大数据存储列族

Column Family 是什么?

列的上级分组,建表时就要定好,同族的数据物理上存在一起

类比:档案袋,同一类的材料装在一个袋子里

列族 vs 列

HBase 的列可以随时新增,不需要改表;但列族必须在建表时定义,之后改要停表。一个列族下的所有列存在同一个 StoreFile 里,共享同一份内存和刷盘策略。

为什么列族要少

每个列族对应一组 MemStore 和 HFile。列族多了,刷盘次数、文件数、compaction 压力都成倍增加。官方建议一张表 1~3 个列族,别按“业务模块”随意切。

常见划分是:一个列族放主要数据(小、读多),一个放附加信息(大、读少),利用不同的 TTL 和压缩策略。

稀疏存储

同一列族内,不同行的列可以完全不同,没写的列不占空间。这让 HBase 特别适合“标签、属性”这类数量不定、大部分为空的场景。

它出现在这些中间件里

相关概念