2010-11-25 1 views
3

Я новичок в Cassandra. Я не понимаю, как обновить конкретный столбец в Cassandra, относящийся к определенному пользователю.Как обновить колонку в Cassandra

Например, я хочу обновить местоположение пользователя в семействе столбцов пользователя.

+2

эта информация является недостаточной. Что вы прочитали, что вы пробовали, какова ваша структура и т. Д.? – Bozho 2010-11-25 09:38:39

ответ

1

Если вы следуете API бережливости, нет никакой разницы между обновлением и вставкой. Это тот же вызов API.

1

Нет никакой разницы между вставкой/обновлением в кассандре (как сказал Пранаб).

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

Если вы сделали две вставки

[псевдо-код]

insert('user-123', {'name': 'bob', 'email': '[email protected]'}) 
insert('user-123', {'location': 'nowheresville'} 

[/ псевдокод]

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

row-key: 'user-123' 
row-value: {'name': 'bob', 'email': '[email protected]', 
      'location': 'nowheresville'} 

Это должно ответить на ваш вопрос, но еще одно примечание строк/столбцов в кассандре. Поскольку в строке нет мест блокировок, вы должны быть осторожны, чтобы разбить ваши данные как это. Если бы два человека сохраняли «user-123» одновременно с тем, что думаю, что, возможно, есть строка, которая вдвое меньше, чем вы хотели, и половину того, что нужно для другого вложения данных.

Из-за этого, как правило, лучше сохранить все данные пользователя в одной ячейке (сериализованной).

альтернативная структура для этих данных может быть:

row-key: 'nowheresville' 
row-value: {'bob-123': serialized-bob-data} 
serialized-bob-data: {'name': 'bob', 'email': '[email protected]'}