무슨 것 압축 전략 수행을 위한 더 나은 범위에 대한 쿼리를된 열이

StackOverflow https://stackoverflow.com//questions/25058693

  •  21-12-2019
  •  | 
  •  

문제

나는 카산드라이블

CREATE TABLE schema1 (
  key bigint,
  lowerbound bigint,
 upperbound bigint,
 data blob,
  PRIMARY KEY (key, lowerbound,upperbound)
) WITH COMPACT STORAGE ;

내가 원하는 범위를 수행하기 위해 쿼리를 사용하여 CQL

Select lowerbound, upperbound from schema1 where key=(some key) and  lowerbound<=123 order by lowerbound desc limit 1 allow filtering; 

어떤 Suggsetion 주시기 바랍에 대한 압축 전략
주 제:읽기 쓰기 비율이 1:1

도움이 되었습니까?

해결책

레벨링 된 압축은 SSTables가 쿼리에 적은 SStables가 중요하지만 추가 IO가 필요합니다.또한 압축하는 동안 데이터보다 10 % 더 많은 디스크를 사용하는 동안 크기 계층화 된 압축의 경우 두 배가 필요합니다.당신의 설치, 쿼리 등에 더 좋습니다. 성능 문제가 발생합니까?그렇지 않은 경우, IO를 추가로 처리 할 수 있다면, 나는 그것이 균등하게 선택할 수 있듯이, 나는 압축을위한 디스크 공간 측면에서 헤드 룸의 50 + %를 유지할 필요가 없다는 것을 의미한다.그러나 다시, "하나의 올바른 방법"이 없습니다.

이 다음을 읽을 수 있습니다. http://www.datastax.com/dev/blog/leveled.-compaction-in-apache-cassandra

다른 팁

크기 계층 압축은 기본,그리고 적절해야하는 대부분의 사용 사례입니다.2012 년에 DataStax 게시하는 제목의 기사 을 사용하는 경우 수평 압축, 에서는 그 지정된 세 가지(메인)조건에 대한 수평 압축은 좋은 생각이었:

  1. 높은 감도를 대기 시간(쿼리를 필요를 충족하는 대기 시간 SLA99 백분위).
  2. 높은 읽기/쓰기 비율
  3. 행은 자주 업데이트

그것은 또한 식별하는 세 가지 시나리오의 경우는 수평 압축은 좋은 생각이 아닙:

  1. 귀하의 디스크를 처리할 수 없습니다 압축 I/O
  2. 쓰고 무거운 작업
  3. 행 Write-Once

참고 어떻게 아무도의 여섯 가지 시나리오 나는 위에서 언급된 특정 범위는 쿼리를 처리합니다.

나의 질문은"어떤 문제를 해결하려는?" 당신이 언급한"수행하는 더 나은,"그러나 내가 찾는 쿼리 성능 문제가 될 경향이 많이 있음을 데이터 모델을 디자인합니다.스위칭 압축 전략을 돕기 위하여 려고 하고 있지 않은 경우에 당신은 실로 비효율적인 기본 핵심 전략입니다.의 미덕으로는 사실을 쿼리를 필요 ALLOW FILTERING, 을 변경하는 압축전략을 돕기 위하여 려고 하고 있지 않다.

DataStax 문서 포함된 섹션 슬라이스 이 파티션 행, 나타나는 것이 다소 비슷한 쿼리가 있습니다.그것을 보면 그것은 도움이됩니다.

행이 자주 업데이트되면
DataSatx 기사에서 컬럼이 자주 겹쳐 쓰이는 스키니 행을 다루는 경우 ( "마지막 액세스"타임 스탬프) 또는 새 열이 끊임없이 추가되는 넓은 행, 크기 피곤한 압축으로 행을 업데이트 할 때여러 SStables에서 전파됩니다.반면에 레벨링 된 압축은 빈번한 행 업데이트가있는 경우에도 행이 매우 낮게 펼쳐지는 SStables 수를 유지합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top