2017-01-16 3 views
1

У меня есть индекс, который имеет значения задержки, каждые 2 секунды. Эти документы содержат метку времени, среднее значение, мин и макс. Через произвольный период времени (скажем, один или два дня) я хотел бы объединить эти документы, чтобы уменьшить потребность в пространстве, уменьшив разрешение значений латентности до одной минуты.Elasticsearch - объединить документы путем пересчета средних, минимальных и максимальных значений

Есть ли способ сделать это в Elasticsearch или с помощью плагина? Или мне придется написать скрипт, который скроет индекс предыдущих дней и вычисляет новые значения среднего, минимального и максимального значений за каждую минуту - удаление документов по мере их поступления?

+1

ES не будет делать это в одиночку. Вы просматриваете индекс предыдущего дня, выполняете вычисления и воссоздаете новый индекс с пересчитанными данными. – Val

+0

Cheers. Знаете ли вы о каких-либо плагинах, которые могут иметь эту функциональность? Если нет, не стесняйтесь сделать этот комментарий ответом на этот вопрос, чтобы я мог его принять. – unclemeat

ответ

1

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

Один из способов сделать это - прокрутить индекс предыдущего дня, выполнить вычисления и воссоздать новый индекс с пересчитанными данными. Это может быть сделано с любой стороной клиента языком ...

... или с Logstash использованием elasticsearch входа для чтения индекса предыдущего дня, в aggregate или ruby фильтре агрегировать данные и делать вычисления и elasticsearch вывода для записи нового индекса.

+0

Хорошее предложение. Огромное спасибо. – unclemeat

0

Мы делаем что-то похожее для любой данной табличной визуализации kibana4, с данными временных рядов.

У нас есть PHP-код, который принимает заданный идентификатор визуализации Kibana, извлекает его агрегации, подготавливает запрос на агрегирование поисковых запросов для гистограмм времени для этой агрегации с размером вместимости требуемого разрешения (1d, 1w, 1M).

Затем мы сохраняем результаты этой агрегации в отдельном индексе.

Самая большая проблема с этим подходом заключается в том, что вы не можете показать, что агрегированные результаты в Kibana 4 больше, поскольку результаты уже агрегированы, поэтому для отображения этих разрешений на графике нам нужно использовать что-то еще.

Было бы замечательно, если бы был плагин Kibana, который делает именно это и отображает графики для предварительно агрегированных данных, как вы могли бы показать их в Excel или что-то в этом роде.

+0

Я тоже в Python делаю подобное. За исключением того, что я извлекаю результаты из совокупности и создаю документ, который является той же структурой, что и старый. Поэтому я могу заговорить в Кибане вместе с оригинальными документами. Это явно медленнее, но вы сокращаете много времени, отправляя документы навалом. – unclemeat

 Смежные вопросы

  • Нет связанных вопросов^_^