Cassandra에서 데이터 버전을 추적해야합니다. 나는 버전 #이 슈퍼 컬럼이 될 것이라고 생각하고, 엔티티 ID는 로우 ID가 될 것이고, 그런 다음 추적해야하는 컬럼은 컬럼이 될 것이다. 따라서, 예를 들어, 엔티티의 버전 1은 다음과 같습니다스키마에서 Supercolum의 적절한 사용
- supercolumn : V1
- ROWID : UUID
- 열 : 타임 스탬프, RequestID가, 사용자 ID, 상태, 데이터, 등 ...
, 가장 일반적인 요청
- 가 기록 y를 나에게 버전 X를 줄 것
- 레코드 y에 대해 버전 X - 1 및 X + 1 을 제공하십시오.
- 나에게 1
- 나에게 사용자 ID x로 변경된 모든 레코드를 제공 상태에있는 모든 행을 제공 : 덜 중요한
는 같은 쿼리가 될 것입니다.
- 타임 스탬프가 x와 y 사이에있는 모든 행을 제공합니다.
위의 접근 방식은 수퍼 컬럼을 사용하는 것이 가장 좋습니다. 위의 방법을 수행하는 데 더 좋은 스키마가 있습니다. 내가 알고 있어야하는 수퍼 컬럼을 사용하거나 질의하는 것에 관한주의 사항이 있습니까?
와우, 나는 질문에 기뻐. 내가 이미 설명했듯이 앞서 나가 코딩했다. 그래서 합성물 본질적으로 rowid (내 rowid 될 UUID : 버전)? 또는 합성 "열 이름"및 각 열, 예를 들어, requestid : version, userid : version, state : version, data : version 등이 될 것입니까? – AlexGad
합성 키 또는 열을 사용할 수 있습니다. 귀하의 경우에는 UUID : version이 포함 된 복합 키가 귀하의 유스 케이스를 만족시키는 것으로 보입니다. –