2

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

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

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

谁解决了这个问题,或者有办法做到这一点。谢谢。

4

2 回答 2

1

如果您正在寻找 HBase 作为 RDBMS 的替代品,那就不要了。HBase 在查询数据的方式上受到更多限制。

无论如何,如果您在 HBase 中的行键是 id,您可以通过键执行您提到的 3 个 GET 查询

于 2012-08-11T19:32:37.650 回答
0

我完全同意 Arnon... HBase 并不是真正的 RDBMS 替代品。

要获得您正在寻找的一些查询功能,您应该考虑使用Hive,它是一种几乎是 SQL 的实现,可以在 Hadoop 或 HBase 中的数据上运行。

像您在问题中提到的那样与 HBase 与 Java 交互时,您可以使用filter,特别是ValueFilter,来过滤掉值。这将使它只有与要返回的条件匹配的行。查看有关过滤器的 hbase 参考指南,以了解有关如何实现此功能的更多信息。

于 2012-08-13T01:41:47.710 回答