저는 cassandra에서 현재 SQL 데이터를 모델링 할 수있는 방법을 알고 싶어하는 cassandra 초보자입니다. 데이터베이스는 다른 데이터 호스트 중 document_id, last_modified_time, size_in_bytes를 포함하는 문서 메타 데이터를 저장하며 문서 수는 임의로 커질 수 있으므로 저장 및 쿼리를위한 확장 가능한 솔루션을 찾고 있습니다. 2 범위의 요구카산드라 데이터 모델
- 모든 문서를 선택하는 쿼리가
여기서 last_modified_time이> = X 및 last_modified_time이
- 모든 문서를 선택 여기서 크기> = X 크기 < = Y
또한 특정 메타 데이터별로 그룹화해야하는 쿼리 집합
- 모든 문서를 선택한 경우 (X, Y, Z)
이 쿼리를 기반으로 데이터 모델을 설계하는 가장 좋은 방법은 무엇입니까에서 사용자?
내 초기 생각은
테이블 t_document ( 가 document_ID의 BIGINT를 만들
,last_mod_time BIGINT, 크기 BIGINT를 다음과 같이 보조 인덱스로 last_mod_time와 (카산드라 2.0, CQL 3.0) 테이블을 가지고있다, 사용자 텍스트, .... 기본 키 (document_ID 아, last_mod_time) 은}
이 쿼리의주의를 기울여야한다 1.
쿼리 2의 기본 키가 (document_id, size) 인 다른 테이블을 생성해야합니까? 아니면 같은 테이블의 기본 키에 세 번째 항목으로 크기를 추가 할 수 있습니까? (document_id, last_mod_time, size). 하지만이 경우 두 번째 쿼리는 where 절에서 last_mod_time을 사용하지 않고 작동하게됩니까?
하나 이상의 사용자에 대한 모든 문서 인 쿼리 3의 경우 기본 키가 (user, doc_id) 인 t_user_doc 테이블을 만드는 것이 가장 좋습니다. 또는 더 나은 접근법은 동일한 t_document 테이블에서 사용자에 대한 2 차 인덱스를 만드는 것입니다.
도움 주셔서 감사합니다.