2012-01-03 2 views
6

Hector 클라이언트를 사용하여 Cassandra 행의 총 열 수를 계산하고 싶습니다. 현재 나는 CountQuery으로이 작업을 수행하고 있지만 실제로는 느립니다. 또한 행의 경우 60k 열만 있으면 거의 2 초가 걸립니다. 내 코드는 현재 다음과 같습니다hector를 사용하여 cassandra 행의 총 열 개수를 더 빠르게 계산하는 방법

QueryResult<Integer> qr = HFactory.createCountQuery(ksp, se, se). 
    setColumnFamily("ColumnFamily1"). 
    setKey("RowKey"). 
    setRange(null, null, 1000000000).execute(); 

PS를 : 나는 그런 높은 숫자의 범위를 설정해야합니다, 그렇지 않으면 나만 최대 계산합니다. 범위 내에서 제공 한 번호로

어떻게 개선 할 수 있습니까?

답변

8

카산드라의 계수 열은 본질적으로 느립니다. 카산드라는 카운트를 반환하기 위해 전체 행을 반복해야합니다.

아마 카운트를 비정규 화하려고 할 것입니다. 삽입 할 때마다 업데이트하는 카운터 열을 사용할 수 있습니다.

+0

감사합니다. 전체 행을 반복해야한다는 것을 알지 못했습니다. – High6

+0

지난 4 년 동안 변경 되었습니까? 지금은 cassandra가 메타 데이터를 유지하고 모든 열을 반복하는 열의 수를 빠르게 반환 할 수 있습니까? – Peter

+0

이 항목은 변경되지 않았습니다. 주된 이유는 해당 정보를 추적하면 쓰기 경로가 느려지 게됩니다. – psanford

관련 문제