2015-08-15 6 views
0

Прежде всего, я прошу вас, пожалуйста, нести меня, и я приношу свои извинения, если это глупый вопрос.Реализация стопки как таблица с Cassandra (CQL 3)

У меня есть такой стол.

create table users (
cname text, 
--anything else like counter or timestamp 
primary key (cname) 
); 

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

Будет проведен ряд операций вставки и удаления.

проблемы:

1) Я попытался с помощью меток времени. Я успешно вставил с помощью dateof(now()), но Я просто хотел удалить последнюю 1 запись (???). Кроме того, сделав cname,t (где t имеет тип timestamp) в качестве первичного ключа, у меня есть резервные имена, которых я не хочу.

2) Я пробовал использовать counter, но я чувствовал, что это сложно. Кроме того, у меня может быть несколько потоков или клиентов, выполняющих операции вставки/удаления. Итак, я подумал, что оставим это.

3) Кроме того, я не буду знать значение cname. Таким образом, запросы, требующие нажатия клавиши в пункте where, невозможны. Поэтому я думаю, что мне нужно изменить первичный ключ на какую-то другую переменную.

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

ответ

0

Стеки и очереди представляют собой антипаттеры в кассандре (http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets) - вы можете их реализовать, но вам нужно хорошо понять внутренности, прежде чем вы сможете это сделать, не совершив ужасную ошибку. Довольно ясно, что вы, вероятно, еще не на этом уровне.

Есть ли причина, по которой, по вашему мнению, вам нужно использовать cassandra для стека?

Да, первая часть вашего первичного ключа (известная как ваш ключ раздела) должна быть чем-то, что вы знаете, поэтому, если вы не знаете cname, это, вероятно, не очень подходит для вашего первичного ключа. Что вы знаете о шаблонах данных/использования? Может быть, ведра времени?

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