2012-04-18 4 views
0

HBase의 증분 카운터에 관한 문서를 찾는 데 어려움을 겪고 있습니다. 어느 누구도 알고 있니?HBase 스키마 행 키 디자인 - 증분 카운터?

내 응용 프로그램에 대한 Hbase 테이블 스키마를 설계하고 있습니다. 내 row_key는 100 % 고유성을 보장 할 수 없습니다. 그래서 문제는 내 row_key 중복을 시작하면, 나는 그들을 구별하기 위해 행 키의 일부로 증가 카운터를 갖고 싶습니다. 생각?

당신이 이런 식으로 할 경우는

info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 
info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 
info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 

같은 OS 항상 고유 있도록 당신의 행 키와 타임 스탬프를 추가 한 일을 할 수

답변

-1

는 항상 고유 행 키

한 가지 더 당신은

uidgen

I를 시도 할 수 있습니다 t는 당신이 자바 다음

public class GenerateUUID { 

    public static final void main(String... aArgs){ 
    UUID idOne = UUID.randomUUID(); 
    UUID idTwo = UUID.randomUUID(); 
    log("UUID One: " + idOne); 
    log("UUID Two: " + idTwo); 
    } 

    private static void log(Object aObject){ 
    System.out.println(String.valueOf(aObject)); 
    } 
} 

를 사용하는 경우 일반적으로는/usr/빈/

nyancat ~

488bc393 - a4f5-4a83-8df8-8c15e737dcc5 #의의 uuidgen에서 발견 그리고 당신은이를 첨부 할 수 있습니다 귀하의 키로

+0

rowkey 디자인에 timestamp를 추가했습니다. 그렇다고해도 내 데이터가 매우 빨리 생성되면 중복되는 경우가 있습니다. – Shengjie

+0

난수 또는 GUID를 추가 할 수 있습니까? 독창성 문제를 해결할 수 있을까요? – Suman

+1

타임 스탬프는 신뢰할 수있는 고유 ID가 아닙니다. Boundary의 [Flake 프로젝트 작성] (http://boundary.com/blog/2012/01/12/flake-a-decentralized-k-ordered-unique-id-home)에서 분산 UUID 생성에 대한 훌륭한 접근법을 찾을 수 있습니다. generator-in-erlang /) (Twitter의 [Snowflake] (https://github.com/twitter/snowflake) 참조). 그것은 고유성을 보장하면서 남은 시간 순서의 좋은 속성을 가지고 있습니다. – mrflip