Получение метки времени из строки hbase - PullRequest
5 голосов
/ 30 ноября 2011

Используя Hbase API (Get / Put) или HBQL API, возможно ли получить метку времени определенного столбца?

Ответы [ 3 ]

11 голосов
/ 30 ноября 2011

Предполагается, что ваш клиент настроен и у вас есть настройка таблицы.Выполнение get возвращает Result

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

A Результат поддерживается KeyValue .KeyValues ​​содержит метки времени.Вы можете получить либо список KeyValues ​​с помощью list (), либо получить массив с помощью raw ().KeyValue имеет метод получения временной метки.

result_foo.raw()[0].getTimestamp()
0 голосов
/ 14 марта 2019

Я думаю, что следующее будет лучше:

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();
    }
0 голосов
/ 16 ноября 2015
result_foo.rawCells()(0).getTimestamp

- это хороший стиль

...