반응형
Elasticsearch 란?
1. 루씬 기반의 오픈소스 검색 엔진이다.
루씬이란 자바 언어로 이루어진 정보 검색 라이브러리이다.
루씬 라이브러리를 통해서 색인과 검색을 가능하게 한다.
json 기반의 문서를 저장하고 검색할 수 있으며 분석 작업도 가능하다.
2. 준 실시간 검색 시스템
실시간이라고 생각 될 만큼 색인된 데이터가 빠르게 검색된다.
3. 고가용성(HA)를 위한 클러스터를 구성할 수 있다.
한 대 이상의 노드로 클러스터를 구성하여 높은 수준의 안정성을 보장하고
부하 분산을 통해 안정적인 데이터 처리가 가능하다.
4. 동적 스키마 생성 가능
입력될 데이터들에 대해 미리 스키마를 정의하지 않아도 자동으로 스키마가 생성된다.
일반적으로 RDBMS 에서는 특정한 데이터를 저장하기 위해서는 스키마 지정이 필요하다.
create table TEST_TABLE
(
seq int,
name varchar(100),
age int
);
insert into TEST_TABLE (seq,name,age) values (1,"harry",30); # OK
insert into TEST_TABLE (seq,name,age) values (1,"harry","what"); # ERROR
위와 같이 스키마를 먼저 지정하고,
데이터 입력시에 해당 데이터가 지정해준 데이터 타입과 일치하지 않는 경우
입력할 수 없게된다.
이와 반대로 Elasticsearch 같은 경우에는 데이터를 먼저 넣어주면,
ES 가 자동으로 해당 필드의 타입을 mapping 해준다.
# 데이터 삽입
POST test-index-2023/_doc
{
"seq": 1,
"name": "John Doe",
"age": 25
}
# 데이터 조회
GET test-index-2023/_search
# mapping 정보 확인
GET test-index-2023/_mapping
5. REST-API 기반의 인터페이스를 제공한다.
Rest-api 기반의 인터페이스를 제공하여 비교적 사용을 위한 진입 장벽이 낮은 편이다.
(라이브러리가 따로 없이 REST-API 만으로도 ES 와 통신이 가능함)
이로 인해서 개발편의도도 상당히 높다.
반응형
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] text, keyword 타입 (0) | 2023.03.02 |
---|---|
[Elasticsearch] 검색(Search) (0) | 2023.02.28 |
[Elasticsearch] 색인 (Indexing) (0) | 2023.02.27 |
[Elasticsearch] Shard 란? (0) | 2023.02.22 |
[Elasticsearch] Cluster, Node 란? (0) | 2023.02.21 |