새소식

Data

Elasticsearch 구조

  • -

Elasticsearch 데이터 처리

데이터 색인(Indexing)

출처 :   https://esbook.kimjmin.net/

  • 색인(Indexing) : 데이터가 검색될 수 있는 구조로 변경하기 위해 원본 문서를 검색어 토큰들로 변환해 저장하는 과정
  • 인덱스(index, indices) : 색인 과정 거친 결과물&색인된 데이터가 저장되는 저장소
    • Elasticsearch에서 도큐먼트들의 논리적인 집합을 표현하는 단위
    • 단일 데이터 단위를 Document, Documnet를 모아 놓은 집합이 Index, indicies
  • 검색(search) : 인덱스에 들어있는 검색어 토큰들을 포함하고 있는 문서를 찾아가는 과정
  • 질의(query) : 사용자가 원하는 문서 찾거나 집계 결과 출력 위해 검색 시 입력하는 검색어 또는 검색 조건

 

REST API

  • Elasticsearch는 클러스터와 상호 작용하는데 사용할 수 있는 강력한 REST API 제공
  • API로 수행할 수 있는 작업들
    • 클러스터, 노드 및 색인 상태, 상태 및 통계 확인
    • 클러스터, 노드 및 색인 데이터 및 메타 데이터 관리
    • CRUD(Create, Read, Update, Delete)&인덱스 대한 검색 작업 수행
    • 페이징, 정렬, 필터링, 스크립팅, 집계 등 기타 여러 고급 검색 작업 실행
  • Web의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처
  • 구성 요소 3가지 : Resource, Method, Message

  • 메서드 통해 리소스 호출하면, 내부적으로 접근 제어 따라 JSON 형태, url 주소 등 통해 확인O
  • 메서드로 호출

  • Copy as cURL 클릭

동일한 결과 출력됨 : curl -XGET "http://localhost:9200/_cat/indices"

  • url로 호출

 

  • 즉, Elasticsearch는 Web을 통해 정보 호출, 생성 등을 진행한다는 것을 알 수 있음

 

HTTP Method, CRUD, SQL 비교

HTTP 메서드 CRUD SQL
GET Read Select
PUT Update Update
POST Create Insert
DELETE Delete Delete

HTTP 메서드가 Elasticsearch에서 사용하는 방식

 

 

 

Elasticsearch 시스템 구조

클러스터 구성

여러 서버에 하나의 클러스터로 실행

  • Elasticsearch 노드들은 클라이언트와 통신 위한 http 포트(9200~9299), 노드 간의 데이터 교환 위한 tcp 포트(9300~9399) 총 2개 네트워크 통신 열어두고 있음
  • 일반적으로 1개 물리 서버마다 하나의 노드 실행하는 것 권장

▶ 예시 : 3개 다른 물리 서버에서 각 1개씩 노드 실행 시 클러스터 구성

출처 :  https://esbook.kimjmin.net/

▶ 예시 : 하나의 물리 서버 안에서 여러 노드 실행

출처 :  https://esbook.kimjmin.net/

  • 각 노드들은 차례로 9200, 9201... 순으로 포트 사용
  • 클라이언트는 9200, 9201 등 포트 통해 원하는 노드와 통신O
  • 물리적 구성과 상관 없이 여러 노드가 하나의 클러스터로 묶이기 위해 클러스터명 'cluster.name' 설정이 묶여질 노드들 모두 동일해야 함
  • 같은 서버/네트워크 내부에 있더라도 'cluster.name'이 동일X, 각 별개의 시스템으로 해석됨

하나의 서버에서 여러 클러스터 실행

참고 : https://esbook.kimjmin.net/03-cluster/3.1-cluster-settings

 

클러스터 상태(health)

GET /_cat/health?v

 

  • 클러스터가 어떻게 진행되고 있는지 기본적인 확인O
  • 클러스터 상태 확인 위해 _cat API 사용
  • Health Color
    • green : 모든 것이 괜찮음(클러스터 완전히 작동 중)
    • yellow : 모든 데이터를 사용할 수 있으나, 일부 복제본은 아직 할당X(클러스터 완전히 작동 중)
    • red : 어떤 이유로든 일부 데이터 사용X(클러스터 부분 작동 중)

 

데이터베이스가 가진 데이터 확인하기

GET /_cat/indices?v

 

  • 갖고 있는 모든 인덱스 항목 조회

 

 

 

 

 

출처

https://esbook.kimjmin.net/

'Data' 카테고리의 다른 글

Elasticsearch 인덱스 매핑 방법  (0) 2024.02.02
Elasticsearch 인덱스 생성&삭제  (1) 2024.02.02
Ubuntu 22.04에서 ELK - Elasticsearch, Kibana 설치  (0) 2024.01.30
REST API(RESTful API)  (0) 2024.01.30
ELK란?  (0) 2024.01.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.