프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

 

Elastic stack

 

Elastic stack는 데이터 분석에 필요한 모든 유형의 데이터를 실시간으로 검색, 분석 및 시각화할 수 있는 Elastic 사의 오픈소스 데이터 분석 플랫폼이다.

 

Elastic stack은 크게 4가지 기술로 구성되어 있다.

  1. Elastic Search 
  2. Kibana
  3. Logstash
  4. Beat

이 중에 핵심 기술인 Elastic Search는 NOSQL을 사용하는 검색 엔진이다.

따라서 단순히 사용한다면 NOSQL DB로도 활용할 수 있지만, Elastic Search의 장점을 구조를 통해 알아보자.

 

 

Elastic Search

 

Elastic Search는 간단히만 보면 3가지로 구성된다

  1. NOSQL 
  2. Search Engine
  3. REST API

 

elastic search는  NOSQL DB를 포함하고 이를 내장된 search engine을 통해 빠르게 조회할 수 있다.

 

그렇다면 질의 언어로는 어떤것을 사용할까?

바로, HTTP 프로토콜 REST API를 통해 접근하게 된다.

HTTP 메서드로 익히 알고있는 GET/PUT/DELETE/UPDATE를 사용하게 된다.

 

실제로 데이터를 DB에 올린 후에 GET API를 통해 질의를 하면 , 오른쪽 상단에 200-OK, 221ms로 서버로부터 통신 데이터를 받아온 것을 확인할 수 있다.

 

 

 

데이터 저장 구조

 

elastic search는 NOSQL이기 때문에 스키마의 제약 없이도 문서형 데이터를 저장하고 조회하는 데에 특화되어 있다.

빅데이터의 활용에 최근 elastic search가 많이 활용되는 이유를 구조를 파악하여 확인해보자.

 

elastic search는 데이터를 노드들로 분산시켜 빠른 검색이 가능하다.

노드는 독립된 컴퓨터 자원이라고 생각할 수 있다. 노드들을 클러스터로 묶일 수 있다.

 

 

단일 데이터 단위는 Document(문서)라고, 하고 이들의 집합이 index이다.

예를 들면 하나의 요리의 조리법은 문서 1개, 한식 요리 전체의 조리법은 index로 비유할 수 있다.

index는 shard들로 나누어지는데, shard는 컴퓨팅 파워나 데이터의 크기에 따라 직접 설정해 주어야 한다.

 

데이터 upload시 직접 shard의 setting을 해야한다.

 

정리하면 document -> shard -> index으로 데이터 집합이 형성되고, shard들이 각 node에 저장되는 단위가 된다.

Index를 3개의 shard로 나누는 경우

노드는 데이터 노드와 마스터 노드로 나뉘는데, 마스터노드는 인덱스의 메타 데이터, 샤드의 위치와 같은 클러스터 상태(Cluster Status) 정보를 관리한다.

이외로 노드가 고장 났을 때를 대비하여  샤드의 복제본을 다른 노드에 유지하는데, 이에 대한 자세한 내용은 Elastic 가이드 북을 참조하자.

 

 

https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards

 

3.2 인덱스와 샤드 - Index & Shards - Elastic 가이드북

인덱스를 생성할 때 별도의 설정을 하지 않으면 7.0 버전부터는 디폴트로 1개의 샤드로 인덱스가 구성되며 6.x 이하 버전에서는 5개로 구성됩니다. 클러스터에 노드를 추가하게 되면 샤드들이 각

esbook.kimjmin.net

 

 

Elastic Search는 이러한 구조를 통해 빠르게 데이터를 검색할 수 있는데,

조건 검색, 패싯 검색, Full-text 검색, 형태소 분석, n-gram, 연관어, 자동 완성, 실시간 검색 등의 기능을 지원한다.

 

Elastic stack 기능들을 cloud로 지원하는 Elastic Cloud를 이용하면 노드 별 성능 모니터링뿐만 아니라 scale-out도 자동으로 진행해 준다.

 

 

 

참조 문서

https://esbook.kimjmin.net/

 

Elastic 가이드 북 - Elastic 가이드북

7. 인덱스 설정과 매핑 - Settings & Mappings

esbook.kimjmin.net

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함