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 |