Pull to refresh

Как быстро установить и начать эксперементировать с Cassandra. Часть 2

Reading time 2 min
Views 4.2K
Это продолжение статьи «Как быстро установить и начать эксперементировать с Cassandra», опубликованной на хабре

Чего вы не можете делать в Cassandra, а хотели бы:
  • Индексирование, и поиск по… вообще почему-либо. Индексирование придется делать вручную. Отчасти может помочь проект Lucandra — Lucene для Cassandra
  • Вы не можете быстро (за О(1)) узнать общее количество записей
  • О транзакциях даже не думайте
  • Можно забыть о map reduce, по крайней мере, в ближайших версиях
  • Нет разграничений таблиц по пользователям (этого нет в текущей стабильной версии 0.51, в будущем будет)
  • Есть трудности в добавлении новых баз, для этого придется остановить Cassandra (обещают исправить в ближайших версиях)
  • Только простые запросы, например, чтобы получить 10 самых популярных блогов, придется потрудится
  • В irc мне крайне не рекомендовали хранить картинки в Cassandra

Rails


Для Rails есть cassandra_object аналог active_record. Он интересен тем, что сам строит индекс по некоторым полям, однако конфигурационный файл править придется вручную. Я разговаривал с разработчиками, есть планы делать это автоматически.

Тесты


Совет еще такой, если соберетесь использовать Cassandra, тестируйте абсолютно все, даже самые простые запросы.
После каждого теста придется отчищать базу данных, это можно сделать так:

class ActiveSupport::TestCase
  def teardown
    CassandraObject::Base.connection.clear_keyspace!
  end
end


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

Больше общеизвестных gem'ом (cassandra, cassandra_object) нет. Может быть, вам будут полезны мои наработки:
  • attribute_normalizer для Cassandra это форк attribute_normalizer для active_record. Тесты еще в процессе написания, но форк работает
  • Cassandra session store (пока не опубликовано)
  • Простая система авторизации. Это переделанный плагин clearence (пока не опубликована)
Tags:
Hubs:
+1
Comments 1
Comments Comments 1

Articles