1

私はHBaseが初めてです。私はそれをインストールし、その基本的な Java API を CRUD 操作に使用しました。私のHbaseテーブルには、数値を持つ唯一の列修飾子( A、B 、 C 、 D としましょう)があり、 A * B >= C のような特定の式に一致する行をフィルタリングする必要があります(ここにはもっと複雑な条件があります)次に、結果セットの列修飾子 D の値の合計を取得する必要があります。

この HBase を行うにはどうすればよいですか? 要するに、NoSQL HBase でストアド プロシージャ タイプのロジックを実行するにはどうすればよいですか?

ありがとう、トニー

4

1 に答える 1

2

HBase Coprocessorsを利用できます。具体的には、Endpoint Coprocessor です。これは、SQL DB のストアド プロシージャと考えることができます。エンドポイント コプロセッサーを使用するには、サーバー側でビルドしてインストールする必要があります。これにより、HBase RPC を介して呼び出すことができます。

エンドポイント コプロセッサーをビルドして使用するには、次のことを行う必要があります。

  • CoprocessorProtocol を拡張する新しいプロトコル インターフェイスがあります。
  • エンドポイント インターフェイスを実装します。実装はリージョン コンテキストにロードされ、そこから実行されます。
  • 抽象クラス BaseEndpointCoprocessor を拡張します。この便利なクラスは、コプロセッサー フレームワーク クラスのロードなど、実装者が考慮する必要のない内部の詳細を隠します。
  • クライアント側では、次の 2 つの新しい HBase クライアント API によってエンドポイントを呼び出すことができます。

    単一のリージョンに対して実行:

    HTableInterface.coprocessorProxy (クラス プロトコル、byte[] 行)

    さまざまなリージョンでの実行

    HTableInterface.coprocessorExec(Class protocol, byte[] startKey, byte[] endKey, Batch.Call callable)

詳細については、上記のリンクを参照してください。

HTH

于 2013-08-30T19:37:54.280 に答える