Hbase列族设计重要性

Hbase column family design importance

我正在学习HBase,但是找不到一个问题的答案。

让我们考虑以下情况。我们有五台物理(硬件)服务器(0-4)。 hmaster安装在服务器0上,四台hregion服务器安装在服务器1-4上。我们有一个非常大的 table,我们需要与这五台服务器一起工作。

据我了解,每个区域服务器都负责特定区域(某些行集(!))。这意味着始终有一行(包括其所有列族、列和单元格)仅位于一个区域服务器中(在我们的示例中位于一个物理服务器中)。

如果我写的是对的,我不明白列族的用途和重要性是什么。如果我错了请纠正我and/or exmplain 列族的用途。

当你 scan/fetch 时,它更适合 IO 性能。如果您发现自己在 scan/fetch 期间只使用了 X、Y 和 Z 列而不使用 A、B 和 C 列,则可以将数据划分为两个列族以提高 IO 性能。

压缩表可能也有一点好处,因为类似的数据可以在物理上分组在一起,因此更容易压缩。