从hbase行检索时间戳

时间:2011-11-30 05:58:00

标签: java hbase flume

使用Hbase API(Get / Put)或HBQL API,是否可以检索特定列的时间戳?

3 个答案:

答案 0 :(得分:11)

假设您的客户端已配置且您已设置表格。执行get返回Result

Get get = new Get(Bytes.toBytes("row_key"));
Result result_foo = table.get(get);

结果由KeyValue支持。 KeyValues包含时间戳。您可以使用list()获取KeyValues列表,也可以使用raw()获取数组。 KeyValue有一个get timestamp方法。

result_foo.raw()[0].getTimestamp()

答案 1 :(得分:0)

result_foo.rawCells()(0).getTimestamp

是一种很好的风格

答案 2 :(得分:0)

我认为跟踪会更好:

KeyValue kv = result.getColumnLatest(family, qualifier);
String status = Bytes.toString(kv.getValue());
Long timestamp = kv.getTimestamp();

因为Result#getValue(family,qualifier)实现为

public byte[] getValue(byte[] family, byte[] qualifier) {
        KeyValue kv = this.getColumnLatest(family, qualifier);
        return kv == null ? null : kv.getValue();
    }