본문 바로가기
Observability/Logs

[ELK] Elasticsearch

by dev_ss 2024. 1. 14.

1. 엘라스틱 서치(Elasticsearch) : 

아파치 루씬(Apache Lucene)을 기반으로 Java로 개발된 엘라스틱 서치는  분산형 RESTful 검색 및 분석 엔진으로 Elastic 재단에서 개발한 엘라스틱 스택(Elastic Stack)의 핵심적인 역할을 맡고 있다.

 

  • 엘라스틱 스택 : 엘라스틱 재단에서 개발한 데이터의 대규모 수집, 분석, 검색 및 시각화에 최적화된 솔루션을 일컫는 스택을 의미하는데 대표적으로 아래 3가지 스택을 가지고 ELK 스택이라고도 한다.  
    • 엘라스틱 서치(Elasticsearch) : 데이터 저장, 검색 및 분석 등의 역할을 수행
    • 로그 스태시(Logstash) : 데이터 수집 및 전처리 등의 역할을 수행
    • 키바나(Kibana) : 수집한 데이터의 시각화와 데이터에 관한 정책 관리 수행
  • https://www.elastic.co/kr/elastic-stack/features
 

Elastic(ELK) Stack 기능 목록 | Elastic

Elasticsearch 보안, 경보, 모니터링, 클라우드 배포, 분석, 풀텍스트 검색, SIEM, 시각화, 컨테이너 모니터링, APM, 위치 정보 기반 분석 같은 Elastic Stack(Elasticsearch, Logstash, Kibana, Beats) 기능을 탐색해보

www.elastic.co

 

엘라스틱 서치가 데이터 저장과 검색을 하는데 있어서, 관계형 데이터베이스(RDB)와 가장 차이점을 나타내는 부분은 역색인(Inverted Index)을 들 수가 있다.

 

 

 

2. 역색인(Inverted Index) : 

역색인이란, 일반적인 색인의 로직과는 달리 문자열을 토대로 해당 문자열이 속하는 문서들을 그룹화하고, 해당 문자열에 대한 문서들을 수월하게 찾을 수 있도록하는 작업을 의미한다.

 

엘라스틱 재단 글 : https://www.elastic.co/kr/blog/found-elasticsearch-from-the-bottom-up

 

상향식 관점에서 본 Elasticsearch, 제1부

이 게시물 시리즈에서는, Elasticsearch를 새로운 관점에서 살펴봅니다. 많은 추상화 레벨의 ‘맨 아래’(또는 거의 그 근처!)에서 시작하여 사용자가 볼 수 있는 계층을 향해 점차 상향으로 이동하

www.elastic.co

 

 

아래 사진은 위 엘라스틱 재단의 예시 중 역색인에 대한 간략한 예시자료이다.

 

 

[ https://www.elastic.co/kr/blog/found-elasticsearch-from-the-bottom-up ]

 

사진에는 아래 3가지 문장(문서)이 있고 문장들은 여러 가지 문자열의 집합으로 볼 수 있다.

 

  1. Winter is coming -> Winter / is / coming
  2. Ours is the fury -> Ours / is / the / fury
  3. The choice is yours -> The / choice / is / yours

 

이렇게 나뉜 단어를 기반으로 문서를 그룹화 한다.

 

is -> 1,2,3번 문장

the -> 2,3번 문장

choice -> 3번 문장

coming -> 1번 문장

fury -> 2번 문장

ours -> 2번 문장

winter -> 1번 문장

yours -> 3번 문장

 

이를 토대로, 특정 단어가 포함된 문서를 알수 있고 해당 단어가 포함된 문서를 가져올 수 있게 된다.

이러한 단어가 포함된 문서를 분류하는 과정을 역색인이라고 한다.

 

역색인은 색인보다 특정 단어에 대한 검색이 일반적인 색인보다 유리하기 때문에 검색 엔진에 많이 이용된다.

 

엘라스틱 서치도 이러한 역색인을 통하여 효율적인 단어 검색 기능을 제공한다.

 

 

 

3. 엘라스틱 서치와 관계형 데이터베이스 : 

엘라스틱 서치는 NoSql 형식의 검색 엔진 솔루션이며, 관계형 데이터베이스에서 지원하는 트랜잭션과 롤백을 엘라스틱 서치에서는 지원하지 않는다.

 

아래는 관계형 데이터 베이스와 엘라스틱 서치의 데이터 구조의 차이를 나타낸다.

 

관계형 데이터베이스 엘라스틱 서치
Schema Mapping
Database Index
Table Type
Row Document
Column Field

 

 

 

그리고 엘라스틱 서치에서는 데이터베이스에서 이루어지는 CRUD의 행위를 HTTP Method를 통하여 CRUD와 유사하게 동작한다.

 

행위 엘라스틱 서치 (HTTP) 관계형 데이터베이스
CREATE POST INSERT
READ GET READ
UPDATE PUT UPDATE
DELETE DELETE DELETE

 

 

 

반응형