본문 바로가기
.etc

[생초보를 위한 엘라스틱서치 가이드] 엘라스틱 서치를 위한 키워드들

by 오늘의개발부 2019. 9. 12.
반응형

2019-09-07(토) 폭풍속에서 성대히 치뤄진 "[JavaCafe] 생초보를 위한 엘라스틱서치 가이드" 강의에 대한 메모입니다.

 

01. 검색엔진과 DB Like 검색의 결과가 다른 이유 [김흥래 자바카페 운영진]

https://www.slideshare.net/ssuser4889dc/ss-144814667

 

데이터 수집부터 시각화까지

엘라스틱서치 실무가이드 저자 강연 발표자료입니다.

www.slideshare.net

강의는 예시와 테스트 코드, 실습 등을 중심으로 매우 쉽게 풀어주셨지만 그럼에도 내가 초보자이기에 들어는 봤으나 정확히 뭔지 설명할 수 없는 키워드들이 있었다. 강의 메모 마지막으로 이 키워드들에 대해 정리해보고자 한다.

 

ELK (Elastic Stack)

엘라스틱 서치는 로그스태시(Logstash)라는 이름의 데이터 수집 및 로그 파싱 엔진, 그리고 키바나(Kibana)라는 이름의 분석 및 시각화 플랫폼과 함께 개발되어 있다. 엘라스틱 서치를 포함한 이 세 가지 솔루션을 ELK라고 한다.

 

엘라스틱 서치 (Elastic Search)

 ELK의 구성요소 중 하나로, Apahce Lucene 기반의 Java 오픈소스 분산 검색엔진이다. 방대한 양의 데이터를 실시간에 가깝게(Near Real Time)으로 저장, 검색, 분석할 수 있다. ELK로서 사용될 수 있고 단독으로 사용되기도 한다.

 엘라스틱 서치의 특징은 Scale out(Shard를 통해 규모가 수평적으로 늘어날 수 있음), 고가용성(Replica를 통해 데이터의 안정성 보장), Schema Free(Json을 통해 데이터 작업을 수행하므로 스키마 없음), Restful(HTTP Restful API를 통해 작업 수행)이 있다.

 RDB와 대응되는 개념으로 비교해보면 아래와 같다.

Elastic Search RDB
Index Database
Type Table
Document Row
Field Column
Mapping Schema

 이름밖에 모르던 시절엔 막연히 검색기능을 제공해주는 API겠거니, 했는데 가장 유용하게 사용되는 곳은 빅데이터 분석인 듯. 활용은 무궁무진 할 것 같다.

 

아파치 루신 (Apache Lucene)

 Java 기반의 고성능 정보 검색 라이브러리. 검색 쿼리를 분석하고 토큰화하고 인덱싱하는 등의 모든 검색 기능이 아파치 루신의 기능이다. 간단하게 말해 이 루신 라이브러리를 감싸 어플리케이션으로 만든 것이 엘라스틱 서치이다. 엘라스틱 서치는 루신 라이브러리의 핵심 기능을 포함해 간단한 설치, 구성, 분산처리 및 대용량 데이터 처리를 위한 다양한 기능을 제공하는 어플리케이션이다.

 

키바나 (Kibana)

 ELK의 구성요소 중 하나로, 엘라스틱 서치의 데이터를 보기좋게 시각화해주는 역할을 하는 솔루션이다. 키바나를 이용하면 쉽게 여러 가지 차트와 그래프를 이용해 데이터를 확인할 수 있다.

 

로그스태시 (Logstash)

 ELK의 구성요소 중 하나로, 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진이다. 데이터베이스와 무관하게 어떤 데이터든지(DB, csv파일, 로그 등) 수집해주는 역할을 한다. 입력 받은 데이터는 필터를 이용해 가공하여 출력할 수 있다. 다양한 입력, 필터, 출력을 끼워 사용할 수 있다. 

 

클러스터 (Cluster)

 클러스터란 여러 개의 시스템으로 하나의 거대한 시스템을 구성하는 기술이다.

 Elastic Search에서의 클러스터는, Elastic Search에서 가장 큰 시스템 단위를 의미하며 최소 하나 이상의 노드로 이루어진 노드들의 집합이다. 서로 다른 클러스터는 데이터의 접근, 교환을 할 수 없는 독립적인 시스템으로 유지되며 여러 대의 서버가 하나의 클러스터를 구성할 수 있고, 한 서버에 여러 개의 클러스터가 존재할 수 있다.

 

파이프라인 (Pipeline)

 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 가리킨다. 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성의 향상을 꾀할 수 있다. 각 단계 사이의 입출력을 중계하기 위해 버퍼가 사용될 수 있다.

 

ETL (Extract, Transform, Load)

추출, 변환 적재

nginx, 패킷, elk, 비츠

역색인

 

 

 

참고

https://ko.wikipedia.org/wiki/%EC%9D%BC%EB%9E%98%EC%8A%A4%ED%8B%B1%EC%84%9C%EChttps://victorydntmd.tistory.com/308%B9%98

https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8_(%EC%BB%B4%ED%93%A8%ED%8C%85)

반응형