Мощность X — это не что иное, как количество элементов, составляющих X. В Cassandra мощность ключа раздела очень важна для разделения данных.
Поскольку ключ секции отвечает за распределение данных по кластеру, выбор ключа с низкой кардинальностью может привести к тому, что ваши данные не будут распределены.
Представьте, что у вас есть кластер из 20 узлов, в которых хранятся комментарии — RF равен 2. У каждого комментария есть собственный голос от 1 до 5. Теперь, поскольку вы хотите легко получать комментарии по голосам, у вас может возникнуть соблазн выбрать голосование в качестве ключа раздела.
CREATE TABLE comments(vote int, content text, id uuid, PRIMARY KEY(vote, id));
В этой ситуации единственным ключом, отвечающим за распределение данных, является голосование, которое имеет очень низкую кардинальность, так как может содержать только 5 значений (1,2,3,4,5). Это означает, что в наилучшем случае 5 разных узлов будут владельцами 5 разных разделов (которые являются "всеми комментариями с 1 голосом" ... "всеми комментариями с 5 голосами"), и Опять же, в лучшем ситуации с RF, равным 2, ваши данные будут храниться на 10 разных узлах. Как видите, у вас есть кластер из 20 узлов, который в лучшем случае используется не более чем на 50%.
Распределение данных очень важно, поэтому краткость ключа раздела имеет большое значение.
ХТХ, Карло
person
Carlo Bertuccini
schedule
03.08.2014