"일래스틱서치"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(참고 자료)
(기본 용어)
7번째 줄: 7번째 줄:
 
*'''필드'''(field) : 일래스틱서치에서 문서는 JSON인데, JSON의 각 프로퍼티를 일래스틱서치에서 필드라 부른다.
 
*'''필드'''(field) : 일래스틱서치에서 문서는 JSON인데, JSON의 각 프로퍼티를 일래스틱서치에서 필드라 부른다.
 
*'''매핑'''(mapping) : 인덱스/타입/문서의 규칙을 정의한 것이다.
 
*'''매핑'''(mapping) : 인덱스/타입/문서의 규칙을 정의한 것이다.
*'''색인'''(index) :
+
*'''색인'''(index) : 일래스틱서치가 문서를 검색할 수 있도록 색인 데이터를 만들어두는 과정이다.
 +
*'''색인'''(index) : 위 index의 명사형으로, 색인 작업을 거쳐 만들어진 색인 데이터를 의미한다.
 +
*'''클러스터/노드'''(cluster/node) : 여러 대의 서버를 묶어서 구동하기 위해 사용되는 개념이다. 각 서버가 '''노드''', 서버의 묶음이 '''클러스터'''이다.
 +
*'''샤드/복사본'''(shard/replica) : 일래스틱서치는 색인 데이터를 하나의 물리적 데이터 공간에만 저장하는게 아니라, 여러 개의 저장공간에 나누거나 복사할 수 있다. 여기서 '''shard'''가 성능향상을 위해 데이터를 여러 물리적 공간에 나눠 저장하는 것이고, '''replica'''는 한 노드가 실패했을 때에도 검색서비스 제공이 가능하도록 데이터를 여러 물리적 공간 또는 노드에 복제해 두는 것이다.
 +
*'''QueryDSL''' : JSON으로 표현되는 일래스틱서치의 검색 문법이다.
  
 
== 사용 방법 ==
 
== 사용 방법 ==

2019년 6월 25일 (화) 17:03 판

개요

'아파치 루신(Apache Lucene)' 기반의 검색 엔진으로 모든 종류의 문서를 검색하는데 사용할 수 있다. 실기간 검색 기능뿐만 아니라 강력한 집계 기능을 제공해 실시간 분석 엔진으로도 활용이 가능하다.

특징

데이터를 저장할 수 있어 NoSQL 저장소로도 활용할 수 있다. 웹 서버나 데이터베이스(DB) 서버에 응용 프로그래밍 인터페이스(API)를 지원한다.

기본 용어

  • 인덱스/타입/문서(index/type/document) : 일래스틱서치의 데이터 계층이다.
  • 필드(field) : 일래스틱서치에서 문서는 JSON인데, JSON의 각 프로퍼티를 일래스틱서치에서 필드라 부른다.
  • 매핑(mapping) : 인덱스/타입/문서의 규칙을 정의한 것이다.
  • 색인(index) : 일래스틱서치가 문서를 검색할 수 있도록 색인 데이터를 만들어두는 과정이다.
  • 색인(index) : 위 index의 명사형으로, 색인 작업을 거쳐 만들어진 색인 데이터를 의미한다.
  • 클러스터/노드(cluster/node) : 여러 대의 서버를 묶어서 구동하기 위해 사용되는 개념이다. 각 서버가 노드, 서버의 묶음이 클러스터이다.
  • 샤드/복사본(shard/replica) : 일래스틱서치는 색인 데이터를 하나의 물리적 데이터 공간에만 저장하는게 아니라, 여러 개의 저장공간에 나누거나 복사할 수 있다. 여기서 shard가 성능향상을 위해 데이터를 여러 물리적 공간에 나눠 저장하는 것이고, replica는 한 노드가 실패했을 때에도 검색서비스 제공이 가능하도록 데이터를 여러 물리적 공간 또는 노드에 복제해 두는 것이다.
  • QueryDSL : JSON으로 표현되는 일래스틱서치의 검색 문법이다.

사용 방법

일래스틱서치에서 데이터를 가져오는 방법은 다양하지만, 일래스틱 서치의 대시보드 어플리케이션인 '키바나(Kibana)'를 통해 가져오는 것이 가장 쉽고 편리하다.

  • 키바나를 이용해 데이터를 가져오는 경우
  1. 키바나 쿼리를 이용해 원하는 데이터를 화면에 표시한다.
  2. 화면에 표시된 데이터가 실시간일 필요가 없는 경우 CSV로 데이터를 내보낸다.
  3. 실시간 데이터를 분석할 경우에는 현재 데이터를 볼 수 있는 쿼리(query DSL)를 생성해 직접 데이터를 요청하면 된다.

사용시 유의점

  • 일래스틱서치를 검색 데이터에 활용하고 원본 데이터는 따로 보관한다.
  • River 보다는 Logstash 사용을 권장한다.
  • 원본 데이터를 Logstash에 바로 입력 가능한 JSON 형식으로 저장해서 AWS의 S3같은 곳에 압축해서 보관한다.

서버 구성 시 유의점

  • 1개의 노드에 할당하는 메모리는 30GB를 넘지 않도록 한다.
  • ES의 힙메모리 사이즈는 서버 전체 메모리의 50%가 넘지 않도록 한다.
  • HD 보다는 SSD에서 성능이 월등히 향상된다.

참고 자료