在oracle / mysql我们通常查询记录使用
select * from test t where t.id in(1001,1002,1003);
但是hbase没有api来选择数据,只能这样做 使用scan(startRow)和endRow;
谁已经解决了这个问题,或者有方法来做到这一点。 感谢。
答案 0 :(得分:1)
如果你正在寻找HBase作为RDBMS的替代品而不是。 HBase在查询数据的方式上受到更多限制。
无论如何,如果你的HBase中的行键是id,你可以按照你提到的3 GET进行查询
答案 1 :(得分:0)
我完全赞同Arnon ...... HBase并不是RDBMS的替代品。
要获得您正在寻找的一些查询功能,您应该考虑使用Hive,这是一个基于SQL的实现,它运行在Hadoop或HBase中的数据上。
如您在问题中提到的那样,当使用Java与HBase进行交互时,您可以使用filter,特别是ValueFilter
来过滤掉值。这将使得只有与要返回的标准匹配的行。请查看hbase reference guide on filters,详细了解如何实现此目标。