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;
실습은...일어나서...
해당 강의를 정리한 내용입니다!