2013-06-17 3 views
1

저는 최근에 Cassandra로 다이빙하고 있습니다. 그러나 열 및 데이터 유형을 미리 정의하는 데 대한 명시적인 문서 또는 아이디어는 없습니다. 열 패밀리에서 cassandra는 문서 지향 데이터베이스 (MongoDb)와 같은 동적 열 유형을 사용 가능하게합니다. 그러나 cql을 사용하면 해당 열 유형을 CREATE TABLE으로 미리 정의 할 수 있습니다.사전 정의 된 열 유형 및 cassandra의 장점

따라서 열 유형을 강요하면 잘못된 값인 & 삽입이 잘못 될 가능성이 줄어 듭니다.

미리 정의 된 열 유형을 수행하는 다른 장점이 있습니까? 예를 들어 미리 정의 된 수의 열과 해당 유형이 있으면 읽기 성능이 향상됩니까?

답변

3

스키마가 미리 정의되어 있으므로 새 행을 삽입하기 전에 스키마를 미리 변경해야합니다. ALTER을 사용하면 힙 메모리에 저장된 열에 의한 메모리 사용량 감소와 같은 이전에는 달성 할 수 없었던 많은 성능 향상이 가능합니다.

이 오버 헤드는 압축에 의해 디스크에서 감소하지만 메모리에서 수행 할 수 없습니다 (메모리 캐시 읽기가 디스크에서 읽기보다 빠르기 때문에 중요합니다). 이 의지 처리 :

  • 하는 메모리 사용
  • 을 줄이기 CPU 사용량
  • 을 줄이고 디스크 공간을 줄일를 사용

당신이 (개발자가 솔루션을 implent 것을 제안 방법을 포함) 전체 기술 정보를 원하는 경우 Apache Cassandra의 jira에있는 issue을 살펴보십시오.

그냥 메모 열을 추가하는 것은 (내가 CQL 열을 의미 명확성을 위해)가 필요합니다 사용 사례 그래서 정적 스키마도에 대해 생각하는 개발자를 강제 갖는 커버해야 카산드라가 지원하는 소장품 데이터 모델을 작성하고 올바르게 빌드하십시오.

난 당신이 jbellis , 그것은 정적 스키마가 시행 한 이유에 점의 대부분을 명확히한다 따라 모든 의견에 의해 this article를 읽고 조언한다.