#elasticsearch란?
공식적으로 A Distributed RESTful Search Engine 라고 설명하고 있다. 설명을 보면 알수 있듯이 분산환경에서 RESTful API를 지원하는 검색 엔진이다.
루씬을 기반으로한 검색엔진을 사용하고, 대용량 데이터를 처리하는데 적합하며 준실시간으로 데이터를 저장하고 검색, 분석할 수 있다.
#사용목적
- 대용량 자료에서의 검색 시간이 중요한 시스템 개발 시 사용
- 데이터를 저장하고 분석하기 위해 NoSql로서 사용
#특징
- 분산시스템: 이로인해 높은 확장성과 고가용성을 가질 수 있다.
- Full Text Search
- Multi Tenancy: 하나의 서버에 여러 인덱스를 저장, 관리 할 수 있으며, 독립된 하나의 쿼리로 여러 인덱스에서 데이터를 검색 할 수 있음
- JSON documents: 모든 데이터는 JSON으로 저장되며 모든 요청과 응답또한 JSON 형식으로 이루어져 있음
- RESTFul API : restful API를 사용해 데이터 입력 및 수정, 삭제가 가능
#비교대상
NoSql로서의 비교대상
- MongoDB
- H-base
- Cassandra
#현황
- ELK(Elasticsearch + Logstash + Kibana) stack이 쉽고 간단하게 데이터 분석이 가능해서 데이터 분석 측면에서 인기가 좋음
#Basic Concepts
1. Near Realtime: 검색이 realtime 에 가깝게 매우 빠르다
2. Cluster: 하나 이상의 node로 구성된 그룹
3. Node: 물리적인 서버 단위
4. Index, Type, Document
5. Shards & Replicas
- Shard: 일종의 파티션으로 데이터를 나눠 저장할 때의 하나의 조각 단위
- Replicas: 검색성능 및 장애복구를 위해 복사본을 가지고 있는 구조
#참고
'Big Data > Elastic stack' 카테고리의 다른 글
elastic stack #5 beats 소개 & quickstart (0) | 2017.03.18 |
---|---|
elastic stack #4 kibana 소개 & quick start (0) | 2017.03.14 |
elastic stack #3 logstash 소개 & quick start (0) | 2017.03.13 |
elastic stack #2 elasticsearch 설치 & quick start (0) | 2017.03.12 |
geoip 데이터 지도에 표시하기 (2) | 2017.02.07 |