2013-07-25 1 views
0

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

data| time 
1| 22-6-2013 
2| 21-5-2013 
3| 20-4-2013 
  • Как я мог бы сделать то же самое в Кассандре?

Один из способов я мог думать о том, пути создания объекта с первичным индексом (не используется UUID), глядя, как этот 20-4-2013, а затем буквально искать через каждую дату, начиная с, например 22-6-2013 (самым высоким) пока я не найду объект или строку.

  • Есть ли другой способ сделать это?

ответ

0

Вы могли бы создать «CompositeKey» таблицы в виде:

CREATE TABLE timetable(
unique_id varchar, 
time timestamp, 
other_data varchar, 
PRIMARY KEY (unique_id, time) 
); 

Затем вы можете использовать следующий запрос:

выберите * от заказа расписания по времени по алфавиту;

или

выберите * время от расписания> '2012-11-24' заказ по времени по алфавиту;

Вы также можете заказать «господствующий» просто изменить «DESC» в «ИСС» ...

+0

cql3, вы можете написать его запуска: «cqlsh --cql3» (вы можете найти его в «бункере «каталог распределения кассандры), вы можете« СОЗДАТЬ »« расписание »и делать запросы. Не знаете, как вы используете Cassandra ... Кроме того, не уверен, что (CompositeKeys) поддерживаются на Cassandra 0.7, вероятно, вам также следует использовать более новую версию. – emgsilva