Данные Cassandra Supercolumn из одного раздела или нескольких?
-
27-10-2019 - |
Вопрос
Предположим, что у меня есть СУПЕРКОЛЕМНАЯ СЕМЬЯ. Также предположим, что у меня есть несколько разделов, работающих на разных экземплярах машины. Мои данные о семье суперколономов выглядят как следующее (для одного ряда)
RowKey: 4818d991-9df5-4899-aa07-461f4ed19996
=> (super_column=4dddb83e-4096-428d-8d1b-8b0235ae772f,
(column=1322847333862, value=, timestamp=1322847333863001)
(column=1322847637237, value=, timestamp=1322847637237000)
(column=1322847837206, value=, timestamp=1322847837206001)
(column=1322848197819, value=, timestamp=1322848197819000))
Теперь мне интересно, если я сделаю запрос против семейства Supercolumn для возврата данных/подколонов для {ряд, Super_column}, будут ли все значения тех подколомов, возвращающихся с одной машины или другой машины? По сути, это вопрос - это разбиение происходит на уровне строк, уровня Super_column или подколонного уровня? А также, даже вернувшись с одной машины, будет ли возвращен порядок каждой подколомы, как и то, что показано выше?
Решение
Разделение выполняется на уровне строк, то есть вся строка хранится на одной машине (возможно, с копиями на других машинах, в зависимости от коэффициента репликации).
Субколины хранятся в сортированном порядке в соответствии с именами столбцов - супер столбец может указать компаратор как на имени супер столбца, так и на подколомы. Видеть http://www.datastax.com/docs/0.8/ddl/column_family