Основные компоненты Elasticsearch:
- Индексы (Indexes) — это аналог баз данных в SQL. Индексы содержат наборы документов, которые можно искать и фильтровать. Каждый индекс может содержать множество документов.
- Поля (Fields) — аналог колонок в SQL. Поля содержат значения данных в каждом документе, например: имя, возраст или адрес.
- Маппинг (Mapping) — структура данных, определяющая, как поля будут храниться и индексироваться. Это как задание типов данных в SQL для столбцов, например, строки или числа.
- Типы данных (Types) — типы значений в полях, например, текст, число, дата. Это определяет, как данные будут обрабатываться и искаться.
Пример простого запроса в Elasticsearch API:
GET
http://localhost:9200/my_index/_search { "query": { "match": { "field_name": "test data" } } }
Этот запрос ищет документы в индексе
my_index, где поле field_name содержит "test data". Запросы в Elasticsearch пишутся в формате JSON, что делает их гибкими и простыми для управления большими объёмами данных.Для визуализации данных удобно использовать Kibana — веб-интерфейс для работы с Elasticsearch. Kibana доступна по порту 5601 и позволяет создавать дашборды, отчёты и проводить сложные поисковые запросы. Kibana поддерживает собственный язык запросов — KQL (Kibana Query Language), который делает поиск быстрым и наглядным.
Пример запроса в Kibana с использованием KQL:
field_name: "test data" AND status: "active"
Этот запрос ищет документы, где поле
field_name содержит "test data", а статус равен "active".Elasticsearch также является частью стека ELK (Elasticsearch, Logstash, Kibana). В этой экосистеме Logstash собирает и обрабатывает данные, а Kibana помогает визуализировать их, предоставляя мощные инструменты для создания дашбордов и отчётов.
А вы используете Kibana в работе?
Есть ELK?
@protestinginfo
Моя статья на хабре про Kibana
Что такое ElasticSearch?
Картинка из статьи
Курс по Kibana
Все про ElasticSearch
Про логи
