What is Elasticsearch – Bigdata basic introduction

elasticsearch basic introduction

 

 

Elasticsearch?

요즘 Elasticsearch을 많이 사용합니다.  BigData가 화제인 요즘 엘라스틱서치는  고성능의 풀텍스트 검색 및 분석 엔진으로 활용성이 높습니다.

오픈소스로 제공되며 준 실시간으로 대량의 데이터를 빠르게 저장하고 검색할 수 있습니다.

그럼 가장 기본(Basic)이 되는 핵심 요소들에 대해서 알아봅시다.

Cluster(클러스터)

클러스터는 전체 데이터를 하나 또는 그 이상의 노드의 집합에서 유지하고 있다는 것을 의미합니다.  하나의 클러스터는 다수의 로드로 구성될 수 있으며, 하나의 클러스터에 다수의 서버로 바인딩하여 운영하거나 하나의 서버에 다수의 클러스터를 운영할 수 있습니다.

실행 명령

 

환경설정 파일

 

Node(노드)

클러스터에 구성된 하나의 서버를 의미합니다. 노드는 데이터를 저장하고 클러스터 인덱싱에 참여하여 검색기능을 제공합니다. 이름으로 클러스터내 노드간에 구분할 수 있으며 같은 클러스터명을 가진 노드는 자동으로 함께 바인딩 됩니다.

실행 명령

환경설정 파일

 

노드는 클러스터의 상태를 관리하는 마스터 노드와 데이터 입/출력과 검색을 수행하는 데이터 노드로 구분됩니다. 아래와 같이 node01을 마스터로 지정하고 데이터 노드로 지정하지 않으면 실제 데이터는 node01에는 저장되지 않습니다.

실행 명령

환경설정 파일

 

 

기존 관계형 DB를 많이 봐왔기 때문에 Elasticsearch의 용어적 차이를 설명하면 다음과 같습니다.

데이터베이스 (Database) -> 인덱스(index)

테이블(Table) -> 타입(Type)

행(Column) -> 필드(Field)

열(Row)-> 도큐먼트 (Document)

스키마(Schema) -> 매핑(Mapping)

 

인덱스(index)

인덱스는 비슷한 특성을 가진 도큐먼트의 집합으로 인덱스를 생성하여 하나의 집합으로 관리할 수 있습니다. 인텍스는 고유의 이름을 가지며 이를 통해 검색을 하거나 업데이트 및 삭제를 진행할 수 있습니다. Elasticsearch를 구성한다면 가장먼저 해야 할 작업입니다.

인덱스를 지정할 때 Shard(샤드) / Replica(리플리카)를 설정해야 합니다.

Shard(샤드): 데이터 검색 단위로 데이터를 나누어 저장하게 됩니다.  인덱스에 참여할 노드수라고 생각하셔도 됩니다. 부하분산 및 처리량 확장을 위해서 사용한다고 생각하시면 됩니다.

Replica(리플리카): 샤드의 복사본 개수를 지정합니다. 샤드로 분산되어 저장되었는데 노드에 문제가 발생하였을때

다른 노드에 복사본이 있어 고가용성용도로 사용하시면 됩니다. 다만 리플리카는 전체 노드수보다 작게 구성하여야 합니다.

실행 명령

환경설정 파일

 

필드(Field) / 매핑(Mapping)

JSON으로 Elasticsearch는 데이터를 조회하거나 업데이트 검색 할 수 있습니다. 그때 파라미터들이 필드가 됩니다. 단 필드와 행이 다른 부분은 필드의 경우 필드 안에 다수의 필드를 가지고 있을 수 있습니다. 필드의 전체 구조가 매핑이 됩니다.

아래 에 보면 전체 매핑구조를 확인 할 수 있고 각 필드명과 타입에 대해서 알 수 있습니다.

 

도큐먼트 (Document)

하나의 저장된 테스트 기반의 데이터의미합니다.

 

REST API

Elasticsearch는 REST API 구조로 통신을 합니다.

다음과 같이 4가지 메소드를 통해 Elasticsearch를 이용할 수 있습니다.

GET -> Read(curl 옵션: -X GET, GET은 X 옵션을 사용하지 않으면 GET으로 동작)

PUT -> Update(curl 옵션: -X PUT)

POST -> Create(curl 옵션: -X POST)

DELETE -> Delete(curl 옵션: -X DELETE)

 

*pretty 옵션은 시각적으로 정렬해 주는 기능을 합니다.

 

개념에 대해서는 이정도 알아보고 다음에는 설치에 대해서 함께 진행해 보겠습니다.

 

What is Elasticsearch –  Bigdata basic introduction 

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.