Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads.
ELASTIC SEARCH
DevRookie
요술같은솜씨
Contents
Elasticsearch?
Elasticsearch 특징
Elasticsearch 시스템구조
활용사례
Elasticsearch?
검색엔진이 필요한 이유?
수 많은 정보를 보유하는 데이터베이스로서 필요한 정보를 찾기 위해 일일히
찾는 수고를 하지 않고도 원하는 정보를 쉽게 찾을 수 있게 도와준다.
이는 검색어와 주제어와의 일치 문제,
용자가 반드시 검색엔진의 주제어만 사용한다는 보장이 없다. 서로 다른 검색어와 일치시켜야
어려운점이 많다.
하지만, 검색엔진 사용시 필요한 정보만 검색이 되지 않을때도 있다.
검색엔진의 작동원리
검색어에서 여러가지 관련성을 숫자로 인식
-사람들이 검색한 횟수, 문서에 포함되는 단어 등
이를 토대로 관련성에 대한 내부 점수를 매겨 상위에 정렬한다
inverted index + relevance...
아파치 루신(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) 기능 내장
- 멀티캐스트와 유니캐스트 방식을 모두 지원
- 반드...
샤드와 복사본
- 샤드는 데이터 검색을 위해 구분되는 최소 단위
- 색인된 데이터는 여러 개의 샤드로 분할 저장
- 기본적으로 인덱스당 5개의 샤드와 5개의 복사본으로 분리
- 개수 설정을 제외하면 사용자가 직접 샤드에...
활용사례
방문객의 로그 분석 / 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
elasticsearch
elasticsearch
elasticsearch
Upcoming SlideShare
Loading in …5
×

elasticsearch

1,652 views

Published on

elasticsearch

Published in: Technology
  • Be the first to comment

elasticsearch

  1. 1. ELASTIC SEARCH DevRookie 요술같은솜씨
  2. Contents Elasticsearch? Elasticsearch 특징 Elasticsearch 시스템구조 활용사례
  3. Elasticsearch?
  4. 검색엔진이 필요한 이유?
  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 메소드를 사용하여 자원 처리
  13. Elasticsearch 특징
  14. Elasticsearch는 여러 개의 노드로 구성되는 분산 시스템. 데이터는 각 노드에 분산 저장, 복사본을 유지하여 각종 충돌로부터 노드 데이터 보호.
  15. 하나이상의 노드로 구성, 각 노드는 1개 이상의 데이터 원본과 복사 본을 서로 다른위치에 나누어 저장, 노드가 종료되거나 실행에 실패 할 경우 다른 노드로 데이터 이동 등 높은 가용성을 지님
  16. JSON 문서 형식으로 저장, 모든 필드는 기본적으로 인덱싱되며, 모든 인덱스들은 단일 쿼리(NoSQL)로 빠르게 사용할 수 있음.
  17. 데이터는 여러 개로 분리된 인덱스들에 그룹으로 저장(DB대응) 서로 다른 인덱스의 데이터를 하나의 질의로 검색하여, 하나의 출력으로 도출 가능
  18. 관계형 데이터베이스와 Elasticsearch용어 비교
  19. Elasticsearch 데이터 저장 프로세스
  20. Elasticsearch 시스템구조
  21. 클러스터(CLUSTER) - 클러스터는 Elasticsearch의 가장 큰 시스템 단위 - 하나의 클러스터는 여러 개의 노드로 이루어 짐 - 여러대의 서버가 하나의 클러스터를 구성할 수 있으며, 그 반대도 가능 - 같은 클러스터의 이름으로 노드를 실행하는 것만으로 자동확장이 가능
  22. 노드(Node) - 노드는 마스터 노드와 데이터 노드로 구분 - 마스터 노드는 전체 클러스터 상태의 메타 정보를 관리 - 기존의 마스터 노드가 종료되는 경우 새로운 마스터 노드가 선출됨 - 데이터 노드는 실제 데이터가 저장되는 노드
  23. 노드바인딩 - 같은 클러스터 이름을 가지고 실행된 노드는 자동으로 바인딩 - 9200번부터 REST API를 위한 HTTP 통신 포트가 할당 - 9300번부터 노드간 바인딩을 위한 포트로 할당
  24. 네트워크 바인딩 - 효율적인 스케일아웃을위해 네트워크에 있는 다른서버의 노드와도 바인딩 - 네트워크 바인딩을 위해 젠 디스커버리(ZEN DISCOVERY) 기능 내장 - 멀티캐스트와 유니캐스트 방식을 모두 지원 - 반드시 두 Elasticsearch 버전은 동일해야 함
  25. 샤드와 복사본 - 샤드는 데이터 검색을 위해 구분되는 최소 단위 - 색인된 데이터는 여러 개의 샤드로 분할 저장 - 기본적으로 인덱스당 5개의 샤드와 5개의 복사본으로 분리 - 개수 설정을 제외하면 사용자가 직접 샤드에 접근하는 경우는 없음 - 데이터가 색인되어 저장되는 공간을 최초샤드(Primary Shard)라 함 - 최초 샤드에 데이터가 색인되면 동일한 수 만큼 복사본을 생성 - 최초 샤드가 유실되는 경우 복사본을 최초 샤드로 승격 - 최초 샤드와 복사본은 동시검색대상이 되어 성능향상에 이점이 있음 - 최초 샤드와 복사본은 서로 다른 노드에 저장 - 생성된 인덱스의 샤드 설정은 변경 불가능
  26. 활용사례
  27. 방문객의 로그 분석 / Social 데이터 생성 및 분석으로 실시간 응대 / 기사에 대한 반응 분석
  28. Your Contents 1 검색내용과 결과를 통합해 유사한 질문과 해답을 연결
  29. Your Contents 1 1300억 줄이 넘는 소스코드를 검색하는 데 사용
  30. Your Contents 1 매일 5TB가 넘는 데이터를 저장 / 주식시장의 변동 분석에 사용
  31. 데이터의 흐름을 관리하기 위해 개발된 오픈 소스 프로젝트 Elasticsearch의 공식 패키지 구성요소 아파치 라이선스 2.0 오픈소스 JRuvy로 작성 (자바 런타임 환경 필수, 1.7 이상) 다양한 방식으로 데이터 입/출력 가능
  32. 입력 : 다양한 경로로 부터 데이터를 읽어오는 작업 필터 : 읽어온 데이터를 가공하는 절차 출력 : 가공된 데이터를 다른 프로그램이나 채널로 입력
  33. 설정파일 설정은 별도의 파일로 저장 실행시 -f 옵션과 함께 사용 input, filter, output 순서로 작성하며 내용은 중괄호 안에 입력 입, 출력 경로가 여러개일 때에는 줄 바꿈으로 구분, 쉼표는 입력 하지 않음
  34. 입출력 codec 옵션을 사용하여 데이터 형식 지정(기본값은 Plain) 입력 데이터의 변화를 로그스태시가 계속 감시
  35. 필터 출력 결과를 변경할 수 있는 다양한 필터를 제공 조건문을 사용하여 특정 조건 별 필터링 가능
  36. Your Contents 3Your Message
  37. Your Contents 2Your Message
  38. THANK YOU
gss.com.ua

×