在hbase中拥有更多列家族的缺点?

时间:2015-02-25 13:40:09

标签: hbase column-family

我已经读过,在hbase中,我不应该在表中有超过2-3个列族。我知道要连续从每个列系列中获取条目,我需要进行单独扫描,但如果我有更多列系列,我仍然不明白会出现什么问题。 ?

在我的情况下,我想在hbase中存储20个大约10 KB的图像,这些图像具有不同的尺寸(m x n)。所以通常会有一个请求获取特定维度,我需要提供该图像。因此,如果我将所有这些图像放在单列族中,则所有20个不同维度的图像将不必要地加载到内存中进行缓存(如果请求将再次出现在相同的图像中,则可以肯定它将会相同尺寸)。另一方面,如果我将保留20个列族(每个维度一个),则只需将所需的图像加载到RAM中进行缓存。

1 个答案:

答案 0 :(得分:0)

我建议尝试在同一行的不同列中存储不同的维度,并且每当有特定维度的请求时,您只需添加所需的维度列。由于HBase按块(BlockCache)缓存数据而不是单个值,因此将缓存包含所需数据的64K块(默认情况下)。

每个表格有超过2-3个列系列,会让您遇到一些性能问题,如here所述。

希望这会有所帮助。