1. 엘라스틱 서치의 특징
1.1. 분산/확장성/병렬처리
엘라스틱 서치 구성 시 보통 3개 이상의 노드(엘라스틱서치 서버)를 클러스터로 구성하며, 데이터를 샤드로 저장시 클러스터 내 다른 호스트에 복사본을 저장해두기 때문에 하나의 노드가 죽거나 샤드가 깨져도 복제되어 있는 다른 샤드를 활용한다.
데이터 분산과 병렬처리가 되므로 실시간으로 검색 및 분석할 수 있고, 노드르 수평적으로 늘릴 수 있다. 또한 노드를 클러스터에 추가할 수 있다.
2. 클러스터
하나 이상의 노드(서버)가 모인 것이며, 전체 데이터를 저장하고 모든 노드를 포괄하는 통합 색인화 및 검색 기능을 제공한다.
고유의 이름으로 식별되고, 기본 이름은 "elasticsearch"이다. 어떤 노드가 어느 클러스터에 포함되기 위해서는 이름에 의해 클러스터의 구성원이 되도록 설정된다.
3. 노드
엘라스틱 서치는 분산 시스템이며 노드는 이 분산 시스템에서 작동하는 하나의 엘라스틱서치 엔진을 의미한다. (내 컴퓨터에 엘라스틱 서치를 하나 설치했다면 하나의 노드를 설치한것과 동일하다.)
노드는 데이터를 저장하고 클러스터의 색인화 및 검색 기능에 참여한다. 이또한 이름으로 식별되는데, 기본 이름은 시작시 노드에 지정되는 임의 UUID이다.
노드는 클러스터의 이름을 통해 어떤 클러스터의 일부로 구성될 수 있다. 기본적으로 각 노드는 'elasticsearch'라는 이름의 클러스터에 포함되도록 설정한다. 만약 네트워크에서 다수의 노드를 시작할 경우, 이 노드가 모두 자동으로 'elasticsearch'라는 단일 클러스터를 형성하고 이 클러스터의 일부가 된다.
Elasticsearch를 별 다른 설정없이 실행하면 default 설정값으로 실행하게 되므로, 설정값 변경 없이 두개의 노드를 실행할 경우 충돌이 발생한다. 하나의 컴퓨터에서 여러개의 노드를 실행하고자하는 경우 적절한 설정값의 지정이 필요하다.
- cluster.name: 클러스터의 이름
- node.name: 노드의 이름, 서로 다른 이름으로 설정한다.
- path.data: 해당 노드의 데이터가 적재되는 경로
- path.logs: 해당 노드의 로그가 적재되는 경로
- http.port: 충돌되지 않게 다른 포
4. 인덱스
색인은 다소 비슷한 특성을 가진 문서의 모음이며 단일 클러스터에서 원하는 개수의 색인을 정의할 수 있다.
예를 들어 고객 데이터에 대한 색인, 제품 카탈로그에 대한 색인, 주문 데이터에 대한 색인 등이 있다.
인덱스 내부에는 JSON 형태로 된 다수의 도큐먼트가 존재한다.
5. 도큐먼트
데이터가 저장되는 기본 단위로 JSON 형태이다. 여러 필드와 값을 가진다.
RDS와 비교
엘라스틱 서치
- index: member
- document :
{"name" : "corn" ,
"age" : 30,
"gender" : "male"}
RDB
- 테이블: member (name,age,gender 컬럼을 가짐)
- 레코드 데이터: "corn", 30, "male"
RDB | Elasticsearch |
데이터베이스 | 인덱스 |
테이블 | 타입 |
Row | 도큐먼트 |
컬럼 | 필드 |
스키마 | 매핑 |
6. Data CRUD
Data CRUD | Elasticsearch Restful |
SELECT | GET |
INSERT | PUT |
UPDATE | POST |
DELETE | DELETE |
user 인덱스 생성
$ curl -XPUT http://localhost:9200/user?pretty
Document 만들기
$ curl -XPOST http://localhost:9200/user/class/1/ -d '{"title" : "ElasticSearch", "member" : "kimkyuri"}'
참고)
https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-basic-concepts.html
'Backend Study > ELK Stack' 카테고리의 다른 글
[Elastic Search] 데이터 모델링 (0) | 2023.02.17 |
---|---|
[ElasticSearch] Rdbms와 ElasticSearch 연동하기 (0) | 2023.02.14 |
엘라스틱서치 키바나로 스냅샷 생성하기 (0) | 2023.01.24 |
4. 데이터 검색 (0) | 2023.01.24 |
3.4 엘라스틱서치 분석기 (0) | 2023.01.22 |