如何在HBase中检索行的最后修改时间戳?

时间:2017-02-11 13:40:07

标签: java hbase

返回的Result对象中的每个Cell都有相同的时间戳吗? 做这样的事情会省钱吗?

  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 个答案:

答案 0 :(得分:1)

Result中的单元格可以有不同的时间戳。每个单元格都是CF:C:V的组合,其中CF是列系列,C是列,V是版本。即使您只存储1个版本,也可以单独更新单元格的列。存储内容时会更新单元格时间戳。

例如,您的表格user包含cf:main,两列nameage。如果您更新同一Put中的两列,则它们将具有相同的时间戳。如果仅更新name列,则时间戳将不同。所以一般来说这取决于你的使用模式。