2013-06-04 4 views
5

카산드라에 약 2 천만 행의 테이블이 있습니다.카산드라에서 마지막 레코드를 받으십시오.

표는 primary_key 열에 의해 정렬되며 문자열입니다. 우리는 'ByteOrderedPartitioner'를 사용하기 때문에, 행은 primary_key 열의 해시가 아니라 primary_key에 의해 정렬됩니다.

테이블의 마지막 레코드를 가져 오는 좋은 방법은 무엇입니까?

감사합니다.

+0

필요시 데이터 분포를 변경하거나 클러스터를 확장 할 수 있습니다. 가능한 경우 열 범위 쿼리를 대신 사용할 수 있도록 데이터 모델을 변경해야합니다. – Richard

답변

1

"마지막 기록"에 대해 마지막으로 주문한 것을 의미하는 경우 "GET"과 같이 할 수 있다고 생각하지 않으면 행을 검색해야합니다. afaik가 할 수있는 최선의 방법은 기본 키에 따라 스캔 할 좋은 범위 (좋은 시작 키)를 선택하는 것입니다. . datastax 문서에서

: 프라이 머리 키를 기준으로

"정렬 된 파티션 프로그램을 사용하는 것은 주문 허용 스캔 이것은 당신이 기존의 색인을 통해 커서 를 이동하는 것처럼 당신이 행을 검색 할 수 있습니다 의미 예를 들어,. 응용 프로그램에 사용자 이름이 행 키로 있으면 Jake와 Joe간에 이라는 이름의 사용자 행을 검색 할 수 있습니다. MD5 해시 (순차적이지 않음). "

더 나은 해결책을 찾으면 알려주세요.

감사합니다, 당신은 강력하기 때문에 유지 보수의 ByteOrderedPartitioner를 사용하지 않는 것이 좋습니다 카를로

관련 문제