2012-07-02 3 views
2

HBase 테이블에 최대 rowkey을 얻는 방법은 무엇입니까?HBase에서 최대 행 키를 얻으려면 어떻게해야합니까?

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

내가 ROW2 (rowkey의 MAXVALUE)을 얻으려면 :

나는 두 개의 행이있는 테이블이있다.

Hbase에서 어떻게합니까?

답변

1

UR을 선택하면 UR 테이블의 "마지막"행을 반환하고 행 키를 인쇄 할 수 있습니다 ("TT-"뒤에있는 숫자를 늘리면됩니다). 또한 값을 방출 할 KeyOnlyFilter을 사용할 수 있으며 U 행 방법을 사용하여 행 키가 가장 큰지 확인할 수 있습니다.

rowkey design 특히 제공된 링크의 섹션 6.3.3, 을 확인해야합니다. 내가 u r 생성과 같은 행 키를 권장하지 않기 때문입니다. 명명 된 섹션에 요약 된대로 가장 최신의 최신 행이 첫 번째 행입니다.

1

HTable 클래스의 getRowOrBefore() 메소드가 도움이 될 것입니다. 예 :

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

관련 문제