2013-09-25 3 views
0

다음은 카산드라 컬럼 패밀리에서 나타내는 데 필요한 데이터입니다.다른 데이터 유형의 카산드라 (Cassandra) 컬럼 패밀리

rowKey   e1_name     e1_schemaname     e1_last_modified_date 
123    (ByteArray value)   abc (some string)    some_date 

userId 여기 rowKey입니다. 그리고 e1_name, e1_schemanamee1_last_modified_datee1의 열입니다. 이 세 개의 열은 모두 e1 열의 값을 포함합니다. 같은 방식으로 나는 아래 열과 같은 또 다른 열을 가지게 될 것입니다.

e2_name     e2_schemaname     e2_last_modified_date 
(ByteArray value)   abc (some string)    some_date 

e3_name     e3_schemaname     e3_last_modified_date 
(ByteArray value)   abc (some string)    some_date 

이제 위의 사용 사례를 위해 동적 열 패밀리를 만들어야합니다. 내가 직면하고있는 문제는 각 컬럼이 자체 데이터 유형을 갖게된다는 것입니다. e1의 경우, e1_name은 ByteArray, e1_schemaname은 UTF8, e1_last_modified_date은 DateType입니다. e2 시리즈와 e3 시리즈도 마찬가지입니다.

이것은 내가 가지고있는 것이지만 나는 그렇게 생각하지 않는다.

create column family USER_DATA 
with key_validation_class = 'UTF8Type' 
and comparator = 'UTF8Type' 
and default_validation_class = 'UTF8Type' 
and gc_grace = 86400 

위의 사용 사례에 대한 열 설계를 도와 줄 수있는 사람이 있습니까?

+2

왜 CQL3와 스키마를 모델링하지를 사용하여 원하는 데이터 유형에서에/"BytesType"을 변환 할 수 있습니다

? –

+0

우리는 다른 일부 keysapce에서 Column Family를 사용하기 때문에 DAO 코드가 준비되어 프로덕션 환경에서 실행됩니다. 이제 CQL3을 실험 할 필요가 없습니다 ... – ferhan

+0

Hector-client를 사용하고 있습니까? –

답변

0

"BytesType"을 사용할 수 있습니다. 쉽게 AbstractSerializer.toByteBuffer()와 AbstractSerializer.fromByteBuffer()