1

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

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

4

1 回答 1

0

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

每张表有超过 2-3 个列族,这会让您遇到一些性能问题,如此所述。

希望这会有所帮助。

于 2015-02-26T07:29:40.883 回答