DataEngineering

[ELK 스택] ElasticSearch

녜잉 2024. 7. 2. 00:42

1. ELK 스택이란? 

  • ElasticSearch, Logstash, Kibana의 줄임말,
  • 데이터를 수집하고 빠르게 검색하고, 데이터 무더기에서 쓸만한 정보를 보기 좋게 시각화 하는 것을 목표로 함 

Logstash

  • 데이터 형태에 구애 받지 않고 데이터를 ElasticSearch에 수집해주는 역할 

Kibana

  • 데이터 시각화 툴, 엘라스틱서치에 적재된 데이터를 화면에 보여주는 역할 

 

 


 

2. ElasticSearch 기본 개념정리 

엘라스틱 서치가 데이터를 저장하는 흐름도

엘라스틱서치 vs 관계형 DB

 

엘라스틱서치

text Document
John doc1, doc2
database doc1, doc3
  • 키워드가 어떤 document에 있는 지를 저장 
  • 검색 시, 검색한 키워드가 있는 문서를 바로 반환 가능 
  • like 해시 테이블, 매우 빠름 

 

관계형 DB

document context
doc1 "class" : {
                 "name": "database",
                 "professor": "John"
}
doc2 "class" : {
                 "name": "algorithm",
                 "professor": "John"
}
doc3 "class" : {
                 "name": "database",
                 "professor": "Tom"
}
  • 검색 시, 문서에서 검색한 키워드가 있는지 확인해야 함 
  • doc1 ~ doc2까지 확인 → O(N)

 

엘라스틱서치 자료구조 

 

1) 인덱스(Index) 

  • 가장 큰 개념
  • 여러 type을 가짐 
  • 관계형 데이터베이스의 Database와 같은 의미 

 

2) 타입(type)

  • 인덱스 다음 
  • 여러 document를 가짐 
  • 관계형 데이터베이스의 table과 같은 의미 

3) document

  • 인덱스 안 
  • 같은 properties를 가짐 
  • 관계형 데이터베이스의 Row와 같은 의미 

4) Field

  • 관계형 데이터베이스의 Column과 같은 의미 

 

5) Mapping

  • 관계형 데이터 베이스의 Schema와 같은 의미 

 

ElasticSerch CRUD

ElasticSearch 관계형 DB
GET SELECT
PUT UPDATE
POST INSERT
DELETE DELETE

 

curl command를 사용, restfulAPI를 전송함 

curl -XGET localhost:9200/classes/class/1
#select * from class where id = 1;

curl -XPOST localhost:9200/classes/class/1 -d '{xxx}'
#insert into class value(xxx);

curl -XPUT localhost:9200/classes/class/1 -d '{xxx}'
#update class set xxx where id = 1;

curl -XDELETE localhost:9200/classes/class/1
#delete from class where id = 1;

 

 


실습은...일어나서...

 

https://inf.run/QaFn

 

[지금 무료] ELK 스택 (ElasticSearch, Logstash, Kibana) 으로 데이터 분석 강의 | Minsuk Heo - 인프런

Minsuk Heo | ElasticSearch, LogStash, Kibana 기초부터 설명합니다. 최종단계로 ELK 스택을 활용하여, 세계 인구 분석, 주식 분석을 하시는 본인의 모습을 발견하실 수 있습니다., [임베딩 영상] 1. ELK 스택 

www.inflearn.com

해당 강의를 정리한 내용입니다!