1

我是 HBase 的新手。我已经安装了它并使用它的基本 JAVA API 进行 CRUD 操作。我的 Hbase 表有唯一的列限定符(比如说 A, B , C, D ),它们有数值,现在我需要过滤那些匹配某些公式的行,比如 A *​​ B >= C (这里可以有 b 更复杂的条件)然后我需要对结果集的列限定符 D 的值求和。

我该怎么做这个 HBase ?简而言之,如何在 NoSQL HBase 中执行存储过程类型的逻辑?

谢谢,托尼

4

1 回答 1

2

您可以使用HBase 协处理器。具体来说,端点协处理器。您可以将其视为 SQL DB 中的存储过程。为了使用端点协处理器,您需要在服务器端构建和安装它,然后它可以通过 HBase RPC 调用。

为了构建和使用端点协处理器,您需要:

  • 有一个扩展 CoprocessorProtocol 的新协议接口。
  • 实现端点接口。该实现将被加载到区域上下文中并从其执行。
  • 扩展抽象类 BaseEndpointCoprocessor。这个便利类隐藏了一些实现者不需要关心的内部细节,例如协处理器框架类加载。
  • 在客户端,可以通过两个新的 HBase 客户端 API 调用 Endpoint:

    针对单个区域执行:

    HTableInterface.coprocessorProxy(类协议,字节[]行)

    在一系列地区执行

    HTableInterface.coprocessorExec(类协议, byte[] startKey, byte[] endKey, Batch.Call callable)

有关详细信息,请参阅上面指定的链接。

高温高压

于 2013-08-30T19:37:54.280 回答