Тесты агрегации производительности Elasticsearch date_range - PullRequest
0 голосов
/ 03 июня 2018

У меня быстрый вопрос.Проводятся ли какие-либо тесты производительности запросов агрегации данных Elasticsearch date_range для больших наборов данных?https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html

Мой конкретный пример использования следующий: у меня около 500 млн документов в месяц, и я хочу сгенерировать гистограмму даты за последние 12 месяцев.Мой запрос похож на следующий (извините за синтаксические неточности):

{
  "query": {
    "bool" : {
      "must" : [
        {"term" : { "fieldFoo" : "valFoo" }},
        {"term" : { "fieldBar" : "valBar" }},
        {"term" : { "fieldBarz" : "valBarz" }}
      ]
  },
  "aggs": {
      "range": {
          "date_range": {
              "field": "date",
              "format": "MM-yyy-dd",
              "ranges": [
                  { "from": "xxx", "to": "yyy" }, #docs within last week
                  { "from": "xxx", "to": "yyy" }, #from last week till 2 weeks ago
                  { "from": "xxx", "to": "yyy" }, #from 2 weeks ago till 1 month ago
                  { "from": "xxx", "to": "yyy" }, #from 1 month ago till 2 months ago 
                  { "from": "xxx", "to": "yyy" }, #from 2 months ago till 3 months ago 
                  { "from": "xxx", "to": "yyy" }, #from 3 months ago till 1 year ago 
              ]
          }
      }
  }
}

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

ADDENDUM: Кроме того, моя цель - получить ответ на эти запросы менее чем за 15-20 мс.Итак, я пытаюсь определить максимальное количество документов, которое каждый шард может обработать, чтобы ответить в пределах этого порога.

1 Ответ

0 голосов
/ 04 июня 2018

Я предлагаю вам воспользоваться преимуществом кеша запросов шарда , индексируя «горячие» данные по другому индексу, так как эластичный позволяет вам выполнять поиск по нескольким индексам.

Имейте в виду, чтокаждый раз, когда осколок изменяется, его кэш становится недействительным.

Вы можете использовать шаблон индексов на основе времени:

  • data_2018-01
  • data_2018-02

И затем поиск с использованием *:

GET /data*/type/_search
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...