2011-09-07 3 views
3

여기에서 샘플을 찾을 수 있습니까?열 패밀리에 대해 복합 키를 정의한 다음 Hector를 사용하여 참조하는 방법은 무엇입니까?

데이터 레코드에서 CRUD를 수행하기 위해 ColumnFamilyTemplate을 사용하는 대부분의 코드는 아래를 참조하십시오. 복합 키가 정의되면 ColumnFamilyTemplate을 사용하여 복합 키가있는 데이터에 액세스 할 수 있습니까?

private static final ColumnFamilyTemplate<UUID, String> template = 
    new ThriftColumnFamilyTemplate<UUID, String>(
     Bootstrap.keyspace, 
     "User", 
     UUIDSerializer.get(), 
     StringSerializer.get(), 
     HFactory.createMutator(Bootstrap.keyspace, UUIDSerializer.get())); 
+0

주변을 검색했지만 도움이되는 사람이 없습니까? – tom

답변

3

레코드에서 CRUD를 수행하는 데 사용하는 API는 중요하지 않습니다. CompositeType (또는 DynamicCompositeType)은 해당 serializer (CompositeSerializer)가있는 또 다른 유형 (예 : UUID와 유사)입니다. 따라서, 귀하의 예제가 될 수 있습니다

private static final ColumnFamilyTemplate<Composite, String> template = 
new ThriftColumnFamilyTemplate<Composite, String>(
    Bootstrap.keyspace, 
    "User", 
    CompositeSerializer.get(), 
    StringSerializer.get(), 
    HFactory.createMutator(Bootstrap.keyspace, CompositeSerializer.get())); 

만 추가 템플릿을 사용하기 전에 복합을 작성하는 것입니다 (UUID & 롱의 복합 가정) : 결과를 가져 오는 경우

Composite key = new Composite(); 
key.addComponent(someUUID, UUIDSerializer.get()); 
key.addComponent(someLong, LongSerializer,get()); 
ColumnFamilyResult<Composite,String> result = template.queryColumns(key); 

, 하나 개의 방법이 얻을 수있는 키의 구성 요소 : 당신이 복합 키를 정의하면

myUUID = result.getKey().get(0, UUIDSerializer.get()); 
myLong = result.getKey().get(1, LongSerializer,get());