본문 바로가기

검색엔진/엘라스틱서치

[ES]Elasticsearch란

1. Elasticsearch란

Elasticsearch는 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 분산형 오픈소스 검색 및 분석 엔진이다. Elasticsearch는 Apache Lucene을 기반으로 구축되며, 2010년에 최초로 출시했다.

간단한 RESET API, 분산형 특징, 속도, 확장성으로 유명한 Elaticsearch는 데이터 수집, 보강, 저장, 분석, 시각화를 위한 오픈소스 도구 모음인 Elastic Stack의 중심 구성 요소입니다. 보통 (Elasticsearch, Logstach, Kibana의 머리글자를 따서) ELK Stack이라고 하는 Elastic Stack에는 이제 데이터를 Elasticsearch로 전송하기 위한 경량의 데이터 수집 에이전트들이 풍부하게 제공되는 컬렉션인 Beats가 포함되어 있다.

2. Elasticsearch는 어디에 사용되는가?

Elasticsearch의 속도와 확장성, 그리고 수많은 종류의 콘텐츠를 색인할 수 있는 능력은 다음과 사용 사례에 이용될 수 있다는 뜻이다.

- 애플리케이션 검색

- 웹사이트 검색

- 엔터프라이즈 검색

- 로깅과 로그 분석

- 인프라 메트릭과 컨테이너 모니터링

- 위치 기반 정보 데이터 분석 및 시각화

,...

3. Elasticsearch는 어떻게 작동하는가?

로그, 시스템 메트릭, 웹 애플리케이션 등 다양한 소스로부터 원시 데이터가 Elasticsearch로 흘러들어간다. 데이터 수집은 원시 데이터가 Elasticsearch에서 색인되기 전에 구문 분석, 정규화, 강화되는 프로세스이다. Elasticsearch에서 일단 색인되면, 사용자는 이 데이터에 대해 복잡한 쿼리를 실행하고 집계를 사용해 데이터의 복잡한 요약을 검색할 수 있다. Kibana에서 사용자는 데이터를 강력하게 시각화하고, 대시보드를 공유하며, Elastic Stack을 관리할 수 있다.

4. Elasticsearch 인덱스는 무엇인가?

Elasticsearch 인덱스를 서로 관련되어 있는 문서들의 모음이다. Elasticsearch는 JSON문서로 데이터를 저장한다. 각 문서의 일련의 키(필드나 속성의 이름)와 그에 해당하는 값(문자열, 숫자, 부울, 날짜, 값의 배열, 지리적 위치 또는 기타 데이터 유형)을 서로 연결한다.

Elasticsearch는 반전된 인덱스라고 하는데, 이것은 아주 빠른 전체 텍스트 검색을 할 수 있도록 설계된 것이다. 반전된 인덱스는 문서에 나타나는 모든 고유한 단어의 목록을 만들고, 각 단어가 발생하는 모든 문서를 식별한다.

색인 프로세스 중에, Elasticsearch는 문서를 저장하고 반전된 인덱스를 구축하여 거의 실시간으로 문서를 검색 가능한 데이터로 만든다. 인덱스 API를 사용해 색인이 시작되며, 이를 통해 사용자는 특정한 인덱스에서 JSON 문서를 추가하거나 업데이트할 수 있다.

5. Logstach는 어디에 사용되나?

Elastic Stack의 핵심 제품 중 하나인 Logstash는 데이터를 집계하고 처리하여 Elasticsearch로 전송하는 데 사용된다. Logstash는 서버 사이드 오픈 소스 데이터 처리 파이프라인으로, 사용자는 이를 이용해 다양한 소스에서 동시에 데이터를 수집하고, 이를 강화하고 변환한 다음, Elasticsearch에서 색인되도록 할 수 있다.

6. Elasticsearch를 사용하는 이유는 무엇인가?

1) Elasticsearch는 빠르다.

- Elasticsearch는 Lucene을 기반으로 구축도기 때문에 전체 텍스트 검색에 뛰어나다. 또한 거의 실시간 검색 플랫폼이다. 이것은 문서가 색인될 때부터 검색 가능해질 때까지의 대시 시간이 아주 짧다는 뜻이다. 이 대기 시간은 보통 1초이다. 결과적으로, Elasticsearch는 보안 분석, 인프라 모니터링 같은 시간이 중요한 사용 사례에 이상적이다.

2) Elasticsearch는 본질상 분산적이다.

- Elasticsearch에 저장된 문서는 샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하르뒈어 장애 시에 중복되는 데이터 사본을 제공한다. Elasticsearch의 분산적인 특징은 수백 개(심지어 수천 개)의 서버까지 확장하고 페타바이트의 데이터를 처리할 수 있게 해준다.

3) Elasticsearch는 광범위한 기능 세트와 함께 제공된다.

- 속도, 확장성, 복원력뿐 아니라, Elasticsearch에는 데이터 롤업, 인덱스 수명 주기 관리 등과 같이 데이터를 훨씬 더 효율적으로 저장하고 검색할 수 있게 해주는 강력한 기본 기능이 다수 탑재되어 있다.

4) Elastic Stack은 데이터 수집, 시각화, 보고를 간소화한다.

- Beats와 Logstach의 통합은 Elasticsearch로 색인하기 전에 데이터를 훤씬 더 쉽게 처리할 수 있게 해준다. 

7. Elasticsearch 배포 옵션에는 어떤 것들이 있는가?

Elasticsearch는 Elasticsearch Service(아마존 웹 서비스(AWS), Google Cloud, 알리바바 클라우드에서 이용가능)를 통해 호스트되는 관리형 서비스로 배포될 수 있으며, 사용자가 다운로드하여 직접 자체 하드웨어나 클라우드에 설치할 수 있다. 

8. Elasticsearch는 어떤 프로그래밍 언어를 지원하는가?

- 자바

- 자바스크립트(Node.js)

- GO

,...

9. Elasticsearch는 REST API를 제공한다.

클러스터 상태 확인, 인덱스에 대한 CRUD(생성, 읽기, 업데이트, 삭제) 및 검색 작업 실행, 필터링 및 집계 같은 고급 검색 작업 수행을 위한 종합적이며 강력한 REST API 세트를 제공한다.

www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html

 

REST APIs | Elasticsearch Reference [7.9] | Elastic

We are working on including more Elasticsearch APIs in this section. Some content might not be included yet.

www.elastic.co

github.com/elastic

 

elastic

elastic has 415 repositories available. Follow their code on GitHub.

github.com

 

 

'검색엔진 > 엘라스틱서치' 카테고리의 다른 글

[ES] Solr vs Elasticsearch  (0) 2020.09.09