【问题标题】:How to resolve HBase query data by row like oracle/mysql in(row1,row2,row3...)如何按行解析 HBase 查询数据,如 oracle/mysql in(row1,row2,row3...)
【发布时间】:2012-08-11 13:52:27
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java database hadoop hbase


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-09-29
        • 2015-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多