Является ли эластичный поиск хорошим хранилищем данных для API только для чтения?

#elasticsearch #reporting

#elasticsearch #отчетность

Вопрос:

Мы планируем создать базу данных отчетов, доступную через API только для чтения. Он будет содержать API чтения, связанные с отчетами, как для наших клиентов, так и для внутренних процессов, таких как выставление счетов.

Кроме того, мы подумали, что будет полезно иметь Kibana над ним, чтобы иметь аналитику для наших внутренних команд.

Подходит ли эластичный поиск для этого варианта использования?

Ответ №1:

Да, почему бы и нет, Elasticsearch будет очень хорошим выбором для вашего варианта использования по следующим причинам:

  1. Вы можете денормализовать свои данные и сохранить их в одном индексе, это сделает выборку и поиск очень быстрыми, обычно это основные варианты использования nosql, и ES может работать таким образом.
  2. Базовая безопасность x-pack доступна бесплатно в ES, что обеспечит пользователям доступ только для чтения без особых усилий и затрат.
  3. Помимо поиска, Elasticsearch снова очень популярен для анализа вариантов использования, вы можете легко запускать агрегации для своих вариантов использования и можете использовать Kibana dashboard для визуализации, которая имеет очень хорошую интеграцию с ES, поскольку оба являются продуктами одной и той же компании (Elastic).

И самое главное, ES — это горизонтально масштабируемая и распределенная система, которую легко масштабировать до сотен узлов для удовлетворения растущих потребностей любого пользователя.

Ответ №2:

В дополнение к ответу opster я хочу упомянуть 2 вещи, которые могут помочь вам в принятии решения :

  1. Как E.S помогает нам создавать отчеты в режиме реального времени в рабочей среде с обширным набором данных

  2. Производительность отчетности в E.S по сравнению с Mongo (которую мы измерили)

Как E.S служит для создания отчетов в режиме реального времени в рабочей среде с обширным набором данных

E.S предоставляет результаты в реальном времени (менее 1 секунды) для приведенных ниже случаев:

  1. Отчеты, созданные путем запуска нескольких наборов фильтров (дата и т. Д.) И агрегирования по миллионам точек данных

  2. Отчеты на основе времени (группировка данных по дням, неделям, месяцам, кварталам, годам) — на основе DateHistogram

Производительность отчетности в E.S по сравнению с Mongo (которую мы измерили)

Агрегирование 5 миллионов точек данных в E.S заняло <1 сек., в то время как для Mongo потребовалось> 10 сек. в аналогичных случаях.

В дополнение к вышесказанному: также доступна поддержка сценариев, что обеспечивает большую гибкость.