여러 클러스터링 열 클러스터링 순서 :카산드라 CQL -이 같은 기본 키 정의와 열 가족이
...
PRIMARY KEY ((website_id, item_id), user_id, date)
같은 쿼리를 사용하여 조회 할 것이다 :
SELECT * FROM myCF
WHERE website_id = 30 AND item_id = 10
AND user_id = 0 AND date > 'some_date' ;
그러나, 나는 SELECT date FROM myCF ;
과 같이 날짜순으로 내 가족을 정렬하려면 가장 최근에 삽입 한 날짜를 반환합니다.
열을 클러스터링하는 순서 때문에 사용자 ID 당 주문 당 주문이 있습니다. I가 기본 키 정의를 변경하는 경우 는 :
PRIMARY KEY ((website_id, item_id), date, user_id)
제한해야 날짜가 USER_ID이다 나는 더 이상 같은 쿼리를 실행할 수 없습니다.
...
PRIMARY KEY ((website_id, shop_id), store_id, date)
) WITH CLUSTERING ORDER BY (store_id RANDOMPLEASE, date DESC) ;
하지만 존재하지 않는 것 :
나는이 말을 할 수있는 방법이 될 줄 알았는데. 최악의 경우, 어쩌면 이것은 완전히 어리 석고 나는 이유를 알지 못합니다.이 방법이 있습니까? 내가 놓친 게 있니?
감사합니다.
답장을 보내 주셔서 감사합니다. @RussS. 두 번째 형식 :'PRIMARY KEY ((website_id, item_id), date, user_id)'는 user_id보다 먼저 나오고 non-EQ에 의해 제한되기 때문에'AND user_id = 0 AND date> 'some_date'; 방정식. 파티션 열로 user_id가없는 두 번째 해결 방법은 유니티가 3 중 트랩 (website_id, item_id, date)에 의해 제약되므로 사용자 당 데이터를 가질 수 없습니다. 어딘가 잘못 됐습니까? – kevad
아니요 * 두 테이블 모두 사용하면 안됩니다. 쓰기 시간에 둘 다 삽입하십시오. 각 쿼리 형식에 대해 하나의 테이블이 필요합니다. – RussS
알겠습니다. 나는 당신이 의미하는 바를 이해합니다. 답변 주셔서 감사 드리며 설명해 주셔서 감사합니다! – kevad