2015-10-04 2 views
0

Я хотел бы перенести мой db, который в настоящее время находится на mysql, на C *. На данный момент у меня есть таблица, в которой мне трудно представить, как ее «перенести».рейтинг, где оценка - это функция времени

Сущность

  • Id
  • балл (ов)
  • hotscore

Где hotscore является F (S, d) = log10 + (s.t/45000). S - это оценка, а t - временная метка с эпохи.

По существу, я бы изучал запросы - это топ-20 этого объекта. С mysql и работой cron я обновляю hotscore каждую минуту. По этой причине горячий балл не подходит для ключа раздела. Я пытаюсь понять, могу ли я это сделать, прежде чем переходить к c *. Насколько я знаю, первичный ключ, такой как (id, hotscore), не был бы хорошим, потому что это означает, что C * должен проверять каждую запись.

ответ

1

Вы скоро сможете обработать этот прецедент с материализованными представлениями, когда выпущена Cassandra 3.0.

См. Пример заказа строк в материализованном виде here и here.

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

+0

Отлично! на боковой ноте, которую я сейчас читаю о ScyllaDB, которая утверждает, что является лучшей версией cassandra, в 10 раз быстрее, «plug-and-play». Вы знаете об этом? – Ced

+1

Я немного читал про ScyllaDB, и это звучит интересно. Я хотел попробовать, но, как ни странно, пока нет версии для Ubuntu. Я думаю, что 10-кратное число исходит из теста кластера с одним узлом, что похоже на странный тестовый пример. Им действительно нужно протестировать большие кластеры, чтобы сделать хорошее сравнение. Идея использовать C++ вместо java и очерчивать ядра процессора, похоже, может дать хорошее повышение производительности, но время покажет. На самом деле я больше заинтересован в полной поддержке SQL в C *, чем в более высокой производительности, но и высокая производительность всегда приветствуется. –

+0

@well сейчас – Ced

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