Snowindy
@Snowindy

Какая может быть скорость работы ElasticSearch для заданного кейса и есть ли другие альтернативы?

Здравствуйте, я новичок в ElasticSearch, хочу понять, подходит ли он мне для технической задачи, которую решаю.
Опишу данные и кейс.
record {
customerId: "id",      <---- индексируется
binaryData: "data"   <---- не индексируется
}


Ожидания:
  • средний размер бинарных данных записи - 1-2 килобайта
  • по одному customerId - до 100 записей
  • количество записей - 500М
  • паттерн записи №1: вставка одной записи за раз
  • паттерн записи №2: батчами, можно в параллель, со скоростью не менее 20М record в час
  • паттерн поиска №1: поиск всех записей по customerId
  • паттерн поиска №2: поиск всех записей по группе customerId, можно в параллель, со скоростью не менее 10М customerId в час
  • данные не самые важные, можно разменять некоторые аспекты надежности на скорость. Главное - насмерть не ложиться и системно не терять куски данных
  • работать предполагаем в AWS/GCP - и самим админить систему не хочется точно


  • Возможно ли достичь таких показателей скорости на ElasticSearch?
  • Какие сервера для такой задачи могут пойти?
  • Как дела вообще у ElasticSearch с надежностью? Можно ли ожидать хорошей надежности, если использовать облачные сервисы типа AWS с репликами в разных регионах?
  • Может быть, есть другие системы, хорошо подходящие под такие требования?


Спасибо!
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 4
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Вам не нужна поисковая система. Это задача для key-value storage. Можете использовать для этого AWS DynamoDB, например.
Ответ написан
@vitaly_il1
DevOps Consulting
Согласен с Иван Шумов - нет смысла гонять ElasticSearch для key-value.
Вот хорошее интро в разные AWS варианты, и я бы начал проверять с DynamoDB:
https://cloudonaut.io/databases-on-aws/
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
паттерн поиска №1: поиск всех записей по customerId
это сценарий для СУБД key/value.
Но:
паттерн поиска №2: поиск всех записей по группе customerId,
это запрос вида
SELECT blob FROM table WHERE customerId IN (100, 101, 200)
Не уверен, что DynamoDB поддерживает такие запросы. Иван Шумов ?

Так что я пока голосую за RDS/Aurora. Вот только насчет этого надо протестировать:
паттерн записи №2: батчами, можно в параллель, со скоростью не менее 20М record в час
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы