Что такое агрегация Elasticsearch?

Cto Takoe Agregacia Elasticsearch



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

В этом руководстве объясняются агрегаты Elasticsearch с примерами, использующими различные агрегаты.







Что такое агрегация Elasticsearch?

В Elasticsearch агрегация — это процесс объединения или группировки полей для извлечения информации из реляционной базы данных. Агрегацию в Elasticsearch можно рассматривать как СГРУППИРОВАТЬ ПО ПУНКТАМ или АГРЕГАТ() функция на языке SQL.



Как использовать агрегацию Elasticsearch?

Чтобы использовать агрегацию в Elasticsearch, пользователь должен иметь общее представление о своей базе данных. Давайте изучим синтаксис и его практическую реализацию:



Синтаксис





Чтобы найти данные из базы данных, синтаксис агрегации в движке Elasticsearch выглядит следующим образом:

'аггс' : {
'имя_агрегации' : {
'тип_агрегации' : {
'поле' : 'имя_поля_документа'
}


Фрагменты выше:



    • Он использует « аггс ключевое слово, объясняющее использование агрегации в запросе.
    • имя_агрегации устанавливается пользователем в соответствии с необходимой информацией.
    • После этого type_of_aggregation используется для получения данных.
    • В последней строке используется поле ключевое слово, за которым следует имя атрибута из документа.

Пример 1: Агрегация в демонстрационных данных Kibana

В этом разделе объясняется агрегация с помощью примера, использующего демонстрационные данные из Kibana, предварительно подключившись к нему. После этого просто зайдите внутрь « Инструменты разработчика ”, выполнив поиск в строке поиска и щелкнув по нему:


Извлечение данных из выборочных данных

Просто используйте следующую команду, чтобы получить данные из « кибана_sample_data_logs ” в консоли Dev Tools:

ПОЛУЧАТЬ / кибана_sample_data_logs / _поиск



Вывод показывает, что данные были получены из « кибана_sample_data_logs ' индекс.

В следующем коде используется ПОЛУЧАТЬ запрос на « кибана_sample_data_log ' для поиска по нему с помощью агрегации value_count на ' клиент ' поле:

ПОЛУЧАТЬ / кибана_sample_data_logs / _поиск
{ 'размер' : 0 ,
'аггс' : {
'ip_count' : {
'значение_количество' : {
'поле' : 'подсказка клиента'
}
}
}
}



На приведенном выше снимке экрана показана агрегация на клиент поле со значением 14074 .

Важные агрегаты

Некоторые из важных агрегаций, которые используются для эффективного поиска данных в базе данных, упомянуты ниже:

В следующих примерах объясняются вышеупомянутые агрегации с использованием ПОЛУЧАТЬ просьба от ' kibana_sample_data_ecommerce ' индекс:

Агрегация мощности

В следующем коде используется « кардинальность агрегация на « артикул ” из данных электронной торговли. Выполнение этого кода приведет к агрегированию с одним значением для получения уникальных SKU из базы данных Elasticsearch:

ПОЛУЧАТЬ / kibana_sample_data_ecommerce / _поиск
{
'размер' : 0 ,
'аггс' : {
'уникальный_скус' : {
'мощность' : {
'поле' : 'ску'
}
}
}
}



Он отображает кардинальность агрегация нахождение 7186 значений из указателя.

Агрегация статистики

Еще одним важным агрегированием является « статистика агрегация, которая используется для получения « считать », « мин », « Макс », « среднее ', и ' сумма » статистика из « Общая численность ' поле:

ПОЛУЧАТЬ / kibana_sample_data_ecommerce / _поиск
{
'размер' : 0 ,
'аггс' : {
'количество_статистика' : {
'статистика' : {
'поле' : 'Общая численность'
}
}
}
}



На приведенном выше снимке экрана показана статистика в выводе « Общая численность ' поле.

Агрегация фильтров

Агрегация фильтров используется для фильтрации данных на основе термина или фразы из базы данных, поскольку она содержится в следующем коде:

ПОЛУЧАТЬ / kibana_sample_data_ecommerce / _поиск
{ 'размер' : 0 ,
'аггс' : {
'фильтр_агрегация' : {
'фильтр' : {
'срок' : {
'пользователь' : 'Эдди' } } ,
'аггс' : {
'цена_средняя' : {
'среднее' : {
'поле' : 'продукт.цена' } }
} } } }



Выполнение кода будет фильтровать данные на основе « Эдди пользователя и отображает среднюю цену купленных товаров. На скриншоте выше показано, что пользователь Найдено 100 раз из данных и ценить принадлежащий среднее _ цена агрегация.

Агрегация терминов

Термин агрегация создает сегмент и сохраняет данные из поля в сегменте, а в следующем коде используется « пользователь ” для хранения своих данных в корзине:

ПОЛУЧАТЬ / kibana_sample_data_ecommerce / _поиск
{
'размер' : 0 ,
'аггс' : {
'Term_Aggregation' : {
'условия' : {
'поле' : 'пользователь'
}
}
}
}



На следующем снимке экрана показано, что агрегация терминов создала сегменты для каждого пользователя и количества их документов.

Это все, что касается агрегации Elasticsearch и других важных агрегаций.

Заключение

В Elasticsearch агрегация используется для получения данных из агрегированных документов, и эти документы извлекаются из определенного поля. Объясняются некоторые важные агрегаты, которые используются для получения полезной информации из индексов. В этом руководстве объясняется агрегация Elasticsearch и демонстрируется процесс использования агрегации Elasticsearch.