Гектор Кассандра Поиск данных - PullRequest
3 голосов
/ 22 февраля 2012

Есть ли способ получить все данные из семейства столбцов или из ключевого пространства?

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

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

Но тогда как мне их вернуть?Я должен следить за каждым идентификатором, и это не может сработать.

Любая помощь / идеи будут оценены.

Ответы [ 2 ]

4 голосов
/ 26 февраля 2012

Ответ, который я искал, - это CQL, язык запросов Кассандры.Он работает так же, как sql, который мне нужен для функции im после.

эта ссылка имеет несколько отличных учебных пособий.

4 голосов
/ 23 февраля 2012

Вы можете извлечь все данные из семейства столбцов, используя get_range_slices, установив одинаковые значения начала и конца диапазона, чтобы указать, что вам нужны все данные.

Еще не нашли удобный пример Гектора, но я думаю, что он использует RangeSlicesQuery ...

Однако неясно, почему вы хотите это сделать - для такого рода приложений вы обычно просматриваете сообщения по идентификатору и используете индекс, чтобы определить, какие идентификаторы вам нужны.Например, сохранение строки для каждого пользователя, в которой перечислены все его сообщения.Например, в семействе столбцов сообщений у вас может быть что-то вроде:

MsgID0001 -> time     text
             1234567  Hello world
MsgID0300 -> time     text
             3456789  LOL ROTFL 

А затем в семействе столбцов «user2msg» сохраните сообщения, возможно, используя имена столбцов отметок времени, чтобы сообщения сохранялись в отсортированном по времениorder:

UserID001 -> 1234567   3456789  
             MsgID0001 MsgID0300

Затем его можно использовать для поиска сообщений конкретного пользователя, возможно, отфильтрованных по времени.

Затем вам также понадобятся дополнительные семейства столбцов для хранения профилей пользователей и т. д.

Возможно, вам нужно добавить больше деталей к вашему вопросу?

Обновить в ответ на комментарий: Да, если у вас есть одно сообщение в строке, вам нужно получить каждоесообщение индивидуально.Но какая у вас альтернатива?Получение всех сообщений полезно только для пакетной обработки сообщений, а не для (например) показа пользователю их последних сообщений.Имейте в виду, что получение всех сообщений может занять очень много времени - вы не объяснили, почему вы хотите получить все сообщения и что вы собираетесь делать со всеми ними.Сколько сообщений вы ожидаете иметь?

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

...