我存储了我的数据库价格和产品库存(时间序列)。 我的rowkey具有以下结构:
的productid时间戳
与家庭股票,价格等。
可以扫描超过1个产品ID?
例如:给我所有来自product-id 4711,4744,8485,8585的数据......不超过一次通话。
此致 凯文
答案 0 :(得分:0)
如果你有足够新的HBase版本,你可以使用HTable batch method在一次通话中获得几个ID
答案 1 :(得分:0)
HBase有两个基本的检索选项:GET和SCAN。 SCAN意味着:从第N行开始,并按顺序返回所有记录,直到您遇到行M(其中M> = N)。 GET只是一个单行扫描(M == N);事实上,它实际上是这样实现的,这是有道理的,因为行是排序的,所以没有从根本上更有效的方式来获得其中一个。
因此,对于您的情况,您有几个选择:
还有一个不错的选择:你可以使用Phoenix,一个位于HBase之上的SQL皮肤。对于这种情况,它已经内置了Skip Scans,并作为JDBC驱动程序公开。它还有许多其他的性能优化,从头开始创建(聚合协处理器等)是很费力的。
(完全披露,我为创建凤凰城的公司工作,但它是完全开源的,所以我没有任何特别的既得利益建议,除了认为它很酷。)