티스토리 뷰

1. ElasticSearch란?

Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진으로 방대한 양의 데이터를 신속하게 처리하고, 실시간(NRT : Near Real Time)으로 저장, 검색, 분석할 수 있다. ES는 검색을 위해 단독으로 사용되기도 하고, ELK(ElasticSearch, Logstash, Kibana)스택으로도 사용된다.

1-1. ELK스택 이란?

로그 및 데이터 분석 도구

출처 : https://www.elastic.co/kr/what-is/elk-stack

- ElasticSearch : 검색 및 분석엔진

- Logstash : 여러 소스에서 동시에 데이터를 수집하여 변환한 후 Elasticsearch 같은 “stash”로 전송하는 서버 사이드 데이터 처리 파이프라인

- Kibana : Elasticsearch에서 차트와 그래프를 이용해 데이터를 시각화

 

2. ElasticSearch vs RDB

ElasticSearch과 익숙한 RDB(ex.mysql)를 비교해보자

2-1. 용어

ElasticSearch RDB
인덱스(Index) 데이터베이스(DB)
타입(Type) 테이블(Table)
문서(Document) 행(Row)
필드(Field) 열(Column)
매핑(Mapping) 스키마(Schema)
_id 기본키(Primary Key)

 

2-2. CRUD

엘라스틱서치의 CRUD작업은 Restful API를 이용한다.

  ElasticSearch RDB
데이터 조회(Read) GET Select
데이터 생성(Create) PUT Insert
인덱스 업데이트, 데이터 조회(Update) POST Update, Select
데이터 삭제(Delete) DELETE Delete
인덱스 정보 확인 HEAD -

 

3. ElasticSearch특징

- Scale out : 샤드를 통해 규모가 수평적으로 늘어날 수 있음

- 고가용성 : Replica를 통해 데이터의 안정성을 보장

- Schema Free : Json 문서를 통해 데이터검색을 수행하므로 스키마 개념이 없음

- Restful : 데이터 CRUD작업은 HTTP Restful API를 통해 수행

 

https://www.slideshare.net/deview/2d1elasticsearch

https://www.elastic.co/kr/what-is/elk-stack
댓글