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 버전은 동일해야 함
샤드와 복사본
- 샤드는 데이터 검색을 위해 구분되는 최소 단위
- 색인된 데이터는 여러 개의 샤드로 분할 저장
- 기본적으로 인덱스당 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)
입력 데이터의 변화를 로그스태시가 계속 감시
필터
출력 결과를 변경할 수 있는 다양한 필터를 제공
조건문을 사용하여 특정 조건 별 필터링 가능
Your Contents 3Your Message
Your Contents 2Your Message
THANK YOU

More Related Content

What's hot

Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
SeungHyun Eom
 
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XpressEngine
 
Elastic stack
Elastic stackElastic stack
Elastic stack
Kenu, GwangNam Heo
 
Feature perf comp_v1
Feature perf comp_v1Feature perf comp_v1
Feature perf comp_v1
InfiniFlux Korea
 
Meteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 TrialMeteor Elasticsearch 연동 Trial
Meteor Elasticsearch 연동 Trial
Sangwon Lee
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나
종현 김
 
201804 neo4 j_cypher_guide
201804 neo4 j_cypher_guide201804 neo4 j_cypher_guide
201804 neo4 j_cypher_guide
Junyi Song
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
Gruter
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육
Rjs Ryu
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
Gruter
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
HeeJung Hwang
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
종민 김
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
종민 김
 
Learning spark ch1-2
Learning spark ch1-2Learning spark ch1-2
Learning spark ch1-2
HyeonSeok Choi
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
Gruter
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
Matthew (정재화)
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
Gruter
 
Infiniflux introduction
Infiniflux introductionInfiniflux introduction
Infiniflux introduction
InfiniFlux Korea
 
Elasticsearch development case
Elasticsearch development caseElasticsearch development case
Elasticsearch development case
일규 최
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
Gruter
 

What's hot (20)

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

Viewers also liked

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

Viewers also liked (17)

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

Similar to elasticsearch

Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
Jongho Woo
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3
in2acous
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
Eunsil Yoon
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개
Wonchang Song
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
Gruter
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
seung-hyun Park
 
[Swift] Data Structure Introduction
[Swift] Data Structure Introduction[Swift] Data Structure Introduction
[Swift] Data Structure Introduction
Bill Kim
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
Gruter
 
오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝
철민 권
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
Amazon Web Services Korea
 
google dinos
google dinosgoogle dinos
google dinosjuhyun
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
HyeonSeok Choi
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)
크몽
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
Amazon Web Services Korea
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
Gruter
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
Channy Yun
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
Gruter
 
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
Oracle Korea
 

Similar to elasticsearch (20)

Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
몽고디비교육1일차
몽고디비교육1일차몽고디비교육1일차
몽고디비교육1일차
 
[Swift] Data Structure Introduction
[Swift] Data Structure Introduction[Swift] Data Structure Introduction
[Swift] Data Structure Introduction
 
Mongodb index
Mongodb indexMongodb index
Mongodb index
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
google dinos
google dinosgoogle dinos
google dinos
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
 

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 버전은 동일해야 함
  • 25.
  • 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. 필터 출력 결과를 변경할 수 있는 다양한 필터를 제공 조건문을 사용하여 특정 조건 별 필터링 가능
  • 37.
  • 38.

Editor's Notes

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