에 하나의 일괄 처리에서 여러 쿼리를 실행하는 방법 : 나는 큐 스파우트에서 카산드라에서 이러한 레코드를 생성 할 아파치 폭풍 볼트를 사용하고나는 아래와 같이 카산드라 테이블이 어떻게 카산드라
create table experience.userstats (stream varchar, user varchar, computer varchar, experience varchar, amount int, primary key (experience, stream, user, computer);
.
통계를 생성하고 주어진 스트림에 대한 다양한 경험에 대한 카운터를 원형 차트로 표시하려고합니다. 예를 들어, 30 % 만족, 40 % 혼합 및 30 % 만족하지 못한 경험.
온라인으로 카운터를 업데이트 할 수 없기 때문에이 데이터를 읽고 새 테이블에 카운터를 생성하기 위해 Clock 스파우트 (타이머)를 사용하고 있습니다. 그러나 Cassandra는 그룹 별 조항을 지원하지 않으므로 아래 에서처럼 각 경험에 대한 카운터를 얻으려면 세 번 읽어야합니다.
select count(*) from experience.userstats where experience='satisfied' and stream='xyz';
select count(*) from experience.userstats where experience='unsatisfied' and stream='xyz';
select count(*) from experience.userstats where experience='mixed' and stream='xyz';
이 접근 방식의 문제는 이러한 카운터가 일치하고 평균 시간으로 수정 될 수있는 경험과 경험의 3 가지 유형의 카운터를 얻기 위해 데이터베이스에 세 개의 쿼리를 실행해야한다는 것입니다.
단일 배치에서 위의 세 가지 SELECT 문을 실행할 수있는 방법이 있습니까? 또는 대체 설계 방법을 제안 해주십시오. 이 같은
IN 관계 연산자 을 사용할 수 있습니다
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/batch_r.html –
dml 아니오 만 지원합니까? – pavybez