상세 컨텐츠

본문 제목

Elasticsearch란?

TIL

by toa-lee 2024. 5. 15. 22:17

본문

https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html

 

What is Elasticsearch? | Elasticsearch Guide [8.13] | Elastic

What is Elasticsearch?edit You know, for search (and analysis) Elasticsearch is the distributed search and analytics engine at the heart of the Elastic Stack. Logstash and Beats facilitate collecting, aggregating, and enriching your data and storing it in

www.elastic.co

해당 docs를 통해 작성 했습니다.

 

Elasticsearch는 데이터를 저장하고, 검색하고, 분석하는 데 사용되는 분산 검색 및 분석 엔진이다. 분산이란 데이터를 여러 곳에 나누어 저장하는 것을 의미한다. 이를 통해 데이터의 안정성 및 효율성을 확보 할 수 있다.

 

Elasticsearch와 함께 사용되는 도구로는 Logstash, Beats, Kibana등이 있다.

 

Logstash와 Beats의 경우 Elasticsearch에 데이터를 저장하기 전에 데이터를 가공하는 역할을 한다. 데이터를 정형화되지 않은 상태로 Elasticsearch에 저장하면 분석할 때 어려움을 겪기 때문에, Logstash와 Beats를 통해 데이터를 정형화하여 Elasticsearch가 이해할 수 있도록 도와준다.이를 위해 Logstash와 Beats는 데이터를 받을 때 input을 통해 데이터를 받고, filter를 걸쳐 데이터를 정형화한 후, output을 통해 Elasticsearch에 저장한다.

 

Kibana의 경우 Elasticsearch에 저장된 데이터를 그래프, 지표등을 통해 사용자가 더 쉽게 볼 수 있게 해준다. 이를 통해 검색, 분석등의 효율성을 더 증대 시킨다.

 

Elasticsearch의 중요한 기능 중 하나는 색인(index)이다. 색인은 데이터를 정해진 순서로 나열해서 필요한 데이터를 빠르게 찾을 수 있도록 한다. 마치 사전에서 단어를 가나다 순으로 정리해서 원하는 단어를 쉽게 찾을 수 있듯이.

 

Elasticsearch는 역인덱스(inverted index)라는 구조를 사용한다. 역인덱스는 책의 '찾아보기' 페이지와 비슷하다. 특정 단어가 포함된 모든 문서를 빠르게 찾을 수 있도록 도와준다.

예를 들어, ID1에 "cat is good", ID2에 "dog is bad", ID3에 "cow is cry"라는 문서가 있다고 가정하자. 역인덱스에서는 'is'라는 단어가 포함된 문서를 찾기 위해 'is'라는 키워드와 함께 ID1, ID2, ID3를 나열한다. 이렇게 하면 'is'라는 단어가 포함된 문서를 빠르게 찾을 수 있다.

 

정리하자면, Elasticsearch는 분산 저장을 통해 데이터를 안전하게 보관하고, Logstash와 Beats는 데이터를 정형화하여 Elasticsearch가 데이터를 잘 분석할 수 있도록 도와준다. 그리고 색인과 역인덱스를 사용해 필요한 데이터를 빠르고 효율적으로 찾을 수 있게 도와준다.