2011-11-25 5 views
3

4 개의 필드 (field1, field2, field3, field4)로 구성된 복합 열이 있습니다. 다음 슬라이스 쿼리를 수행해야합니다. 1. field2에 특정 값이 있고 다른 필드가 중요하지 않은 모든 복합 열 가져 오기. ('ACTIVE', '35', 'Name', 'Time'), ('INACTIVE', '35', 'City', 'Country') 행 키에 대해 세 개의 복합 열이 있다고 가정 해 보겠습니다. ('PASSIVE', '25', 'Time', 'Zone'). 행 키와 field3의 값이 '35'로 주어지면 첫 번째 두 개의 복합 열이있는 결과가 나타납니다. 모든 제안은 매우 감사하겠습니다.Cassandra Slice CompositeType의 일부에 대한 쿼리

+1

필드 1에는 몇 가지 값이 있습니까? 복합 키가있는 열은 먼저 첫 번째 차원으로 정렬 된 다음, 다음 순서로 정렬됩니다. field2 = x로 모든 값을 검색하려면 적어도 | field1 | 전체 행을 읽거나 읽습니다. field2와 field1을 바꾸는 것을 고려 했습니까? 그러면이 쿼리를 더 쉽게 만들 수 있습니다. –

+0

@ tom.wilkie,이 답변을 코멘트 대신 작성해야합니다. –

+0

field1을 사용하여 쿼리를 수행해야하므로 그 이유가 첫 번째 장소에 있습니다. 또한 필자의 경우 field1이 가질 수있는 고유 한 값은 세 가지뿐입니다 (ACTIVE, INACTIVE 및 PASSIVE). Field2는 ID이며 수백만 개의 고유 값을 가질 수 있습니다. 나머지 필드도 마찬가지입니다. – user1064949

답변

1

필드 1에는 몇 가지 값이 있습니까? 복합 키가있는 열은 먼저 첫 번째 차원으로 정렬 된 다음, 다음 순서로 정렬됩니다. field2 = x로 모든 값을 검색하려면 적어도 | field1 | 전체 행을 읽거나 읽습니다. field2와 field1을 바꾸는 것을 고려 했습니까? 그러면이 쿼리를 더 쉽게 만들 수 있습니다.

field1 = x 인 모든 값에 대해 쿼리를 수행해야하고 field2 = y를 사용하여 쿼리를 개별적으로 수행하려는 경우 복합 키 차원에 대해 다른 순서로 데이터를 두 번 삽입하는 것도 고려해 볼 수 있습니다. 이것은 날짜가 일회 기록 인 경우에 가장 효과적입니다. 허용되지 않는 경우 다음 세 가지 쿼리 만 수행하면됩니다.

[ "ACTIVE"; y; ";" "] -> ["ACTIVE "; y;" ";" "] "수동"; y : ""; ""-> [ "비활성"; ""; ""]

field1에 대해 가능한 값이 4 개 이상이면 잘되지 않습니다.

관련 문제