기존 RDBMS와 데이터를 저장하는 방식이 다르다.
각 value(text)들이 포함된 document들을 나열한다.
위 그림은 document들이 indexing되어 (text, documents)란 key, value 형태로 mapping 되는 과정을 설명한다.
RDB와의 다른 점들을 비교하면 위 표와 같고, 추가로 아래와 같이 대응된다.
아래와 같이 특정 서버에서 생성되는 데이터를 RDBMS or Non-RDBMS에 저장을 하고, 검색 혹은 분석이 필요한 부분만을 데이터를 추출하여 Elasticsearch에 자동 저장시킨다.
이때 기존 DB에서 Elasticsearch로 자동 저장하는, 즉 ETL 기능을 하는 것이 바로 logstash이다.
위 그림에서 Mongo Connector에 해당하는 부분이 바로 logstash이다.
Elasticsearch 클러스터링 과정
Elasticsearch를 실행하면 실행된 단일 프로세스를 노드라고 한다.
샤드(Shard) 단위로 분리해서 저장한다.
노드 내 데이터가 쌓이게 되면, 여러 개의 노드를 띄워서 하나의 클러스터로 묶을 수 있다. 즉, 가장 큰 시스템의 단위가 클러스터이다.
여러 개의 노드가 생기면서 relocation이 발생한다.
노드가 무결점과 가용성을 위해 샤드의 복제본을 만든다.
하나의 노드가 죽게 되었을 때, 복제본이 없는 샤드들은 또 다시 살아있는 노드로 복제된다.
검색 과정
덕분에 좋은 내용 잘 보고 갑니다.
정말 감사합니다.