如何通过(row1,row2,row3 ...)中的oracle / mysql等行来解析HBase查询数据

时间:2012-08-11 13:52:28

标签: java database hadoop hbase

在oracle / mysql我们通常查询记录使用

select * from test t where t.id in(1001,1002,1003);

但是hbase没有api来选择数据,只能这样做 使用scan(startRow)和endRow;

谁已经解决了这个问题,或者有方法来做到这一点。 感谢。

2 个答案:

答案 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,详细了解如何实现此目标。