문제

다음 질문이 있습니다 : 아래와 같아 보이는 카산드라에서 열 패밀리를 만들 수 있으며 구조를 정의하는 방법 :

Users = {   //CF
     AlexS : { //row key
         Address : { //supercolumn
               state: "NJ",
               country: "US",
               phone : { //super column
                    zip: "00283",
                    number : { // supercolumn
                       home: "23756511",
                       mobile : "23756512"
                    } 
               } 
         }
     }   
}
.

도움이 되었습니까?

해결책

4 레벨의 슈퍼 컬럼 내의 슈퍼 컬럼 중첩 된 수 있습니다.내가 아는 한, 그것은 불가능합니다.현재 삽입을 원하는 열 패밀리를 참조하여 지정해야하기 때문입니다.다음을 고려해보십시오그런 다음이 수퍼 컬럼 패밀리에 여러 개의 슈퍼 컬럼을 가질 수 있으며이 SuperColumn은 하위 컬럼으로 호출되는 여러 column= value 쌍을 갖습니다.예를 들어

list Users;    
Using default limit of 100
-------------------
RowKey: AlexS
=> (super_column=Address,
     (column=country, value=US, timestamp=1331614891360000)
     (column=state, value=NJ, timestamp=1331614891355000))
=> (super_column=number,
     (column=home, value=23756511, timestamp=1331614891406000)
     (column=mobile, value=23756512, timestamp=1331614891406001))
=> (super_column=phone,
     (column=zip, value=00283, timestamp=1331614891396000))

1 Row Returned.
Elapsed time: 21 msec(s).
.

다른 팁

다른 옵션은 사용자 엔티티를 JSON으로 저장하는 것입니다.그런 다음 역방향 조회를 수행 해야하는 경우 자신만의 색인을 작성하기 만하면됩니다.이 경우 키가 "alexs"인 경우 주소 데이터의 JSON 표현 (또는 사용하려는 직렬화)이 포함 된 "주소"열이 있습니다.

그런 다음 전화 번호로 조회하려는 경우 Key= 전화 번호가있는 가정용 인덱스가 있으면 각 사용자 ID의 열이 있습니다.

이것은 Cassandra와 꽤 일반적인 접근 방식입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top