2012-07-02 3 views
2

Как получить максимальный rowkey в таблице HBase?Как получить max rowkey в HBase?

У меня есть таблица с двумя строками:

TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc 
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc 

Я хочу, чтобы получить ROW2 (MAXVALUE из RowKey).

Как это сделать в Hbase?

ответ

1

С выбранным вами строковым ключом u можно просто вернуть «последнюю» строку таблицы ура и распечатать только клавишу строки (так как я предполагаю, что вы просто увеличиваете числа за «TT-»). Вы также можете использовать KeyOnlyFilter, который будет выдавать значение, и вы можете использовать собственный метод ur для проверки того, какой ключ строки является наибольшим.

Возможно, вы должны проверить rowkey design, особенно раздел 6.3.3 предоставленной ссылки, , так как я бы не рекомендовал строку, такую ​​как u r generate. Как указано в названном разделе, первая, самая последняя строка будет первой.

1

Метод getRowOrBefore() класса HTable поможет нам в этом. Например,

HTable table=new HTable(conf,"test"); 
Result result=table.getRowOrBefore(Bytes.toBytes("TT-9999"),Bytes.toBytes("colfam")); 
System.out.println(Bytes.toString(result.getRow())); 
+0

В документации по API указано, что этот метод (getRowOrBefore) устарел без замены. (https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTableInterface.html#getRowOrBefore%28byte[],%20byte[]%29). – ctron

Смежные вопросы