2013-09-21 2 views
0

다음은 카산드라 기둥 패밀리에서 나타내는 데 필요한 데이터입니다.카산드라에서 세 개의 열이 하나의 열로 그룹화됩니까?

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 

지금은 thinking- 그룹에이 세 가지 대신에 별도로 저장하는 모든 세 함께 복합 값을 저장합니다 e1_name, e1_schemanamee1_last_modified_date 단일 열 e1에 및 어떤 방법이입니다.

그렇다면 누구든지이 기능을 위해 열 설계를 도와 줄 수 있습니까? Astyanax 클라이언트를 사용하여 위의 열 패밀리에 삽입합니다. LAST_MODIFIED_DATE

USER_ID이 행 키 (파티션 키)이며,

USER_ID, RECORD_TYPE, 이름, 스키마 명 :

열 : 내가 제대로 이해하면

답변

1

, 당신은 방법으로 다음 스키마를 설계 할 수 있습니다

e1, e2가 단일 사용자 내에서 고유 한 경우 record_type 정도 (e1, e2)가 클러스터 키일 수 있습니다. 그렇지 않으면 클러스터 키는 고유 키

첫 번째 경우의 primary_key와에서

(USER_ID, RECORD_TYPE)을 만들기위한 필드 세트를 포함 복합 수 있습니다

  e1       e2 
123 : {name, schemaname, date } | {name, schemaname, date } 

primary_key와 (USER_ID, RECORD_TYPE, 이름)이 될 수 두번째의 예를

  e1|name     e2|name 
123 : {schemaname, date } | {schemaname, date } 

괜찮은가요?

내 예에서

https://github.com/datastax/java-driver

+0

, 나는 내가 원하는 e1''열'e1' 및 열 내부를 저장할 :

마지막으로 나는 카산드라를 기본 전송을위한 아주 좋은 공식 Datastax 드라이버가 말할 것 그 가치를 저장합니다. 그리고 그 값은 세 부분으로 나눌 수 있습니다. 실제 열'e1' 값과 문자열 schemaname 및 마지막으로 수정 한 날짜 .. 그러나 당신의 예에서는 이름이 e1 열의 값이라고 생각합니다 ... 맞습니까? – ferhan

+0

그래, 나는 당신의 예제에서 ByteArray 값이라고 생각했다. – viktortnk

+0

좋아 .. 그래서 문제가있다 - 때마다, 나는'e1' 칼럼을위한 새로운 값을 얻는다. 그것은 그것을위한 새로운 칼럼을 만들 것이다 ... 그리고 어떻게 든, 나는 오래된 칼럼을 삭제하는 것을 추적 할 필요가있다. 'e1' .. – ferhan

관련 문제