Computer Science/common

ElasticSearch 개념 및 구조

짠백이 2020. 4. 21. 21:08
반응형

1. elasticsearch 개념

 1.1 정의 

 - 대용량 데이터를 '실시간에 가깝게' 처리하는 java 기반의 검색 엔진  

- 예를들면 하루에 300만 row의 트래픽 데이터가 수집되는 솔루션이라면 RDB가 감당하지 못하기 때문에 elasticsearch을 사용합니다.


 1.2 ELK 구성

 - ELK : Elastic사 에서 제공하는 Elasticsearch, Logstash, Kibana의 세 가지 오픈 소스 프로젝트

 - Logstash : 실시간 로그를 수집/집계/파싱하여 elasticSearch로 전달

 - ElasticSearch : db역활

 - Kibana : ElasticSearch를 제어하고 데이터를 시작화하는 node.js 기반의 웹 브라우징 프로그램

 

 1.3 elasticSearch 구성 

 

2. 기본용어  (RDB와 비교)

 


3. 대용량 데이터 처리 

 3.1 색인 (index) : 하나의 키워드가 하나의 id 를 갖는것 

    - keyword : id = 1 : 1

    - ex) 요리도서 예시

     = 가지튀김 : 24 page

     = 냉채족발 : 51 page

     = 도토리묵 : 78 page

 

 

 3.2 역색인 (inverted index) : 하나의 키워드가 여러개의 id를 갖는것

    - keyword : id = 1 : N

    - ex) 요리도서 예시

     = 가지튀김 : 24 , 28 , 31 page

     = 냉채족발 : 51 , 62 page 

     = 도토리묵 : 78 , 80 , 93 page

 

 3.3 RDB 보다 검색속도가 빠른이유 : 역색인

 

 

4. reference link

-엘라스틱 서치 개념 : https://12bme.tistory.com/171

-역색인 : https://esbook.kimjmin.net/06-text-analysis/6.1-indexing-data

 

 

 

-------------------------------------------------------------------------------------------------------------

 

항상 정확한 정보를 공유하고자 노력하고있지만 내용에 개선이 필요한 부분이 있을 수 도 있습니다.

개선이 필요하다고 판단되는 부분이 있을 경우 댓글로 조언해주시면 감사하겠습니다.

 

* 해당 포스팅이 도움이되셨다면 공감과 댓글 부탁드릴께요 ㅎㅎ

 

------------------------------------------------------------------------------------------------------------

반응형

'Computer Science > common' 카테고리의 다른 글

내부 DDOS 공격에 대한 기록 (JVM OOM)  (0) 2023.09.05
[Thread] 동기화 이슈 처리방법 (java)  (0) 2020.04.23
[Thread] muti Process VS muti Thread  (0) 2020.04.18
[Thread] 기초  (0) 2020.04.18
[GIT] git 개념 및 구성  (0) 2020.01.27