2013-02-23 3 views
1

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

Текущая схема:

CREATE TABLE emails (
    email varchar, 
    comment varchar, 
    PRIMARY KEY (email)); 

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

ответ

0

Заказы Cassandra записываются на основе вашего компаратора столбцов. Вы не можете упорядочить результаты, используя любой произвольный столбец в вашем предикате. Если вы хотите получить во временном порядке, вы должны вставить свою метку в качестве имени столбца (или первого элемента в составном имени). Вы также можете создать второй CF, который будет хранить упорядоченные по времени записи, которые можно запросить, если необходимо. К сожалению, CQL создает иллюзию возможности запросов, подобных RDBMS, когда на самом деле это хранилище столбцов с соответствующими возможностями запросов. Мое предложение состоит в том, чтобы либо избегать CQL (и использовать запросы на основе Thrift), либо убедиться, что вы понимаете, что он делает под обложками.

1

PlayOrm on cassandra может делать такие вещи под обложками для вас, пока вы можете разбить свои данные, чтобы вы все еще могли масштабироваться. Вы можете запрашивать свои разделы. Заказ еще не существует, но вместо этого использовать трюк, чтобы использовать время> 0, чтобы получить все после эпохи 1970 года, которое заставляет его использовать индекс времени, а затем просто перемещать курсор назад для обратного порядка (или вперед для отсортированного порядка).

Смежные вопросы