Обновить один столбец в cassandra

У меня есть следующее семейство столбцов cassandra:

create column family cfn
 with comparator = UTF8Type
 and key_validation_class = UUIDType
 and column_metadata =[
      {column_name:email, validation_class: UTF8Type,index_type: KEYS}
      {column_name:full_name, validation_class: UTF8Type}
 ];

Я хочу обновить «полное имя» данного «электронной почты», но я не знаю ключ строки, у меня есть только «электронная почта». Как я могу сделать это, используя hector thrift api?

Я знаю, что мне придется вставить новый столбец, так как в cassandra нет обновлений. Нужно ли будет получать ключ строки перед вставкой нового столбца для той же строки?


person Manish Kumar    schedule 02.05.2013    source источник


Ответы (1)


Вставка с помощью cassandra-cli или hector — это самое простое. Возможно, вам нужно почистить репозиторий Cassandra Прочитайте это.

Попробуйте это с помощью cli

SET cfn[RowKey]['full_name']='XYZ'; 
/*
 *Remember you have mentioned your key as UUID Type. So while providing a Rowkey it should   
 *be in UUID type only. e.g  8aff3820-1e55-11b2-a248-41825ac3edd8
 */
SET cfn[RowKey]['email']='[email protected]';

Получить данные,

list cfn;
person abhi    schedule 02.05.2013
comment
можете ли вы поделиться describe #KeyspaceName выходными данными из оболочки cqlsh? - person abhi; 03.05.2013
comment
К вашему сведению, когда вы создаете семейство столбцов из cli, по умолчанию имя rowkey имеет тип key типа uuid. - person abhi; 03.05.2013
comment
Представьте веб-приложение. Будет ли безопасным вариантом отправить ключ строки в ответе. Изменение БД может быть опасным. я прав - person Manish Kumar; 04.05.2013
comment
Не всегда обязательно. Хотя, если вы не хотите этого несоответствия, попробуйте создать семейство столбцов из любого клиентского API cassandra или оболочки cql. - person abhi; 04.05.2013