Как обновить колонку в Кассандре - PullRequest
3 голосов
/ 25 ноября 2010

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

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

Ответы [ 2 ]

1 голос
/ 13 августа 2011

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

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

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

[псевдокод]

insert('user-123', {'name': 'bob', 'email': 'bob@example.com'})
insert('user-123', {'location': 'nowheresville'}

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

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

row-key: 'user-123'
row-value: {'name': 'bob', 'email': 'bob@example.com',
            'location': 'nowheresville'}

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

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

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

row-key: 'nowheresville'
row-value: {'bob-123': serialized-bob-data}
serialized-bob-data: {'name': 'bob', 'email': 'bob@example.com'} 
1 голос
/ 11 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...