我在我的数据库中存储产品(timeseries)的价格和库存。我的rowkey的结构如下:
productid-时间戳
与家庭的股票,价格等。
是否可以扫描超过1个product-id?
例如:给我所有来自product-id 4711,4744,8485,8585的数据...不需要一个以上的电话。
向凯文致敬
发布于 2013-06-17 03:38:17
如果您有足够新的HBase版本,则可以使用HTable batch method在一次调用中获取多个ids
发布于 2013-06-17 04:16:59
HBase有两个基本的检索选项: GET和SCAN。一次扫描意味着:从第N行开始,按顺序返回所有记录,直到到达第M行(其中M >= N)。GET只是一次单行扫描(M==N);实际上,它实际上就是这样实现的,这是有意义的,因为行是排序的,所以没有更有效的方法可以到达其中之一。
因此,对于您的情况,您有几个选择:
还有另一个不错的选择:您可以使用Phoenix,它是HBase之上的一种SQL皮肤。它已经为这种情况内置了跳过扫描,并作为JDBC驱动程序公开。它还有许多其他的性能优化,从零开始创建会很费力(聚合协处理器等)。
(完全公开,我为创建Phoenix的公司工作,但它是完全开源的,所以除了认为它很酷之外,我没有任何特别的既得利益来建议它。:)
https://stackoverflow.com/questions/17136524
复制相似问题