2012-10-22 2 views
2

카산드라 새로운 임과 임 제가 복합 컬럼에 대해 최대 읽어 봤는데 카산드라 : CompositeType와 열을 생성

users: { 
    name: <value>, 
    ... 
    phone_numbers:1: <value>, 
    phone_numbers:2: <value>, 
    ... 
    phone_numbers: <value> 
} 

로 행을 가질 수 있도록하는 스키마를 만들려고, 단지 수 있었다 기본 키가 컴포지트 인 예제를 찾으십시오. 그래서 위의 것을 하나의 CF로 가질 수 있습니까?

내 시도했다 : -

create column family users with comparator=AsciiType 
and key_validation_class=AsciiType 
and column_metadata=[ 
{column_name: name, validation_class: AsciiType, index_type: KEYS}, 
{column_name: phone_numbers, validation_class: CompositeType(AsciiType, IntegerType), index_type: KEYS}]; 

위의 실패합니다. 어떤 도움 환호

을 알 수있다

답변

1
산드에

의 CompositeType 사용할 수있다 어느 comparator [열 이름의 종류] 또는 key_validation_class [로우 키의 종류] 아니지만 default_validation_class [열 값의 종류] 같은

create column family users with 
comparator='CompositeType(UTF8Type, IntegerType)' 
and key_validation_class='UTF8Type' 
로서

당신을 위해 일해야합니다. 나는 카산드라의 복합 유형에 대한 자세한 post을 공유

+0

그래서 가장 좋은 방법은 내 스키마는 두 개의 CF를에있을 설계하는 것이 도움이되기를 바랍니다? 비교 자 = AsciiType이고 두 번째 CF가 comparitor = CompositeType (AsciiType, IntegerType) 인 user_phone_numers 인 경우 하나? – krone

+0

당신의 OP가 CompositeTypes를 만드는 데 regd하다고 생각했습니다. P 스키마를 사용하는 데 도움이 필요하다면 사용법을 설명하고 읽고 쓰고 패턴을 작성하십시오. – Tamil

1

당신은 그것을 선언 할 수 CQL 3 년 :

테이블 사용자를 작성 (사용자 ASCII, phoneid 아스키, PHONENUMBER (단순성을 위해 형 ASCII를 사용하여) 아스키, 기본 키 (user, phonenumber))와 컴팩트 스토리지;

(사용자 사용자에 사용자 (사용자, phoneid, PHONENUMBER 값 ('존 스미스', '집', '555-121345')

삽입에

삽입으로 채우기 , phoneid, PHONENUMBER 값 ('존 스미스', '사무실', '555-121346')

로 검색 617,451,515,

선택 * 사용자의 경우 사용자 = '존 스미스'

사용자 phoneid, PHONENUMBER

'존 스미스', '집', '555-121345'

'존 스미스', ' 사무실 ','555-121346 '

+1

이것은 많은 도움이되므로 여전히 키의 한 부분 만 검색 할 수 있습니다. 키를 사용하여 배열을 저장할 수 있습니다. – krone