2017-02-11 8 views
0

返されるResultオブジェクトの各セルは、同じタイムスタンプを持ちますか? このようなことをするのは保存されていますか?HBaseで行の最後の変更タイムスタンプを取り出す方法は?

try (Table table = connectionFactory.getConnection().getTable(TABLE)) { 
    try (ResultScanner scanner = table.getScanner(generateScan(systemId))) { 
    for (Result result: scanner) { 
    if (result == null) { 
     break; 
    } 
    long ts = result.rawCells()[0].getTimestamp(); 
    System.out.println("Row last update time: " + ts); 
    } 
    } 
    } 

最後の行の変更のタイムスタンプは取得できますか?

答えて

1

結果のセルのタイムスタンプが異なる可能性があります。各セルは、CF:C:Vの組み合わせであり、CFは列ファミリ、Cは列、Vはバージョンです。バージョンを1つしか保存しなくても、セルの列を個別に更新することができます。セルのタイムスタンプは、何かを保存するときに更新されます。

たとえば、cf:mainのテーブルnameageの2つのテーブルuserがあります。両方の列を同じPutに更新すると、同じタイムスタンプになります。 name列のみを更新すると、タイムスタンプが異なります。だから一般的にあなたの使用パターンに依存します。

+0

ありがとうございました。それはわかりませんでした。 –

関連する問題