https://www.elastic.co/kr/elasticsearch
대량의 데이터를 신속하게 분석할 수 있는 오픈소스 기반 검색 엔진
1. 개요
-
분산 검색 & 분석 엔진
-
벡터 DB
|
RDB |
Vector DB (ElasticSearch) |
| 특징 |
- 데이터를 테이블 형태로 저장 |
|
- SQL 사용
- ACID 보장
(원자성, 일관성, 고립성, 지속성)
- KEY를 통한 테이블 관계 설정 | - 분산 시스템
- 전문 (full-text) 검색
- 데이터를 수치(벡터) 형태로
바꾸어 저장
- 검색 시 ANN (근사 최근접 이웃)
알고리즘 사용
- JSON 기반 데이터 모델링 |
| 장점 | - 구조화된 데이터 관리 용이
- 트랜잭션에 중점을 두어,
일관성 / 안전성 보장
- 표준화된 쿼리 언어 | - 빠른 검색 성능
시간복잡도 : O(1)
- 수평적 확장 가능
- 텍스트, 이미지, 오디오 등
다양한 비정형 데이터 저장 가능 |
| 단점 | - 스키마가 엄격해 구조 변경 어려움
- 대량의 데이터, 복잡한 쿼리
처리 시 속도 저하
- 수평적 확장 (서버 추가) 어려움 | - 데이터 검색 시 약간의 지연 발생
- ANN은 최대로 유사한 벡터를
찾는 알고리즘, 따라서 100%
일치하는 데이터를 찾기엔
정확성이 떨어짐 |
| 특화 데이터 | 정형 데이터 | 비정형 데이터 |
| 데이터 표현법 | 테이블
(행, 열) | 벡터 |
| 차원 | 2차원 | n차원 |
| 언어 | SQL | 각 DB별 쿼리 언어 (ES|QL) |
2. 기능
https://www.elastic.co/kr/elasticsearch/features
Elastic search에서 자주 쓰는 기능
- Time-based-Index → 날짜별 로그 저장
- Full-text Search → 에러 메시지, 키워드 검색
- Aggregation → 로그 레벨별 카운트, 서비스별 통계
- Alerting (kibana or external) → 특정 조건에 알람 전송
3. 데이터 구조
예시) 로그 문서 구조