Из-за размера данных, которые необходимо запрашивать, и возможности масштабирования по мере необходимости на нескольких узлах я рассматриваю возможность использования некоторого типа базы данных NoSQL. Я исследовал множество предложений NoSQL, но пока не могу решить, какой из них будет лучшим вариантом, который обеспечит наилучшую производительность, масштабируемость и функции для нашей структуры данных.
Модель структуры данных представляет собой каталог продуктов, в котором каждый документ/набор содержит определенные свойства и описания для этого отдельного продукта. Свойства будут варьироваться от продукта к продукту, поэтому предложение без схемы будет работать лучше всего.
Структура примера будет такой
[
{"name": "item name",
"cost": 563.34,
"category": "computer",
"manufacturer: "sony",
.
.
.
}
]
Поэтому требование состоит в том, что мне нужно иметь возможность фильтровать/запрашивать множество разных полей/индексов набора данных в наборе записей, где я мог бы фильтровать и исключать несколько индексов/полей в одном запросе. Запросы будут в основном читаться, и не будет особой необходимости в каких-либо соединениях или типах связей.
Я изучил: Elastic Search, mongodb, OrientDB, Couchbase и Aerospike.
- Elastic Search кажется очевидным выбором, но меня интересует производительность и стабильность?
- Кажется, что Aerospike будет очень быстрым, поскольку он делает все это в основном в памяти, но его возможности фильтрации и поиска не кажутся такими уж способными.
Как вы думаете, какой вариант лучше всего подойдет для моего варианта использования? или есть ли какие-либо другие рекомендуемые БД, на которые я должен обратить внимание.
Я знаю, что лучший способ — протестировать производительность в реальном сценарии использования, но я надеюсь сначала немного сузить его.
Спасибо