CS

Elasticsearch에 대하여. (엘라스틱서치)

쿠키담임선생님 2022. 11. 14. 09:45

Elasticsearch 란?


Java 오픈 소스 분산 검색 엔진이다. 방대한 양의 데이터를 신속하게 저장, 검색, 분석을 수행 할 수 있다.

 

Elasticsearch 와 RDBMS의 차이는?


Elasticsearch 는 Json 문서를 통해 검색을 수행하므로 스키마가 없지만, RDBMS는 엄격한 스키마가 존재한다.

Elasticsearch 는 역색인 자료 구조로 검색을 수행하지만, RDBMS는 인덱스 자료 구조로 검색을 수행한다.

Elasticsearch 는 저장소보다 검색 엔진에 가깝다.

 

 

Elasticsearch 의 장점


Scale out - 샤드를 통해 규모가 수평적으로 늘어날 수 있다.

Replica를 통해 데이터의 안정성을 보장

Schema Free - Json 문서를 통해 데이터 검색을 수행하므로 스키마 개념이 없다.

Restful - 데이터 CRUD 작업은 HTTP Restful API 를 통해 수행한다.

역색인 구조로 인해 빠른 속도.

 

 

Elasticsearch 의 단점


Elasticsearch 는 인메모리 버퍼를 사용하므로 쓰기와 동시에 읽기 작업을 할 경우, 세그먼트가 생성되기 전까지는 해당 데이터를 검색할 수 없다.

트랜잭션 및 롤백을 지원하지 않는다.

진정한 의미의 업데이트를 지원하지 않는다. - 세그먼트에서 데이터가 삭제될 경우 삭제flag = true 로 바꾸어준다, 데이터 수정시 삭제flag = true 로 바꿔주고 수정된 데이터를 새로운 세그먼트로 생성한다.

 

Elasticsearch 의 구조


Elasticsearch 는 클러스터로 구성되며, 클러스터 안에 노드, 노드안에 인덱스, 인덱스 안에 샤드, 샤드 안에 세그먼트로 구성된다.

 

색인(index) 와 역색인의 차이


이 사진처럼 왼쪽에 있는 목차는 색인, 오른쪽의 책의 뒷편에 나와있는 찾아보기는 역색인이다. 속도는 역색인이 빠르다.

'CS' 카테고리의 다른 글

순열, 조합 자바로 코딩(JAVA)  (0) 2022.11.24
B-tree 와 B+ tree 에 대한 정리 글(면접질문)  (0) 2022.11.22
MSA 방식이란?  (0) 2022.11.14
자바 Map.of 사용 방법  (0) 2022.09.20
기술면접 질문 모음  (3) 2022.09.12