2013-07-15 3 views
0

Я читаю документацию на сайте Datastax на http://www.datastax.com/documentation/cassandra/1.2/cassandra/cql_reference/create_table_r.html и я вижу: «При использовании составного ключа раздела, Cassandra обрабатывает столбцы вложенных скобок в качестве ключей разделов и . хранит столбцы ряд на более чем одном узле "ли Cassandra магазин Колонна из композитных ключей на разных узлах

пример, приведенный в: CREATE TABLE Кошки ( block_id UUID, порода текста, цвет текста, short_hair булево, ПЕРВИЧНЫЙ КЛЮЧ ((block_id, порода), цвет, short_hair) );

Я понимаю, как столбцы кластера (в данном случае, color и short_hair) работают в отношении того, как они фактически хранятся на диске как смежные «столбцы» для данной строки. То, что я не понимаю, это строка «... хранит столбцы строки на нескольких узлах». Это правильно?

Для данного block_id и породы этот комбинированный ключ не делает ключ раздела похожим на «block_id + breed», и в этом случае столбцы/кластеры будут в одной строке, физическое местоположение которых определяется ключ раздела (block_id + breed)?

Или существует какое-то расщепление в этой строке, потому что первичный ключ основан на двух полях?

EDIT: Я думаю, что ответ Ричарда ниже, вероятно, прав, но я также встретить это в документации Datastax для 1.2, который обеспечивает соблюдение первую цитату я отправил:

«составной ключ раздела - Магазины колонки строка на более чем одном узле с использованием ключей разделов, объявленных во вложенных круглых скобках определения таблицы PRIMARY KEY. "

Почему бы это сказать, используя множественную клавишу разделения * s * ... Поля, составляющие составной ключ, составляют, насколько мне известно, единственный ключ строки, и все они используются для создания ключа ,

Затем они говорят, что столбцы строки могут быть разделены, что для меня означает, что одна строка (с заданным ключом раздела) может иметь свои столбцы, разделенные на разных узлах, что будет означать поля составной ключ обрабатывается отдельно.

Все еще немного запутано в документации Datastax и действительно ли это правильно.

ответ

1

Я думаю, что это означает, что строки с одним и тем же block_id хранятся на разных узлах. Как вы говорите, ключ раздела похож на «block_id + breed», поэтому столбцы с одним и тем же block_id, но с разной породой, как правило, будут храниться на разных узлах. Но столбцы с тем же block_id и породой будут храниться на одном узле.

В основном узлы, которые хранят раздел, находятся только функцией ключа раздела. Является ли он составным или нет, ничто другое не может объединяться или разделять строки.

+0

Это то, что я подозревал, просто хотел убедиться. Вы говорите: «строки с одним и тем же block_id хранятся на разных узлах», но это действительно зависит только от (составного) раздела ключа, так что это может произойти, но не обязательно. Поправьте меня, если я ошибаюсь. Благодарим вас за ответ. – jyoung

Смежные вопросы