Как реализовать фиксированное количество (timeuuid) столбцов в Кассандре (с CQL)? - PullRequest
2 голосов
/ 02 марта 2012

Вот пример использования:

Вам необходимо сохранить последние N (скажем, 1000 как фиксированный размер сегмента) действий пользователя со всеми подробностями в столбцах на основе timeuuid.

Обычно действия каждого пользователя уже находятся в семействе столбцов «UserAction», где идентификатор пользователя является ключом строки, а действия - в столбцах timeuuid. У вас также может быть семейство столбцов «AllActions», в котором все действия с одинаковым значением timeuuid сохраняются в качестве имени столбца, а идентификатор пользователя - в качестве значения столбца. Это в основном семейство столбцов отношений, но, к сожалению, без каких-либо подробностей действий пользователя. Запросы с этим семейством столбцов, я думаю, из-за случайного разделителя. С другой стороны, если вы храните все детали в CF «AllActions», то cassandra не сможет правильно обработать этот большой ряд в одной точке. Вот почему я хочу сохранить последние N пользовательских действий со всеми деталями в фиксированном количестве столбцов на основе timeuuid.

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

Если нет, то вопрос в том, как эффективно реализовать фиксированное количество (timeuuid) столбцов в cassandra (с CQL)?

После вставки мы могли бы удалить старые (переполненные) столбцы, если бы у нас была какая-то поддержка диапазона в DELETE cql. AFAIK нет поддержки для этого.

Итак, есть идеи? Заранее спасибо ...

1 Ответ

2 голосов
/ 03 марта 2012

ИМХО, это то, что C * должен обрабатывать сам, как сжатие.Это не очень хорошая идея, чтобы справиться с этим на стороне клиента.

Возможно, нам нужны некоторые параметры конфигурации (хранилища) для семейств столбцов, чтобы они подходили для «самых последних данных».

...