SlideShare a Scribd company logo
ELASTIC SEARCH
DevRookie
요술같은솜씨
Contents
Elasticsearch?
Elasticsearch 특징
Elasticsearch 시스템구조
활용사례
Elasticsearch?
검색엔진이 필요한 이유?
수 많은 정보를 보유하는 데이터베이스로서 필요한 정보를 찾기 위해 일일히
찾는 수고를 하지 않고도 원하는 정보를 쉽게 찾을 수 있게 도와준다.
이는 검색어와 주제어와의 일치 문제,
용자가 반드시 검색엔진의 주제어만 사용한다는 보장이 없다. 서로 다른 검색어와 일치시켜야
어려운점이 많다.
하지만, 검색엔진 사용시 필요한 정보만 검색이 되지 않을때도 있다.
검색엔진의 작동원리
검색어에서 여러가지 관련성을 숫자로 인식
-사람들이 검색한 횟수, 문서에 포함되는 단어 등
이를 토대로 관련성에 대한 내부 점수를 매겨 상위에 정렬한다
inverted index + relevance scoring
아파치 루신(Apache Lucene)을 기반으로 개발된 오픈소스 분산 검색 엔진(서버).
1999년 Hadoop 개발자로 잘 알려진 더그 커(Doug Coutting)에 의해 개발
2001년 Apache Software Foundation에 참여한 뒤,
2005년 Apache top-level 프로젝트로 승격 되었다.
자바 언어로 개발된 오픈소스 정보검색 소프트웨어 라이브러리.
검색에 대한 전문지식이 없이도 색인과 검색기능을 간단히 추가가능
Restful API 인터페이스로 데이터 입출력 하는 DB 서버,
HTTP로 접근하기 때문에 언어별로 따로 작업하지 않아도 된다.
단일 URL을 통한 자원의 접근, HTTP 메소드를 사용하여 자원 처리
Elasticsearch 특징
Elasticsearch는 여러 개의 노드로 구성되는 분산 시스템.
데이터는 각 노드에 분산 저장,
복사본을 유지하여 각종 충돌로부터 노드 데이터 보호.
하나이상의 노드로 구성, 각 노드는 1개 이상의 데이터 원본과 복사
본을 서로 다른위치에 나누어 저장, 노드가 종료되거나 실행에 실패
할 경우 다른 노드로 데이터 이동 등 높은 가용성을 지님
JSON 문서 형식으로 저장, 모든 필드는 기본적으로 인덱싱되며,
모든 인덱스들은 단일 쿼리(NoSQL)로 빠르게 사용할 수 있음.
데이터는 여러 개로 분리된 인덱스들에 그룹으로 저장(DB대응)
서로 다른 인덱스의 데이터를 하나의 질의로 검색하여,
하나의 출력으로 도출 가능
관계형 데이터베이스와 Elasticsearch용어 비교
Elasticsearch 데이터 저장 프로세스
Elasticsearch 시스템구조
클러스터(CLUSTER)
- 클러스터는 Elasticsearch의 가장 큰 시스템 단위
- 하나의 클러스터는 여러 개의 노드로 이루어 짐
- 여러대의 서버가 하나의 클러스터를 구성할 수 있으며, 그 반대도 가능
- 같은 클러스터의 이름으로 노드를 실행하는 것만으로 자동확장이 가능
노드(Node)
- 노드는 마스터 노드와 데이터 노드로 구분
- 마스터 노드는 전체 클러스터 상태의 메타 정보를 관리
- 기존의 마스터 노드가 종료되는 경우 새로운 마스터 노드가 선출됨
- 데이터 노드는 실제 데이터가 저장되는 노드
노드바인딩
- 같은 클러스터 이름을 가지고 실행된 노드는 자동으로 바인딩
- 9200번부터 REST API를 위한 HTTP 통신 포트가 할당
- 9300번부터 노드간 바인딩을 위한 포트로 할당
네트워크 바인딩
- 효율적인 스케일아웃을위해 네트워크에 있는 다른서버의 노드와도 바인딩
- 네트워크 바인딩을 위해 젠 디스커버리(ZEN DISCOVERY) 기능 내장
- 멀티캐스트와 유니캐스트 방식을 모두 지원
- 반드시 두 Elasticsearch 버전은 동일해야 함
elasticsearch
샤드와 복사본
- 샤드는 데이터 검색을 위해 구분되는 최소 단위
- 색인된 데이터는 여러 개의 샤드로 분할 저장
- 기본적으로 인덱스당 5개의 샤드와 5개의 복사본으로 분리
- 개수 설정을 제외하면 사용자가 직접 샤드에 접근하는 경우는 없음
- 데이터가 색인되어 저장되는 공간을 최초샤드(Primary Shard)라 함
- 최초 샤드에 데이터가 색인되면 동일한 수 만큼 복사본을 생성
- 최초 샤드가 유실되는 경우 복사본을 최초 샤드로 승격
- 최초 샤드와 복사본은 동시검색대상이 되어 성능향상에 이점이 있음
- 최초 샤드와 복사본은 서로 다른 노드에 저장
- 생성된 인덱스의 샤드 설정은 변경 불가능
활용사례
방문객의 로그 분석 / Social 데이터 생성 및 분석으로 실시간 응대 / 기사에 대한 반응 분석
Your Contents 1
검색내용과 결과를 통합해 유사한 질문과 해답을 연결
Your Contents 1
1300억 줄이 넘는 소스코드를 검색하는 데 사용
Your Contents 1
매일 5TB가 넘는 데이터를 저장 / 주식시장의 변동 분석에 사용
데이터의 흐름을 관리하기 위해 개발된 오픈 소스 프로젝트
Elasticsearch의 공식 패키지 구성요소
아파치 라이선스 2.0 오픈소스
JRuvy로 작성 (자바 런타임 환경 필수, 1.7 이상)
다양한 방식으로 데이터 입/출력 가능
입력 : 다양한 경로로 부터 데이터를 읽어오는 작업
필터 : 읽어온 데이터를 가공하는 절차
출력 : 가공된 데이터를 다른 프로그램이나 채널로 입력
설정파일
설정은 별도의 파일로 저장
실행시 -f 옵션과 함께 사용
input, filter, output 순서로 작성하며 내용은 중괄호 안에 입력
입, 출력 경로가 여러개일 때에는 줄 바꿈으로 구분, 쉼표는 입력
하지 않음
입출력
codec 옵션을 사용하여 데이터 형식 지정(기본값은 Plain)
입력 데이터의 변화를 로그스태시가 계속 감시
필터
출력 결과를 변경할 수 있는 다양한 필터를 제공
조건문을 사용하여 특정 조건 별 필터링 가능
elasticsearch
elasticsearch
Your Contents 3Your Message
Your Contents 2Your Message
THANK YOU

More Related Content

PDF
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
PDF
Ch1 일래스틱서치 클러스터 시작
PPTX
20151022 elasticsearch 적용및활용_송준이_sds발표용
PPTX
Fundamental of ELK Stack
PDF
Elasticsearch server Chapter5
PPTX
elasticsearch_적용 및 활용_정리
PDF
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
PPTX
Logstash, ElasticSearch, Kibana
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
Ch1 일래스틱서치 클러스터 시작
20151022 elasticsearch 적용및활용_송준이_sds발표용
Fundamental of ELK Stack
Elasticsearch server Chapter5
elasticsearch_적용 및 활용_정리
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
Logstash, ElasticSearch, Kibana

What's hot (20)

PDF
Elastic Search (엘라스틱서치) 입문
PDF
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
PDF
Elastic stack
PDF
Feature perf comp_v1
PDF
Meteor Elasticsearch 연동 Trial
PPTX
엘라스틱 서치 세미나
PPTX
201804 neo4 j_cypher_guide
PDF
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
PPTX
검색 서비스 간략 교육
PDF
Data analysis with Tajo
PPTX
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
PDF
엘라스틱서치, 로그스태시, 키바나
PPTX
검색엔진이 데이터를 다루는 법 김종민
PDF
Learning spark ch1-2
PPTX
Elastic Search Performance Optimization - Deview 2014
PDF
Expanding Your Data Warehouse with Tajo
PDF
Big data analysis with R and Apache Tajo (in Korean)
PDF
Infiniflux introduction
PPTX
Elasticsearch development case
PPTX
Introduction to Apache Tajo
Elastic Search (엘라스틱서치) 입문
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
Elastic stack
Feature perf comp_v1
Meteor Elasticsearch 연동 Trial
엘라스틱 서치 세미나
201804 neo4 j_cypher_guide
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
검색 서비스 간략 교육
Data analysis with Tajo
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
엘라스틱서치, 로그스태시, 키바나
검색엔진이 데이터를 다루는 법 김종민
Learning spark ch1-2
Elastic Search Performance Optimization - Deview 2014
Expanding Your Data Warehouse with Tajo
Big data analysis with R and Apache Tajo (in Korean)
Infiniflux introduction
Elasticsearch development case
Introduction to Apache Tajo
Ad

Viewers also liked (17)

PPTX
Elasticsearch 설치 및 기본 활용
PDF
형태소 분석기를 적용한 elasticsearch 운영
PPTX
엘라스틱서치 이해하기 20160613
PDF
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
PDF
[Dev rookie] 이상적인 게임에 관하여(13.11.30)
PDF
Move semantics
PPTX
엘라스틱서치 이해하기 20160612
PDF
The process of_science
PDF
Intro to Process Theology - Science and Religion
PPTX
[Gpg1권 박민근] 4.8 가려진 객체의 제외 기법 (오브젝트 오클루젼 컬링)
PDF
[Elasticsearch] 검색의 연관성 좀 더 높여보기
PDF
아마존, 구글 사례 중심의 영상처리기술 응용 트렌드
PDF
triple EX_ 테스크 분석과 종합
PDF
인터렉티브 중간발표 1조_2
PDF
스프링 부트와 로깅
PDF
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
PDF
A World United Against Infectious Diseases: Connecting Organizations for Regi...
Elasticsearch 설치 및 기본 활용
형태소 분석기를 적용한 elasticsearch 운영
엘라스틱서치 이해하기 20160613
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
[Dev rookie] 이상적인 게임에 관하여(13.11.30)
Move semantics
엘라스틱서치 이해하기 20160612
The process of_science
Intro to Process Theology - Science and Religion
[Gpg1권 박민근] 4.8 가려진 객체의 제외 기법 (오브젝트 오클루젼 컬링)
[Elasticsearch] 검색의 연관성 좀 더 높여보기
아마존, 구글 사례 중심의 영상처리기술 응용 트렌드
triple EX_ 테스크 분석과 종합
인터렉티브 중간발표 1조_2
스프링 부트와 로깅
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
A World United Against Infectious Diseases: Connecting Organizations for Regi...
Ad

Similar to elasticsearch (20)

PDF
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
PDF
정보검색과 Elasticsearch (크몽)
PDF
Elasticsearch 엘라스틱서치 (검색서비스) 에 대해 알아보자.txt
PDF
Elastic Stack & Data pipeline (1장)
PDF
[215]네이버콘텐츠통계서비스소개 김기영
PDF
Elasticsearch를 활용한 GIS 검색
PDF
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
PDF
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
PDF
Elasticsearch Modeling - 정호욱
PDF
What’s Evolving in the Elastic Stack
PDF
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
PDF
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
PPTX
Hadoop설명
PDF
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
PDF
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
PDF
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
PPTX
Elasticsearch 한글 형태소 분석기 Nori 노리
PDF
Log Collection and Analysis with elk Stack
PDF
[4차]구글 알고리즘 분석(151106)
PDF
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
정보검색과 Elasticsearch (크몽)
Elasticsearch 엘라스틱서치 (검색서비스) 에 대해 알아보자.txt
Elastic Stack & Data pipeline (1장)
[215]네이버콘텐츠통계서비스소개 김기영
Elasticsearch를 활용한 GIS 검색
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Elasticsearch Modeling - 정호욱
What’s Evolving in the Elastic Stack
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Hadoop설명
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
Elasticsearch 한글 형태소 분석기 Nori 노리
Log Collection and Analysis with elk Stack
[4차]구글 알고리즘 분석(151106)
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장

elasticsearch

  • 5. 수 많은 정보를 보유하는 데이터베이스로서 필요한 정보를 찾기 위해 일일히 찾는 수고를 하지 않고도 원하는 정보를 쉽게 찾을 수 있게 도와준다.
  • 6. 이는 검색어와 주제어와의 일치 문제, 용자가 반드시 검색엔진의 주제어만 사용한다는 보장이 없다. 서로 다른 검색어와 일치시켜야 어려운점이 많다. 하지만, 검색엔진 사용시 필요한 정보만 검색이 되지 않을때도 있다.
  • 7. 검색엔진의 작동원리 검색어에서 여러가지 관련성을 숫자로 인식 -사람들이 검색한 횟수, 문서에 포함되는 단어 등 이를 토대로 관련성에 대한 내부 점수를 매겨 상위에 정렬한다 inverted index + relevance scoring
  • 8. 아파치 루신(Apache Lucene)을 기반으로 개발된 오픈소스 분산 검색 엔진(서버).
  • 9. 1999년 Hadoop 개발자로 잘 알려진 더그 커(Doug Coutting)에 의해 개발 2001년 Apache Software Foundation에 참여한 뒤, 2005년 Apache top-level 프로젝트로 승격 되었다.
  • 10. 자바 언어로 개발된 오픈소스 정보검색 소프트웨어 라이브러리. 검색에 대한 전문지식이 없이도 색인과 검색기능을 간단히 추가가능
  • 11. Restful API 인터페이스로 데이터 입출력 하는 DB 서버, HTTP로 접근하기 때문에 언어별로 따로 작업하지 않아도 된다.
  • 12. 단일 URL을 통한 자원의 접근, HTTP 메소드를 사용하여 자원 처리
  • 14. Elasticsearch는 여러 개의 노드로 구성되는 분산 시스템. 데이터는 각 노드에 분산 저장, 복사본을 유지하여 각종 충돌로부터 노드 데이터 보호.
  • 15. 하나이상의 노드로 구성, 각 노드는 1개 이상의 데이터 원본과 복사 본을 서로 다른위치에 나누어 저장, 노드가 종료되거나 실행에 실패 할 경우 다른 노드로 데이터 이동 등 높은 가용성을 지님
  • 16. JSON 문서 형식으로 저장, 모든 필드는 기본적으로 인덱싱되며, 모든 인덱스들은 단일 쿼리(NoSQL)로 빠르게 사용할 수 있음.
  • 17. 데이터는 여러 개로 분리된 인덱스들에 그룹으로 저장(DB대응) 서로 다른 인덱스의 데이터를 하나의 질의로 검색하여, 하나의 출력으로 도출 가능
  • 21. 클러스터(CLUSTER) - 클러스터는 Elasticsearch의 가장 큰 시스템 단위 - 하나의 클러스터는 여러 개의 노드로 이루어 짐 - 여러대의 서버가 하나의 클러스터를 구성할 수 있으며, 그 반대도 가능 - 같은 클러스터의 이름으로 노드를 실행하는 것만으로 자동확장이 가능
  • 22. 노드(Node) - 노드는 마스터 노드와 데이터 노드로 구분 - 마스터 노드는 전체 클러스터 상태의 메타 정보를 관리 - 기존의 마스터 노드가 종료되는 경우 새로운 마스터 노드가 선출됨 - 데이터 노드는 실제 데이터가 저장되는 노드
  • 23. 노드바인딩 - 같은 클러스터 이름을 가지고 실행된 노드는 자동으로 바인딩 - 9200번부터 REST API를 위한 HTTP 통신 포트가 할당 - 9300번부터 노드간 바인딩을 위한 포트로 할당
  • 24. 네트워크 바인딩 - 효율적인 스케일아웃을위해 네트워크에 있는 다른서버의 노드와도 바인딩 - 네트워크 바인딩을 위해 젠 디스커버리(ZEN DISCOVERY) 기능 내장 - 멀티캐스트와 유니캐스트 방식을 모두 지원 - 반드시 두 Elasticsearch 버전은 동일해야 함
  • 26. 샤드와 복사본 - 샤드는 데이터 검색을 위해 구분되는 최소 단위 - 색인된 데이터는 여러 개의 샤드로 분할 저장 - 기본적으로 인덱스당 5개의 샤드와 5개의 복사본으로 분리 - 개수 설정을 제외하면 사용자가 직접 샤드에 접근하는 경우는 없음 - 데이터가 색인되어 저장되는 공간을 최초샤드(Primary Shard)라 함 - 최초 샤드에 데이터가 색인되면 동일한 수 만큼 복사본을 생성 - 최초 샤드가 유실되는 경우 복사본을 최초 샤드로 승격 - 최초 샤드와 복사본은 동시검색대상이 되어 성능향상에 이점이 있음 - 최초 샤드와 복사본은 서로 다른 노드에 저장 - 생성된 인덱스의 샤드 설정은 변경 불가능
  • 28. 방문객의 로그 분석 / Social 데이터 생성 및 분석으로 실시간 응대 / 기사에 대한 반응 분석
  • 29. Your Contents 1 검색내용과 결과를 통합해 유사한 질문과 해답을 연결
  • 30. Your Contents 1 1300억 줄이 넘는 소스코드를 검색하는 데 사용
  • 31. Your Contents 1 매일 5TB가 넘는 데이터를 저장 / 주식시장의 변동 분석에 사용
  • 32. 데이터의 흐름을 관리하기 위해 개발된 오픈 소스 프로젝트 Elasticsearch의 공식 패키지 구성요소 아파치 라이선스 2.0 오픈소스 JRuvy로 작성 (자바 런타임 환경 필수, 1.7 이상) 다양한 방식으로 데이터 입/출력 가능
  • 33. 입력 : 다양한 경로로 부터 데이터를 읽어오는 작업 필터 : 읽어온 데이터를 가공하는 절차 출력 : 가공된 데이터를 다른 프로그램이나 채널로 입력
  • 34. 설정파일 설정은 별도의 파일로 저장 실행시 -f 옵션과 함께 사용 input, filter, output 순서로 작성하며 내용은 중괄호 안에 입력 입, 출력 경로가 여러개일 때에는 줄 바꿈으로 구분, 쉼표는 입력 하지 않음
  • 35. 입출력 codec 옵션을 사용하여 데이터 형식 지정(기본값은 Plain) 입력 데이터의 변화를 로그스태시가 계속 감시
  • 36. 필터 출력 결과를 변경할 수 있는 다양한 필터를 제공 조건문을 사용하여 특정 조건 별 필터링 가능

Editor's Notes

  • #7: 이는 검색어와 주제어와의 일치 문제 사용자가 반드시 검색엔진의 주제어만 사용한다는 보장이 없다. 서로 다른 검색어와 일치시켜야하는 등의 어려운점이 많다.
  • #11: 자바 언어로 개발 사용자 위치 정보 이용 가능 다국어 검색 지원 자동 완성 지원 미리 보기 지원 철자 수정 기능 지원
  • #12: ex) 로그파일에서 특정 문자열을 MySQL에 넣을려한다면 MySQL라이브러리를 써야하며 언어별로 다르게 지원. 원래 언어별 작업 변환 용도로 사용되던 것이 hadoop이다. hadoop자체는 제너럴라이즈 되어 있어 접근하기 위한 부가서비스(echo서비스)가 상당히 많아서 서버에서 사용하기엔 부담스러워지는 문제가 존재, 그러다보니 최근에 뜨기 시작하게됨.
  • #15: 노드는 데이터를 색인하고 검색을 수행하는 단위 프로세스 기존 노드에 새 노드를 실행하여 연결하는 것만으로 확장 가능 DISCOVERY를 내장하여 별도의 분산시스템관리자 불필요
  • #23: 기존 마스터노드가 종료되면, 새로운 마스터 노드가 선출 데이터 노드가 하나밖에 없는 경우 복사본은 생성되지 않음 마스터 노드와 데이터노드가 반드시 상호 배타적 관계는 아님 일반적으로 데이터 노드는 외부접근을 차단
  • #27: 샤드와복사본 •샤드는데이터검색을위해구분되는최소단위 •색인된데이터는여러개의샤드로분할돼저장 •기본적으로인덱스당5개의샤드와5개의복사본으로분리 •개수설정을제외하면사용자가직접샤드에접근하는경우는없음 •데이터가색인돼저장되는공간을최초샤드(Primary Shard)라함 •최초샤드에데이터가색인되면동일한수만큼복사본을생성 •최초샤드가유실되는경우복사본을최초샤드로승격 •최초샤드와복사본은동시검색대상이되어성능향상에이점이있음 •최초샤드와복사본은서로다른노드에저장 •생성된인덱스의샤드설정은변경불가능
  • #40: 엘라스틱서치의 복잡한 질의를 편하게 입력 가능 입력된 질의를 간편하게 시각화 config.js 파일을 수정하여 간편하게 설정 node.js로 작성 일부 설정은 엘라스틱서치 인덱스에 저장