2016-07-08 6 views
0

をバージョン管理されているのHBaseの列値をインクリメントIキー言う「R1」と、このテーブル内の1つの行を有しますそして私は今、私は10で、バージョンのタイムスタンプ「12345678」とf.c1を増やしたいI 2</p> <pre><code>create 't', {NAME => 'f', VERSIONS => 2} </code></pre> <p>としてバージョンと列ファミリ「F」とHBaseのテーブル「T」を有する

put 't','r1','f:c1', 1, 12345678 
put 't','r1','f:c1', 2, 12345679 

を次のように値を持つ2バージョンのタイムスタンプを持つ列「C1」をしている、これはHBaseので可能な操作です。私はドキュメントをチェックしましたが、ドキュメントは見つかりませんでした。

提案がありますか?私は最初に読んでいないし、この列を更新するスレッドが2つ以上あり、膨大なデータがあるので、2つの操作(getとput)が実行可能なオプションではないということを書き留めておきたい。コメントで述べたように

+0

バージョンタイムスタンプ "12345678"を10にしてf.c1を増加させる解決策がありますが、それもサーバ側で取得して入れます。その結果、別のタイムスタンプを持つセルから結果 '11'が得られます...タイムスタンプ "12345678"のセルを「11」に変更したいのですか? –

答えて

0

、あなたがINCRを起動した後、その行の列の最新の値が11になることを意味し、10によってタイムスタンプ12345678f.c1を高めるために管理することができます。

 incr.setTimeRange(12345678L, 12345679L); 

しかし、ボークINCRが、私はあなたがコプロセッサを自分で実装することにより、それを達成することができると思うとき、そのセルのタイムスタンプを設定するためのAPIはありません。関連するJavaコードがあります。

関連する問題