Когда использовать Кассандру против Солра в DSE?

Я использую DSE для интеграции Cassandra / Solr, так что данные хранятся в Cassandra и индексируются в Solr. Вполне естественно использовать Cassandra для обработки операций CRUD и использовать Solr для полнотекстового поиска соответственно, и DSE действительно может упростить синхронизацию данных между Cassandra и Solr.

Однако, когда дело доходит до запроса, на самом деле есть два пути: Cassandra вторичный / настроенный вручную индекс против Solr. Я хочу знать, когда использовать какой метод и какова разница в производительности в целом, особенно при настройке DSE.

Вот один пример использования моего проекта. У меня есть таблица Cassandra, в которой хранятся некоторые данные об объектах. Помимо базовой операции CRUD, мне также нужно извлечь элементы по равенству в некотором поле (скажем, категории), а затем отсортировать по некоторому порядку (в моем случае здесь поле like_count).

Я могу придумать три различных способа справиться с этим:

  1. Объявить «indexed = true» в схеме Solr как для категории, так и для поля like_count и выполнить запрос в Solr
  2. Создать денормализованная таблица в Cassandra с первичным ключом (категория, like_count, id)
  3. Создание денормализованной таблицы в Cassandra с первичным ключом (категория, порядок, id) и использование внешнего компонента, такого как Spark / Storm ,, для сортировки items by like_count

Первый метод представляется наиболее простым для реализации и поддержки. Я просто пишу какой-то тривиальный код доступа к Solr, а остальная тяжелая работа выполняется поиском Solr / DSE.

Второй метод требует ручной денормализации при создании и обновлении. Мне также нужно вести отдельную таблицу. Существует также проблема с надгробными плитами, так как like_count может часто обновляться. Хорошей частью является то, что чтение может быть быстрее (если нет чрезмерных надгробий).

Третий метод может облегчить проблему захоронения за счет одного дополнительного компонента для сортировки.

Какой метод вы считаете лучшим? Какая разница в производительности?

8
задан Ziju Feng 17 September 2014 в 07:19
поделиться