2012-03-06 6 views
1

나는 cassandra 열 패밀리의 중첩 열을 슈퍼 또는 일반으로 가질 수 있는지 확인하려고했습니다. 나는 온통 보였고 내가 찾는 것을 완전히 보지 못했습니다.카산드라의 열 패밀리 안에 하위 열 만들기

나는 이런 식으로하고 싶다. 다음 포스트 Create a Cassandra schema for a super column with metadata

에서

`[{ firstname: "Me", 
    lastname: "Smith", 
    HomeAddress: { Street: "1234 Any Place Dr" 
        ,State: "IL" 
        ,zip: "62024" 
        } 
    }]` 

나는 비슷한 찾았지만 내가가 원하는 방식으로 작동하지 않습니다.

create column family users       
with comparator = UTF8Type 
and compression_options = { sstable_compression:SnappyCompressor, chunk_length_kb:64} 
and column_metadata = [ 
    { column_name: FirstName, validation_class : UTF8Type} 
    { column_name: LastName, validation_class : UTF8Type}, 
    { column_name: FavStore, validation_class : IntegerType} 
, { column_type: super, column_name: HomeAddress } 
]; 

다음은 내 열 (column) 계열을 어떻게 생성했는지 보여주는 코드입니다.

위의 JSON 예제와 같이 주소를 입력하면 작동하지 않는 것 같습니다.

cli에서 목록을 작성한 결과는 다음과 같습니다. 나는 시도하고 집 주소에서 값을 꺼내 때

RowKey: 646f68616c6c => (column=FavStore, value=59580595188280, timestamp=1330696438) => (column=Favorites, value=HASH(0x3618bc0), timestamp=1330696438) => (column=FirstName, value=Me, timestamp=1330696438) => (column=HomeAddress, value=HASH(0x3618b30), timestamp=1330696438) => (column=LastName, value=Smith, timestamp=1330696438)

나는 아무것도 얻을 수 없다. 그것은 비어있는 것 같습니다. 내가 perl 코드에서 뽑아서 Hash가 비어 있다고 알려줍니다.

이것이 가능한지 궁금하고 열 패밀리에 하위 열을 추가하는 것이 가장 좋은 방법이 아닌지 궁금합니다. 또는 나는 단지 잘못된 나무를 짖고있다.

모든 정보는 크게 감사하겠습니다.

답변

2

일반 열과 수퍼 열을 혼합하려고합니다. Cassandra는 열 패밀리의 모든 열이 일반 열 또는 수퍼 열이어야한다고 요구합니다. 사용하여 하나 열에서 address_street, address_state, address_zip

  • 스토어 주소의 구성 요소 : 3 열로 집 주소 열까지

    • 분할 대신 슈퍼 컬럼을 사용하려고 당신은 다음 중 하나를 수행 할 수 있습니다 좋아하는 직렬화 형식 (json, 프로토콜 버퍼 등)
  • +0

    주셔서 감사합니다. 나는 주소 정보를 위해 JSON의 아이디어를 좋아한다. 나는 그 장면을 줄 것이다. –