HAZEL

Elasticsearch 01. 기본개념 본문

DATA ENGINEERING/Elasticsearch

Elasticsearch 01. 기본개념

Rmsid01 2021. 3. 24. 20:24

01. Elasticsearch란?


: Elasticsearch 는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈 소스 분산 검색 엔진

방대한 양의 데이터를 신속하게 거의 실시간 ( NRT, Near Real Time ) 으로 저장, 검색, 분석할 수 있다.

- Elasticsearch ****를 이용하기 위한, 인터페이스 : Kibana ( 호환을 위해 Elasticsearch 와 같은 버전 다운 )

 

** 인터페이스 : 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.

 

: Elasticsearch 는 데이터 저장 형식으로 json 사용함.

 

02. Elasticsearch 의 핵심 개념


1. 클러스터 ( Cluster )

: 연합된 인덱싱과 모든 노드를 검색할 수 있는 기능을 제공한다.

: 하나 이상의 노드(서버) 모인 것 , 노드의 집합

 

2. 노드

 : 데이터를 보관하고 클러스터의 색인화 및 검색 기능에 참여한다.

 : 클러스터에 포함된 단일 서버 , shard로 구성되며 데이터는 shard로 분산디어 저장함

 

3. 인덱스( index ) - database

  : 다소 비슷한 특성을 가진 문서(Document)의 집합

 : 인덱스의 이름은 인덱싱, 검색, 업데이트, 삭제를 수행하는 동안에 인덱스를 참조하기 위해 사용

 : 1개 이상의 primary shard에 매핑되고, 0개 이상의 replica shard를 가질 수 있는 논리적 이름 공간

 

4. 타입(type) - table

 : 하나의 색인에서 하나 이상의 유형을 정의 할 수 있음

 

5. 도큐먼트(Document) - rowJson 으로 표시됨

 : 색인화(indexing) 할 수있는 기본 정보 단위, 실제로 검색할 데이터

  - Json 으로 표시됨

 

6. 샤드 (Shards)

: 데이터를 샤드라는 조각으로 분할함.

 각 샤드는 그 자체가 온전한 기능을 가진 독립적인 '색인'이며, 어떤 노드에서도 호스팅 할 수 있다.

 샤드를 거쳐 명령을 분배하고 병렬적으로 처리 할 수 있게 해주어 퍼포먼스를 올려줌

 

7. 리플리카 (Replicas)

: 리플리카 샤드라고 하며, 샤드의 하나이상의 복사본을 의미함.

 : 언제든 오류가 일어날 가능성이 있는 네트워크/클라우드 환경에서, 샤드/노드 가 오프라인 상태가 되거나 사가지게 될 경우를 대비하여 진행

 검색이 병렬적으로 실행될 수 있게 해주어 검색의 볼륨 스케일업을 해줌

 

 

** 인덱스(INDEX, 색인화)란 검색 속도를 높이기 위해 사용하는 하나의 기술입니다. 해당 테이블의 컬럼을 색인화하여 검색 시 해당 테이블의 레코드를 FULL SCAN 하는 게 아니라 색인화되어 있는 인덱스 파일을 검색하여 검색을 빠르게 합니다.

 

 

03. 관계형 DB 와의 비교를 통한 이해


1. Elasticsearch 와 관계형 DB 비교

2. Elasticsearch 와 RDBMS(관계형 데이터베이스)

 

04. Elasticsearch의 장/단점


- 장점

  1. 빠름
  2. 분산적임
  3. 광범위한 기능세트를 가짐
  4. 데이터 수집, 시각화, 보고를 간소화 함

- 단점

  1. 실시간 처리 불가능 : 데이터 색인 특징으로 인해, 색인된 데이턴는 1초 뒤에 검색 가능하다.

      → 색인된 데이터가 내부적으로 커밋과 플러시(flush)와 같은 과정을 거치기 때문임 (near real time)

  2. 트랜젝션 , 롤백 등의 기능을 제공하지 않는다.

  3. 진정한 의미의 업데이트(update)를 지원하지 않는다.

 :  엘라스틱서치에도 업데이트 명령이있지만, 데이터를 삭제했다가 다시 만드는 과정으로 업데이트가 됨. 이러한 특성은 나중에 불변성이라는 이점을 제공하기도함.