데이터 중복 제거를 수행하는 ETL 작업 중에 카산드라를 중간 저장소로 고려하고 있습니다.카산드라의 각 파티션 키에 대한 첫 번째 행 가져 오기
이벤트 스트림이 있고 각각 비즈니스 엔티티 ID, 타임 스탬프 및 일부 값이 있다고 가정 해 보겠습니다. 각 비즈니스 키의 인 - 이벤트 타임 스탬프와 관련하여 최신 값만 가져와야하지만, 이벤트는 정렬되지 않을 수 있습니다. 내가 어떤 주어진 파티션에 대한 최신 가치를 얻을 수있는이 테이블의 일부 데이터를 삽입하는 경우 지금
CREATE TABLE sample_keyspace.table1_copy1 (
id uuid,
time timestamp,
value text,
PRIMARY KEY (id, time)
) WITH CLUSTERING ORDER BY (time DESC)
:
내 생각은 클러스터링 키와 파티션 키와 타임 스탬프로 비즈니스 ID로 스테이징 테이블을 만드는 것이 었습니다 키.
select * from table1 where id = 96b29b4b-b60b-4be9-9fa3-efa903511f2d limit 1;
하지만 그건 내가 관심이있는 모든 비즈니스 키 같은 쿼리를 실행하기 위해 필요
내가 할 수있는 몇 가지 효과적인 방법이 있나요 CQL에서?우리는 사용 가능한 모든 파티션 키를 나열 할 수있는 기능을 알고 있습니다 (select distinct id from table1
). 따라서 카산드라의 스토리지 모델을 살펴보면 각 파티션 키의 첫 번째 행을 얻는 것이 너무 어렵지 않아야합니다.
지원되는가요?