카테고리 없음
[ElasticSearch]ElasticSearch(ES) 란?
rangrangerang
2020. 9. 4. 11:37
1. ElasticSearch란?
Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진으로 방대한 양의 데이터를 신속하게 처리하고, 실시간(NRT : Near Real Time)으로 저장, 검색, 분석할 수 있다. ES는 검색을 위해 단독으로 사용되기도 하고, ELK(ElasticSearch, Logstash, Kibana)스택으로도 사용된다.
1-1. ELK스택 이란?
로그 및 데이터 분석 도구
- 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