2017-03-08 11 views
0
I는 다음과 같이 말과 글에서의 주파수가 저장되는 반전 된 인덱스를 저장하기 위해 카산드라를 사용할 필요가

이 역 색인을 저장하려면 Cassandra 노드 수 = 2입니다. 단어의 첫 번째 문자를 Partition 키 또는 단어 자체로 사용하는 것이 더 낫습니까? 기본 키는 어떻게됩니까?카산드라 파티션 및 클러스터 키

+0

표가 제공 될 쿼리를 모른 채 말하기가 어렵습니다. – Aaron

+0

쿼리는 다음과 같습니다. select * from inverted_index 어느 단어가 들어 있는지 (word1, word2, ...); –

+0

sasi 색인을 보셨습니까? –

답변

0

TL : 귀하의 검색어에 관해서는, 나는 분명히 그 단어를 파티션 키로 사용한다고 말할 것입니다.

첫 번째 문자 만 사용하는 경우 26 개의 파티션 만 사용하게됩니다. 너는 그걸 원하지 않는다. 만약에 다른 것이 있다면, 너는 뜨겁게 물들게 될 것이다. 특정 문자로 시작하는 단어가 많이 없기 때문에 일부 행이 매우 짧을 수 있으며, 다른 행은 매우 길거나 어쩌면 사용하기에 좋은 지점을 넘어 서기도합니다. 예, 카산드라는 행당 20 억 개의 열을 보유하고 있지만 행의 크기를 수백만 개로 유지하는 것이 좋습니다. 'AIRPORT'만 원할 경우 'A'로 시작하는 모든 단어에 액세스하고 싶지 않습니다.

행이 클러스터 전체에 쉽게 분산 될 수 있도록 높은 카디널리티를 가능한 한 무작위로 분할 키가 필요합니다. 반면에 귀하의 액세스 패턴을 반영해야합니다. 귀하의 경우 단어 또는 단어 집합에 대한 통계를 보지 않을 것입니다. 파티션/기본 액세스는 기본적으로 카산드라와 마찬가지로 빠릅니다.

클러스터링 키는 다소 명백합니다. 기사 제목을 사용할 수 있습니다. 또는 실제로 클러스터 키와 같은 기사 식별자 (UUID 등)를 사용합니다. 기사 제목이 변경 될 수 있으며 (오타가?), 제목을 변경하는 모든 행을 반복하고 싶지는 않습니다.