Cassandra(CQL 사용)에서 고정된 수의 (timeuuid) 열을 구현하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/9525579

  •  15-11-2019
  •  | 
  •  

문제

사용 사례의 예는 다음과 같습니다.

timeuuid 기반 열의 모든 세부 정보와 함께 마지막 N(고정 버킷 크기로 1000이라고 가정) 사용자 작업을 저장해야 합니다.

일반적으로 각 사용자의 작업은 사용자 ID가 행 키인 "UserAction" 열 계열에 이미 있고 작업은 timeuuid 열에 있습니다.열 이름과 동일한 timeuuid 및 열 값으로 사용자 ID를 갖는 모든 작업을 저장하는 "AllActions" 열 계열이 있을 수도 있습니다.기본적으로 관계 열 계열이지만 안타깝게도 사용자 작업에 대한 세부정보가 없습니다.이 컬럼 패밀리를 사용하여 쿼리하는 것은 무작위 파티셔너 때문에 비용이 많이 드는 것 같습니다.반면에 "AllActions" CF에 모든 세부 정보를 저장하면 cassandra는 한 지점에서 해당 큰 행을 제대로 처리할 수 없습니다.이것이 바로 고정된 수의 timeuuid 기반 열에 모든 세부 정보와 함께 마지막 N개의 사용자 작업을 저장하려는 이유입니다.

어쩌면 이 사용 사례에 더 나은 디자인 솔루션이 있을 수도 있습니다.나는 그 말을 듣는 것을 좋아합니다 ...

그렇지 않은 경우 문제는 Cassandra(CQL 사용)에서 고정된 수의 (timeuuid) 열을 효과적으로 구현하는 방법입니다.

삽입 후 cql의 DELETE에서 일종의 범위 지원이 있는 경우 이전(오버플로) 열을 삭제할 수 있습니다.AFAIK는 이에 대한 지원이 없습니다.

그럼 어떤 생각이 드나요?미리 감사드립니다...

도움이 되었습니까?

해결책

IMHO, 이것은 C*가 압축처럼 자체적으로 처리해야 하는 것입니다.클라이언트 측에서 이를 처리하는 것은 좋은 생각이 아닙니다.

어쩌면 "최신 데이터"에 적합하게 만들기 위해 컬럼 패밀리에 대한 일부 구성(저장) 옵션이 필요할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top