해당 글은 인프런 Minsuk Heo 님의 ELK 강의를 듣고 정리한 내용입니다.
https://www.inflearn.com/course/elk-%EC%8A%A4%ED%83%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D/dashboard
- 관계형 데이터베이스(RDB) 는 정보를 정형화해서 저장하는 반면, Elastic Search 는 Inverted Index 구조로 데이터를 저장하기 때문에, 키워드 검색시 뛰어난 성능을 보장한다.
- 보통 ELK 스택으로 Elastic Search, Log Stash, Kibana 와 함께 사용하며 우선 Elastic Search 에 대해 알아보자.
Elastic Search
Elastic Search 와 RDB 의 키워드 차이점을 먼저 설명한다.
Elastic Search 는 REST API 를 사용하여 데이터를 조회, 삽입, 수정, 삭제를 하기 때문에 명령어 역시 REST 방식과 동일하다.
- 이처럼 RDB 와는 다르게, Elastic Search 는 해당 키워드가 몇번째 도큐먼트(Row)에 있는지의 정보만 저장한다. 반면 RDB 는 모든 정보를 전부다 저장하기 때문에 검색 속도가 느릴 수 밖에 없다.
- RDB 의 indexing 방법과 차이가 있으며, 이를 Inverted Indexing 이라 부른다.
- John 이라는 키워드를 검색했다고 가정해보자.
- Elastic Search 는 O(1) 의 시간복잡도가 예상되는 반면, RDB 에서는 O(n) 의 시간복잡도가 예상된다.
Elastic Search 의 인덱스(DB)에 저장되어 있는 타입(테이블)의 도큐먼트(Row)의 정보들을 예시로 보면 다음과 같다.
또한 다음과 같이 RDB 의 쿼리는, Elastic Search 의 메소드와 매핑된다.
'개인 공부 > ELK' 카테고리의 다른 글
[ElasticSearch] Aggregation 이란 (4) | 2023.10.22 |
---|---|
[Elastic Search] Mapping 의 중요성 (2) | 2023.10.22 |
[ElasticSearch] 기초 CURD와 Bulk Update (0) | 2023.10.22 |