Почему кластеризованный ключ называется "ключ кластеризации" в кассандре?

Jinnah спросил: 11 июня 2018 в 11:04 в: cassandra

Таблица 1:

create table mylistofitems (listid int, 
  itemid int, 
  quantity int, 
  itemdesc text, 
  primary key ((listid, itemid), itemdesc));

В приведенной выше таблице я делаю следующие вставки:

insert into mylistofitems (listid, itemid, itemdesc, quantity) values (1, 1000, 'apple', 5);
insert into mylistofitems (listid, itemid, itemdesc, quantity) values (1, 1000, 'banana', 10);
insert into mylistofitems (listid, itemid, itemdesc, quantity) values (1, 1000, 'orange', 6);
insert into mylistofitems (listid, itemid, itemdesc, quantity) values (1, 1000, 'orange', 50);

, когда я выбираю из mylistofitems, я получаю следующее:

 listid | itemid | itemdesc | quantity
--------+--------+----------+----------
      1 |   1000 |    apple |        5
      1 |   1000 |   banana |       10
      1 |   1000 |   orange |       50

Второй оператор вставки НЕ перезаписывал 1-ю строку. Но четвертый оператор вставки перезаписал третью строку.

В этом контексте в чем смысл ключа кластеризации?

Таблица 2:

create table myitems (listid int,
  itemid int, 
  idesc text, 
  qty int,
  primary key (listid, itemid));

Я вставляю следующие записи в таблицу-2:

insert into myitems (listid, itemid, idesc, qty) values (1, 1000,
'apple', 5);
insert into myitems (listid, itemid, idesc, qty) values (1, 1000, 'banana', 10);
insert into myitems (listid, itemid, idesc, qty) values (1, 1000, 'orange', 6);
insert into myitems (listid, itemid, idesc, qty) values (1, 1000, 'orange', 50);

Вставка запросов в таблице-2 точно такая же, как в таблице-1. Но когда я выбираю из myitems, я с удивлением вижу только одну строку, которая была вставлена ​​последней. Остальные все строки теряются. т.е. каждый оператор insert перезаписал предыдущую запись.

 listid | itemid | idesc  | qty
--------+--------+--------+-----
      1 |   1000 | orange |  50

Вопрос: Почему это ведет себя по-другому в таблице-2 по сравнению с таблицей-1? В чем смысл ключа кластеризации в этом контексте? Почему ключ кластеризации был назван "Кластером кластеризации". Имеет ли это какое-либо отношение к кластеру cassandra?

Вопрос об обновлении: Я попытался сделать обновление в таблице-1:

update mylistofitems set quantity = 100 where listid = 1 and itemid = 1000;

Это говорит о ошибке 2200, какой-то кластерный ключ отсутствует. Почему это ограничено?

0 ответов