본문 바로가기

Big Data/Elastic stack

elastic stack #1 elasticsearch 소개



#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: 검색성능 및 장애복구를 위해 복사본을 가지고 있는 구조


#참고