Elastic Search는 텍스트, 숫자, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 오픈 소스 검색 및 분산 엔진이다.
Elastic Search는 검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / kibana) 스택으로 사용되기도 한다.
Elasticsearch는 모든 데이터를 색인하여 저장하고 검색, 집계 등을 수행하며 결과를 클라이언트 또는 다른 프로그램으로 전달하여 동작하게 한다.
역파일 색인(inverted file index)라는 구조로 데이터를 저장한다.
Elasticsearch에서 Query나 반환되는 결과는 모두 JSON형식으로 전달되기 때문에, 사전에 입력할 데이터를 JSON 형태로 가공하는 과정이 필요하다.
다양한 소스(DB, csv파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch로 전달
Logstash로부터 받은 데이터를 검색 및 집계를 하여 필요한 관심 있는 정보를 획득
Elasticsearch의 빠른 검색을 통해 데이터를 시각화 및 모니터링
샤드를 통해 규모가 수평적으로 늘어날 수 있음
Replica를 통해 데이터의 안정성을 보장
Schema Free
Json 문서를 통해 데이터 검색을 수행하므로 스키마 개념이 없음
Restful
데이터 CRUD 작업은 HTTP Restful API를 통해 수행하며, 각각 다음을 같이 대응한다.
Data CRUD ---- Elastic Restful
SELECT ---- GET
INSERT ---- PUT
UPDATE ---- POST
DELETE ---- DELETE