반응형
블로깅의 목적
- 엘라스틱 서치(ElasticSearch)에 대해서 공부해보고, 엘라스틱 서치의 장단점을 파악해보자. 반드시!
엘라스틱서치(ElasticSearch)는?
- 요즘 빅데이터를 빠르게 검색하기 위해 NoSQL(No Structured Query Language) 를 많이 사용함.
- 즉, 엘라스틱도 NoSQL의 일종.
- 분류가 가능함.
- 분석처리를 통한 실시간에 준하는 빠른 검색이 가능함.
- 기존 데이터베이스로는 처리하기 어려운 대량의 비정형 데이터도 검색 가능함.
- 전문 갬색(Full Text) / 구조 검색 모두를 지원함.
728x90
그럼, 엘라스틱 서치의 장점을 정리하고 알아보자.
- 오픈소스 검색엔진
- 아파치 재단의 루씬(Lucene)을 기반으로 개발된 오프소스 검색 엔진.
- 오픈소스의 장점인,
- 셀수없는 수많은 사용자가 있고, 또한 버그가 발생하면, 대부분 빠르게 해결됨.
- 전문검색(Full Text) 지원
- 대부분의 데이터베이스는 기본 쿼리 및 색인 구조의 한계로 인해 기본적인 텍스트 검색 기능만 제공함.
- but 엘라스틱서치는 고차원적인 전문 검색(Full Text)이 가능함.
- 전문 검색이란?
- 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색하는 것을 말함.
- 즉, 전문검색은, 관계형 데이터 베이스에는 적합하지 못함.
- but, 엘라스틱서치는 다양한 기능별, 언어별 플로그린을 조합해 빠르게 검색가능함.
- 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색하는 것을 말함.
- 대부분의 데이터베이스는 기본 쿼리 및 색인 구조의 한계로 인해 기본적인 텍스트 검색 기능만 제공함.
- 통계분석
- 비정형 로그 데이터를 수집 후,
- 한곳에 모아 통계분석을 할 수 있음.
- 엘리스틱 서치 와 키바나(Kibana)의 조합으로 실시간으로 쌓이는 로그를 시각화하고 분석 가능함.
- 비정형 로그 데이터를 수집 후,
- 스키마 리스(Schema-less)
- 데이터베이스는 스키마라는 구조에 따라 데이터를 적합한 형태로 변경 후 저장하고 관리함.
- but, 엘라스틱 서치는 정형화 되지 않은 다양한 형태의 문서도 자동으로 색인 및 검색 가능함.
- RESTful API 지원
- HTTP 기반 의 RESTful API를 지원하고, 요청/응답에도 JSON 형식을 사용함.
- 멀티-테넌시(Multi-Tenancy) 기능 제공
- 서로 상이한 인덱스일지라도 검색할 필드명만 같으면, 여러개의 인덱스를 한번에 조회 가능함.
- 즉, Multi-tenancy 기능 제공함.
- 서로 상이한 인덱스일지라도 검색할 필드명만 같으면, 여러개의 인덱스를 한번에 조회 가능함.
- 도규먼트 오리엔티드(Document-Oriented)
- 여러 계층의 데이터를 JSON 형식의 구조화된 문서로 인덱스에 저장가능함.
- 역색인(Inverted Index)
- 루씬기반의 검색 엔진으로써, 역색인(Inverted Index)을 지원 가능함.
- but, 요즘 많이 사용하는 MongoDB, Cassandra 같은 일반적인 NoSQL은 역색인을 지원하지 않음.
- 즉, 다른 NoSQL 과 차별화되는 큰 장점을 보유했다고 말할 수 있음.
- 루씬기반의 검색 엔진으로써, 역색인(Inverted Index)을 지원 가능함.
- 확장성과 가용성지원
- 엘라스틱 서치를 분산 구성해서 확장하면, 대량의 문서를 좀 더 효율적으로 처리할 수 있음.
- 분산 환경에서 데이터는 보통 샤드(Shard) 라는 작은 단위로 나뉘어 제공됨.
- 그리고, 엘라스틱 서치는, 인덱스를 만들 때마다 해당 샤드의 수를 조절할 수 있음.
- 즉,이를 통해서 데이터의 종류와 성격에 따라 데이터를 분산해서 빠르게 처리하는것이 가능함.
- 엘라스틱 서치를 분산 구성해서 확장하면, 대량의 문서를 좀 더 효율적으로 처리할 수 있음.
- but, 항상 하나의 기술에는 장점이 있으면 단점이 있게 마련이다.
- 즉, 보통 IT 기술들은
- 한가지 기술만 사용하는 것이 아니라, 서로 장단점을 보완할 수 있는 기술들을 융합해서 사용한다
- 즉, 보통 IT 기술들은
그럼, 엘라스틱 서치의 단점을 정리하고 알아보자
- 실시간이 아님.
- 일반적으로 색인된 데이터는 통상적으로 1초 뒤에나 검색이 가능해짐.
- 왜냐하면, 색인된 데이터는 내부적으로
- 커밋(commit) / 플러시(flush)와 같은 복잡한 과정을 거치기때문임.
- 왜냐하면, 색인된 데이터는 내부적으로
- 그러나, 거의 실시간처럼 보임.
- 일반적으로 색인된 데이터는 통상적으로 1초 뒤에나 검색이 가능해짐.
- 트랜잭션 / 롤백기능을 제공하지 않음.
- 전체적인 클러스터의 성능 향상을 위해서 비용 소모가 큰 트랜잭션 / 롤백기능을 지원하지 않기 때문에, 최악의 경우 데이터 손실의 위험이 존재함.
- 데이터의 업데이트를 제공하지 않음
- 내부적으로 업데이터는 기존 문서를 삭제하고 변경된 내용으로 새로운 문서를 생성하는 방식을 사용함.
- 즉, 단순 업데이터에 비해서 많은 비용이 발생하기도 함.
- 내부적으로 업데이터는 기존 문서를 삭제하고 변경된 내용으로 새로운 문서를 생성하는 방식을 사용함.
결론
- 모든 IT 기술들이 그렇듯, 엘라스틱서치는 장점과 단점을 가지고 있음.
- 하지만, 사용자에 따라서 단점을 충분히 커버할 수 있기때문에, 요즘 엘라스틱서치를 많이 사용하고 있는듯함.
- 그래서, 저도 회사에서 지원하고있는 이러닝 / 인터넷 / 서적을 통해서 엘라스틱서치에 대해서 많은 지식을 쌓아보고자 노력하고 있음.
- 즉, IT 기술을 사용할 때, 무작정 사용하는 것이아니라 꾸준한 공부와 실전같은 테스트를 통해서 장점과 단점을 알아가는 노력이 반드시 필요함.
- 이런 노력없이 무작정 사용하면, 라이브 적용시 반드시 서비스 장애를 만들기 마련임.
- 즉, IT 기술을 사용할 때, 무작정 사용하는 것이아니라 꾸준한 공부와 실전같은 테스트를 통해서 장점과 단점을 알아가는 노력이 반드시 필요함.
- 오늘도, 목표였던, 엘라스틱서치에 대한 장단점에 대한 지식 한가지 획득완료 및 목표 달성! 감사합니다.
300x250
'좋아하는 것_매직IT > 3.elasticsearch' 카테고리의 다른 글
1.ElasticSearch, 데이터 사이언스에 대해서 알아보자. (0) | 2021.01.04 |
---|---|
0.ElasticSearch, 검색 시스템과 검색 엔진에 대한 정의를 알아보자. (0) | 2021.01.04 |