Как работает Stratio Lucene Index для Кассандры

Я только начал изучать Stratio, но у меня есть несколько основных вопросов, из-за которых я запутался:

  • Я слышал, что использование вторичных индексов в Cassandra не внушаемо, но похоже, что Stratio - реализация вторичного индекса Cassandra на основе Lucene. Нужно ли ставить под угрозу производительность Кассандры, если я использую Stratio? Будет ли задержка для обычных запросов CQL?

  • Как это внутренне индексирует данные? Будет ли это дублировать все мои существующие данные?

  • Можно ли использовать Stratio в производстве? Насколько это стабильно?

  • Для того, чтобы запрашивать не разделенные или не кластеризованные ключи, мы можем добиться этого путем создания вторичных индексов. Даже используя Stratio, я чувствую, что мы делаем то же самое. Чем пользовательский индекс Stratio действительно отличается от вторичного индекса Cassandras?

1 ответ

Я слышал, что использование вторичных индексов в Кассандре не внушаемо предположить, но похоже, что Stratio - реализация вторичного индекса Кассандры на основе lucene. Нужно ли ставить под угрозу производительность кассандры, если я использую стратификацию? Будет ли задержка для обычных запросов cql?

Индекс Cassandra Lucene от Stratio является еще одной реализацией вторичных индексов Cassandra. Снижение производительности из-за индексации, вероятно, будет не хуже, если использовать Stratio Cassandra Lucene Index. Преимущество, которое я вижу, состоит в том, что благодаря решению Stratio вы получите Lucene практически в реальном времени с возможностью свободного поиска текста по сравнению с решением индексации Cassandra по умолчанию, основанным на точном совпадении полей. Узнайте больше здесь о производительности Кассандра Люцена и здесь Индекс Кассандры Люсена Стратио GitHub

Как это внутренне индексирует данные? Будет ли это дублировать все мои существующие данные?

Индекс по определению не будет дублировать данные. Индекс является своего рода обратным поиском. Различные поля индексируются с указателем на фактические записи. (например, указатель разных терминов в конце книги). Поэтому, если в ваших записях есть поле, в котором хранится "страна происхождения", скажите, что для 50% ваших записей будет указана эта страна США, а остальные 50% - Канада. В индексе США будут храниться только один раз, а Канада - один раз со ссылками на половину записей каждая. Это означает, что чем больше будут отличаться индексированные поля, тем больше места потребуется для хранения данных. Здесь также Lucene хорошо решает поиск в свободном тексте, разбивая текст на разные слова и применяя механизм подсчета количества каждого слова в разных текстах. Подробнее здесь: Полнотекстовый поиск диалогов с помощью Apache Lucene: учебное пособие Основные понятия Lucene

Можно ли использовать Stratio на уровне производства, насколько он стабилен?

Трудно ответить на это. Это сильно зависит от того, что и как вы собираетесь использовать в производстве. Я бы посоветовал вам пойти на доказательство концепции / прототипа и попробовать его.

Для того, чтобы запросить не разделенные или не кластеризованные ключи, мы можем добиться этого путем создания вторичных индексов. Даже используя Stratio, я чувствую, что мы делаем то же самое. Чем пользовательский индекс Stratios действительно отличается от вторичного индекса Cassandras?

Как упоминалось выше, Lucene хорош в свободном текстовом поиске, у него множество различных типов запросов, он быстр и гибок. С другой стороны, если ваши требования к поиску ограничены несколькими полями точного соответствия, тогда вам следует выбрать стандартное решение для индекса Cassandra.

Удачи тео

Мы использовали плагин Stratio Cassandra Lucene в производстве в течение последних 2 лет. Его производительность падает так же, как и при использовании любых других вторичных индексов с Cassandra. Для случаев, когда требуются небольшие задержки ( < 100 мс), мы использовали наши собственные настраиваемые таблицы, действующие как индексы, чтобы использовать быстрый поиск по первичному ключу для удовлетворения требований к производительности. Мы используем только индексы на основе Stratio для запросов, которые не требуют быстрого ответа (например, поиск на основе пользователей / пользовательского интерфейса).

Я заметил, что проект Stratio Cassandra (https://github.com/Stratio/cassandra-lucene-index) кажется мертвым, поскольку в течение двух лет не было никаких обновлений. Из-за этого мы планируем постепенно отказаться от этого.

Другие вопросы по тегам