SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
실시간 데이터를 이용한
ElasticSearch
Indexing 성능
최적화17th BOAZ Conference
중고책나라 팀
1
국민대
AI빅데이터융합경영학부
18기 엔지니어링
숙명여대 IT공학전공
18기 엔지니어링
국민대 소프트웨어학부
18기 분석
ABOUT TEAM
김건우 금나연 박규연
2
01
주제 및 주제 선정 배경
데이터 소개
CONTENTS
04
인덱싱 최적화 실험
02
사용 기술 및 아키텍처
05
결론
참고문헌
03
About Elasticsearch
06
Introduction
Optimization
Architecture
Conclusions
Elasticsearch
Q&A
3
01
주제 및 주제 선정 배경 / 데이터 소개
Introduction
4
Background of Topic
실시간 데이터
인덱싱 성능의 중요성
Elasticsearch 인덱싱 성능 최적화 가이드라인 마련
Elasticsearch 성능
최적화 관련 연구 부족
5
제목, 리뷰랭킹 등 중고책 관련 정보
&
해당 책을 보유하고 있는 알라딘 중고서점
정보
알라딘 API
데이터 스키마
6
02
사용 기술 및 아키텍처
Architecture
7
분산형 데이터 스트리밍
플랫폼
Apache Lucene 기반의
JAVA 오픈소스 분산 검색
엔진
Elastic Stack 분석 및 시각화
플랫폼
Usage Skills
Kafka Elasticsearch Kibana
8
Architecture
Elasticsearch
cluster
Bulk
insert
Producer
Kafka
cluster
Broker
Topic Consumer Ingest node
Data node
Master node
monitoring
shard P0
shard P1
shard R3
shard P2
shard P3
shard R1
Data
generator
shard R2
shard R0
9
03
Elasticsearch
About Elasticsearch
10
Elasticsearch 란?
기반의 JAVA 오픈소스 분산 검색 엔진
● Lucene 라이브러리를단독으로 사용
● 방대한 양의 데이터를 신속하고 거의 실시간(NRT, Near Real Time)으로 저장,
검색, 분석
검색 엔진의 시초
● 아파치 소프트웨어 재단의 회장 더그 커팅(Doug Cutting)이 고안한 역색인
(Inverted Index) 구조인 아파치 Lucene을 기반으로 분산처리를 가능하게 한
아파치 Solr가 등장하여 검색엔진 시장을 장악
● 이후 Lucene을 기반으로 한 Elasticsearch가 등장하여 현재 지배적인 위치
Apache Lucene 이란?
11
Elasticsearch 사용 기업
● 검색 시스템이 존재하는 대부분의 서비스들이 Elasticsearch를 사용 중
12
Indexing 이란?
인덱싱의 목적
● 문서의 위치에 대한 index를 생성하여 빠르게 문서에 접근
● Elasticsearch는 inverted-index(역색인)의 구조로 구성
역색인
● 문서 내의 문자와 같은 내용물의 매핑 정보를 색인하는 전문 검색의 형태
13
Elasticsearch Architecture
https://velog.io/@koo8624/Database-Elastic-Search-2%ED%8E%B8-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98Architecture 14
Elastic Stack
15
04
Optimization
인덱싱 최적화 실험
16
Optimization Experiment
실험 종속 변수(타겟)
● Indexing Rate(/s, eps): 초당 indexing된 document의 수
● Latency(ms): 노드에서 document의 indexing 처리시간
실험 환경
17
Optimization
Steps
1 Static Mapping
2 Elasticsearch Shard 개수
3 Elasticsearch Data Node 개수
4 Nested to Unnested
18
Optimization Experiment
대조군
● Elasticsearch Ingest node 1, Master node(Data node) 1
● Primary shard 1, Replica shard 1, Dynamic mapping
● Indexing Rate: 604.83 /s
● Latency: 0.32 ms
19
1. Static Mapping
데이터 타입
● Text: 문자열을 term 단위로 쪼개어 역색인 구조를 생성. Full-text 검색
● Keyword: 문자열을 하나의 토큰으로 저장
→ Text 타입을 남용할 경우 쿼리로 인한 집계나 정렬 과정에서 메모리 사용량의
오버헤드 생성
● Aladin 데이터는 text, keyword, long, boolean 등 다양한 타입으로 이루어져 있어
text 형식의 데이터에 주목하여 keyword로 전환 후 성능 최적화
20
1. Static Mapping
실험군
● Elasticsearch Ingest node 1, Master node(Data node) 1
● Primary shard 1, Replica shard 1, Static mapping
● Indexing Rate: 638.24 /s (↔604.83) 약 1.06배 증가
● Latency: 0.18 ms(↔0.32) 약 1.78배 감소
21
2. Elasticsearch Shard 개수
Shard의 종류
● Primary Shard: 실제 CRUD를 제공하는 샤드, 증가 시 마스터 노드의 부하를
야기하여 색인과 검색 성능, 메모리에 악영향
● Replica Shard: 읽기 분산으로도 활용 가능한 장애 복구용 Primary Shard의
복제본.
○ 일반적으로 장애 대응을 위해 최소 한 개 이상의 replica shard를 두며, 운영 중 변경
가능
○ 인덱싱 성능과 trade-off 관계
22
2. Elasticsearch Shard 개수
실험군
1) Replica shard의 개수: 0개
● Elasticsearch Ingest node 1, Master node(Data node) 1
● Primary shard 1, Replica shard 0, Static mapping
● Indexing Rate: 686.9 /s (↔638.24) 약 1.07배 증가
● Latency: 0.16 ms (↔0.18) 약 1.3배 감소
23
2. Elasticsearch Shard 개수
실험군
1) Replica shard의 개수: 0개
● Elasticsearch Ingest node 1, Master node(Data node) 1
● Primary shard 1, Replica shard 0, Static mapping
● Indexing Rate: 686.9 /s (↔638.24) 약 1.07배 증가
● Latency: 0.16 ms (↔0.18) 약 1.3배 감소
→ Replica Shard의 수가 0개일 때는 1개에 비해 Indexing Rate이 증가하고
Latency이 감소하여 전체적인 성능이 향상되지만,
실시간 데이터의 특성 상 안정성을 위해 최소한의 replica shard 개수인
1개로 실험을 이어나간다.
24
2. Elasticsearch Shard 개수
2) Primary shard의 개수 : 2개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1
● Primary shard 2, Replica shard 1, Static mapping
● Indexing Rate: 653.18 /s (↔638.24) 약 1.02배 증가
● Latency: 0.20 ms (↔0.32) 약 1.60배 감소
25
2. Elasticsearch Shard 개수
2) Primary shard의 개수 : 4개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1
● Primary shard 4, Replica shard 1, Static mapping
● Indexing Rate: 640.79 /s (↔638.24) 약 1.004배 증가
● Latency: 0.23 ms (↔0.32) 약 1.39배 감소
26
2. Elasticsearch Shard 개수
2) Primary shard의 개수 : 8개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1
● Primary shard 8, Replica shard 1, Static mapping
● Indexing Rate: 647.39 /s (↔638.24) 약 1.01배 증가
● Latency: 0.34 ms (←0.32) 약 1.06배 증가
27
2. Elasticsearch Shard 개수
2) Primary shard의 개수 : 16개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1
● Primary shard 16, Replica shard 1, Static mapping
● Indexing Rate: 640.91/s (↔638.24) 약 1.004배 증가
● Latency: 0.44 ms (↔0.32) 약 1.38배 증가
28
2. Elasticsearch Shard 개수
2) Primary shard의 개수
● Primary shard 수를 늘리는 것은 Indexing rate 향상에 효과가 있으나 한계가
존재
● Primary shard 수는 Latency와 trade-off 관계
● 최대 성능: Primary shard 2개
○ Elasticsearch Ingest node 1, Master node(Data node) 1
○ Primary shard 2, Replica shard 1, Static mapping
○ Indexing Rate: 653.18 /s (↔638.24) 약 1.02배 증가
○ Latency: 0.20 ms (↔0.32) 약 1.60배 감소
29
3. Elasticsearch Data Node 개수
Data node의 역할
● 데이터와 관련된 CRUD 작업을 수행하는 노드
● 실질적인 데이터 저장: 데이터가 실제로 분산 저장되는 물리 공간인 샤드가 배치
● 검색과 통계 등 데이터 관련 작업 수행
→ Data node의 개수가 데이터 indexing 작업에 미치는 영향을 실험하여 최적의 Data
node 개수 설정
30
3. Elasticsearch Data Node 개수
Data node의 개수 : 3개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 2
● Primary shard 16, Replica shard 1, Static mapping
● Indexing Rate: 590.86/s (↔653.18) 약 1.11배 감소
● Latency: 0.26 ms (↔0.20) 약 1.3배 증가
31
3. Elasticsearch Data Node 개수
Data node의 개수 : 4개
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 3
● Primary shard 16, Replica shard 1, Static mapping
● Indexing Rate: 554.23/s (↔653.18) 약 1.17배 감소
● Latency: 0.32 ms (↔0.20) 약 1.6배 증가
32
3. Elasticsearch Data Node 개수
Data node의 개수
● Data node의 수를 늘리는 것은 Indexing rate 향상에 효과가 없었음
● PC가 한 대라서 성능의 이득을 크게 볼 수 없었을 것으로 확인
○ 실제 클러스터를 구성할 시 I/O bottleneck 등이 일어날 가능성이 있어 Data node의
개수와 Indexing rate 사이에 trade-off가 존재할 것으로 예상되나, 여건 문제로 확인
불가
● 최대 성능(기존과 동일): Primary shard 2개
○ Elasticsearch Ingest node 1, Master node(Data node) 1
○ Primary shard 2, Replica shard 1, Static mapping
○ Indexing Rate: 653.18 /s -
○ Latency: 0.20 ms -
33
문제 분석
데이터 모델에 nested 필드가 존재할 경우, 정보 변경에 큰 오버헤드 발생
4. Nested to Unnested
34
4. Nested to Unnested
Elasticsearch nested document
Lucene documents
Segment layout
Childs
Parent
35
문제 분석
데이터 모델에 nested 필드가 존재할 경우, 정보 변경에 큰 오버헤드 발생
● Parent, nested 문서는 segment 상에서 연속된 위치에 저장되어 연관 관계를
유지
● 정보 변경 시 update되는 것이 아닌 새 segment가 덮어 쓰임
4. Nested to Unnested
→ Parent 정보가 변경될 때마다 모든 nested 문서 또한 덮어쓰이게 되고,
nested 필드의 개수만큼의 쓰기 증폭이 발생하게 되어 인덱싱 성능에
큰 악영향을 줄 수 있음
36
데이터 구조 개편
데이터 모델을 재설계하여 인덱싱 성능 이슈 해결
4. Nested to Unnested
Book data
Shop data
37
4. Nested to Unnested
Unnested Data model
● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1
● Primary shard 2, Replica shard 1, Static mapping
● Indexing Rate: 1983.51 /s (↔653.18) 약 3.04배 증가
● Latency: 0.07 ms (↔0.20) 약 2.86배 감소
38
Conclusion
05 결론 및 한계 / 참고문헌
39
● Elasticsearch Ingest node 1,
● Master node(Data node) 1,
● Data-only node 1,
● Primary shard 1,
● Replica shard 1,
● Dynamic mapping
● Nested data
● Indexing Rate: 604.83 /s
● Latency: 0.32 ms
● Elasticsearch Ingest node 1,
● Master node(Data node) 1,
● Data-only node 1
● Primary shard 2,
● Replica shard 1,
● Static mapping
● Unnested data
● Indexing Rate: 1983.51 /s
● Latency: 0.07 ms
성능 향상
실험군
대조군
Indexing Rate: 약 3.28배 증가
Latency: 약 4.57배 감소 40
한계점
● PC가 한 대라 구성의 이점을 누리기 어려움
● SSD를 이용하기 때문에 GC로 인한 성능 편차 존재
● 실험의 용이성을 위해 데이터 스트림을 일정하게 하여 실제 환경과 거리감 존재
● 검색 성능을 고려하지 않음
Limits
41
참고문헌
● Elastic 가이드북(https://esbook.kimjmin.net/)
● Elastic Discuss(https://discuss.elastic.co/)
● 실시간 인덱싱을 위한 Elasticsearch 구조를 찾아서
(https://techblog.woowahan.com/7425/)
● Feasibility Analysis of Big Log Data Real Time Search Based on Hbase and ElasticSearch,
Jun Bai, 2013.7
● An Optimization Method for Elasticsearch Index Shard Number, Bizhond Wei, 2020 CIS
● Design and Implementation of Elasticsearch for Media Data, Lu Han, 2020 ICCEA
Reference
42
Q&A
43

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [시켜줘, 보아즈 명예경찰관] : 보이스피싱 탐지 알고리즘
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [시켜줘, 보아즈 명예경찰관] : 보이스피싱 탐지 알고리즘제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [시켜줘, 보아즈 명예경찰관] : 보이스피싱 탐지 알고리즘
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [시켜줘, 보아즈 명예경찰관] : 보이스피싱 탐지 알고리즘
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Stalker 팀] : 감정분석을 통한 MBTI 기반 개인별 투자 성향 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Stalker 팀] : 감정분석을 통한 MBTI 기반 개인별 투자 성향 분석제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Stalker 팀] : 감정분석을 통한 MBTI 기반 개인별 투자 성향 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Stalker 팀] : 감정분석을 통한 MBTI 기반 개인별 투자 성향 분석
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [투니버스] : 스파크 기반 네이버 웹툰 댓글 수집 및 분석
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [투니버스] : 스파크 기반 네이버 웹툰 댓글 수집 및 분석제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [투니버스] : 스파크 기반 네이버 웹툰 댓글 수집 및 분석
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [투니버스] : 스파크 기반 네이버 웹툰 댓글 수집 및 분석
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BAOBAB 팀] : 반려동물 미용업 모바일 서비스 분석
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [ztyle] : 손그림 의류 검색 서비스
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [ztyle] : 손그림 의류 검색 서비스제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [ztyle] : 손그림 의류 검색 서비스
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [ztyle] : 손그림 의류 검색 서비스
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [나만 없어 범고래] : 스니커즈 중심의 리셀 시장 및 플랫폼 KREAM 분석
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [나만 없어 범고래] : 스니커즈 중심의 리셀 시장 및 플랫폼 KREAM 분석제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [나만 없어 범고래] : 스니커즈 중심의 리셀 시장 및 플랫폼 KREAM 분석
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [나만 없어 범고래] : 스니커즈 중심의 리셀 시장 및 플랫폼 KREAM 분석
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Secret X 팀] : XAI를 활용한 수능 영어영역 문제풀이
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천 제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [코끼리책방 팀] : 사용자 스크랩 내용 기반 도서 추천
 
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [스포 적발 강력 1팀] : 네 리뷰가 스포라는 것을 스포한다.
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [스포 적발 강력 1팀] : 네 리뷰가 스포라는 것을 스포한다.제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [스포 적발 강력 1팀] : 네 리뷰가 스포라는 것을 스포한다.
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [스포 적발 강력 1팀] : 네 리뷰가 스포라는 것을 스포한다.
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [보아酒] : 리뷰 감정분석을 통한 전통주 추천 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [보아酒] : 리뷰 감정분석을 통한 전통주 추천 서비스제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [보아酒] : 리뷰 감정분석을 통한 전통주 추천 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [보아酒] : 리뷰 감정분석을 통한 전통주 추천 서비스
 
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [굿아이디어스] : 아이디어스 작가를 위한 비지니스 대시보드
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [굿아이디어스] : 아이디어스 작가를 위한 비지니스 대시보드제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [굿아이디어스] : 아이디어스 작가를 위한 비지니스 대시보드
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [굿아이디어스] : 아이디어스 작가를 위한 비지니스 대시보드
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [쇼미더뮤직 팀] : 텍스트 감정추출을 통한 노래 추천
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [쇼미더뮤직 팀] : 텍스트 감정추출을 통한 노래 추천제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [쇼미더뮤직 팀] : 텍스트 감정추출을 통한 노래 추천
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [쇼미더뮤직 팀] : 텍스트 감정추출을 통한 노래 추천
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Cm:)e팀] : 이커머스 고객경험 관리 분석
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Cm:)e팀] : 이커머스 고객경험 관리 분석제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Cm:)e팀] : 이커머스 고객경험 관리 분석
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Cm:)e팀] : 이커머스 고객경험 관리 분석
 

Ähnlich wie 제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화

mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
Woo Yeong Choi
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
현철 박
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
KTH, 케이티하이텔
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
KTH
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
cranbe95
 

Ähnlich wie 제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화 (20)

Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
SQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseSQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouse
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
 
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
 
[Retail & CPG Day 2019] Amazon.com의 무중단, 대용량 DB패턴과 국내사례 (Lotte e-commerce) - ...
[Retail & CPG Day 2019] Amazon.com의 무중단, 대용량 DB패턴과 국내사례 (Lotte e-commerce) - ...[Retail & CPG Day 2019] Amazon.com의 무중단, 대용량 DB패턴과 국내사례 (Lotte e-commerce) - ...
[Retail & CPG Day 2019] Amazon.com의 무중단, 대용량 DB패턴과 국내사례 (Lotte e-commerce) - ...
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
 
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
 

Mehr von BOAZ Bigdata

Mehr von BOAZ Bigdata (20)

제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [섬유유연제] : 어글리us! 스마일 Earth! : NLP 기반 프로젝트와 비즈니스 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [섬유유연제] : 어글리us! 스마일 Earth! : NLP 기반 프로젝트와 비즈니스 대시보드제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [섬유유연제] : 어글리us! 스마일 Earth! : NLP 기반 프로젝트와 비즈니스 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [섬유유연제] : 어글리us! 스마일 Earth! : NLP 기반 프로젝트와 비즈니스 대시보드
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [다함께 레벨업!] : 학식 예약 서비스 yammi CRM 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [다함께 레벨업!] : 학식 예약 서비스 yammi CRM 대시보드제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [다함께 레벨업!] : 학식 예약 서비스 yammi CRM 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [다함께 레벨업!] : 학식 예약 서비스 yammi CRM 대시보드
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [HAUL의 움직이는 리포트] : 투자성향 기반 주식 추천 및 기업 정보 제공 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [HAUL의 움직이는 리포트] : 투자성향 기반 주식 추천 및 기업 정보 제공 대시보드제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [HAUL의 움직이는 리포트] : 투자성향 기반 주식 추천 및 기업 정보 제공 대시보드
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [HAUL의 움직이는 리포트] : 투자성향 기반 주식 추천 및 기업 정보 제공 대시보드
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BEARS] : 이미지 캡셔닝을 통한 이모지 추천 및 해시태그 생성
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BEARS] : 이미지 캡셔닝을 통한 이모지 추천 및 해시태그 생성제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BEARS] : 이미지 캡셔닝을 통한 이모지 추천 및 해시태그 생성
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BEARS] : 이미지 캡셔닝을 통한 이모지 추천 및 해시태그 생성
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [디버깅 드래곤즈] : 실시간 채용공고 요약 Slack Bot
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [디버깅 드래곤즈] : 실시간 채용공고 요약 Slack Bot제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [디버깅 드래곤즈] : 실시간 채용공고 요약 Slack Bot
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [디버깅 드래곤즈] : 실시간 채용공고 요약 Slack Bot
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [낭만젊음사람] : UDA를 통한 중환자실 급성 호흡곤란 증후군 조기 예측
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [낭만젊음사람] : UDA를 통한 중환자실 급성 호흡곤란 증후군 조기 예측제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [낭만젊음사람] : UDA를 통한 중환자실 급성 호흡곤란 증후군 조기 예측
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [낭만젊음사람] : UDA를 통한 중환자실 급성 호흡곤란 증후군 조기 예측
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [레시피를 보아즈] : 영수증 인식 및 대화를 통한 재료 기반 레시피 추천 챗봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [레시피를 보아즈] : 영수증 인식 및 대화를 통한 재료 기반 레시피 추천 챗봇제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [레시피를 보아즈] : 영수증 인식 및 대화를 통한 재료 기반 레시피 추천 챗봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [레시피를 보아즈] : 영수증 인식 및 대화를 통한 재료 기반 레시피 추천 챗봇
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [REC] : 캠핏 데이터를 활용한 캠핑장 추천 시스템 구현
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [REC] : 캠핏 데이터를 활용한 캠핑장 추천 시스템 구현제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [REC] : 캠핏 데이터를 활용한 캠핑장 추천 시스템 구현
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [REC] : 캠핏 데이터를 활용한 캠핑장 추천 시스템 구현
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [4부터7] : 공방 301 데이터를 활용한 마케팅 방안 제시
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [4부터7] : 공방 301 데이터를 활용한 마케팅 방안 제시제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [4부터7] : 공방 301 데이터를 활용한 마케팅 방안 제시
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [4부터7] : 공방 301 데이터를 활용한 마케팅 방안 제시
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [분모자] : 분류 모자이크
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [link-us(링커즈)] : 링키드를 위한 비즈니스 대시보드 제작
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [link-us(링커즈)] : 링키드를 위한 비즈니스 대시보드 제작제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [link-us(링커즈)] : 링키드를 위한 비즈니스 대시보드 제작
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [link-us(링커즈)] : 링키드를 위한 비즈니스 대시보드 제작
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [뉴진스] : Multi-modal Fake News Detection
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [뉴진스] : Multi-modal Fake News Detection제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [뉴진스] : Multi-modal Fake News Detection
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [뉴진스] : Multi-modal Fake News Detection
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [6시내고양포CAT몬] : Cat Anti-aging Project based Style...
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [6시내고양포CAT몬] : Cat Anti-aging Project based Style...제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [6시내고양포CAT몬] : Cat Anti-aging Project based Style...
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [6시내고양포CAT몬] : Cat Anti-aging Project based Style...
 

제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화

  • 1. 실시간 데이터를 이용한 ElasticSearch Indexing 성능 최적화17th BOAZ Conference 중고책나라 팀 1
  • 2. 국민대 AI빅데이터융합경영학부 18기 엔지니어링 숙명여대 IT공학전공 18기 엔지니어링 국민대 소프트웨어학부 18기 분석 ABOUT TEAM 김건우 금나연 박규연 2
  • 3. 01 주제 및 주제 선정 배경 데이터 소개 CONTENTS 04 인덱싱 최적화 실험 02 사용 기술 및 아키텍처 05 결론 참고문헌 03 About Elasticsearch 06 Introduction Optimization Architecture Conclusions Elasticsearch Q&A 3
  • 4. 01 주제 및 주제 선정 배경 / 데이터 소개 Introduction 4
  • 5. Background of Topic 실시간 데이터 인덱싱 성능의 중요성 Elasticsearch 인덱싱 성능 최적화 가이드라인 마련 Elasticsearch 성능 최적화 관련 연구 부족 5
  • 6. 제목, 리뷰랭킹 등 중고책 관련 정보 & 해당 책을 보유하고 있는 알라딘 중고서점 정보 알라딘 API 데이터 스키마 6
  • 7. 02 사용 기술 및 아키텍처 Architecture 7
  • 8. 분산형 데이터 스트리밍 플랫폼 Apache Lucene 기반의 JAVA 오픈소스 분산 검색 엔진 Elastic Stack 분석 및 시각화 플랫폼 Usage Skills Kafka Elasticsearch Kibana 8
  • 9. Architecture Elasticsearch cluster Bulk insert Producer Kafka cluster Broker Topic Consumer Ingest node Data node Master node monitoring shard P0 shard P1 shard R3 shard P2 shard P3 shard R1 Data generator shard R2 shard R0 9
  • 11. Elasticsearch 란? 기반의 JAVA 오픈소스 분산 검색 엔진 ● Lucene 라이브러리를단독으로 사용 ● 방대한 양의 데이터를 신속하고 거의 실시간(NRT, Near Real Time)으로 저장, 검색, 분석 검색 엔진의 시초 ● 아파치 소프트웨어 재단의 회장 더그 커팅(Doug Cutting)이 고안한 역색인 (Inverted Index) 구조인 아파치 Lucene을 기반으로 분산처리를 가능하게 한 아파치 Solr가 등장하여 검색엔진 시장을 장악 ● 이후 Lucene을 기반으로 한 Elasticsearch가 등장하여 현재 지배적인 위치 Apache Lucene 이란? 11
  • 12. Elasticsearch 사용 기업 ● 검색 시스템이 존재하는 대부분의 서비스들이 Elasticsearch를 사용 중 12
  • 13. Indexing 이란? 인덱싱의 목적 ● 문서의 위치에 대한 index를 생성하여 빠르게 문서에 접근 ● Elasticsearch는 inverted-index(역색인)의 구조로 구성 역색인 ● 문서 내의 문자와 같은 내용물의 매핑 정보를 색인하는 전문 검색의 형태 13
  • 17. Optimization Experiment 실험 종속 변수(타겟) ● Indexing Rate(/s, eps): 초당 indexing된 document의 수 ● Latency(ms): 노드에서 document의 indexing 처리시간 실험 환경 17
  • 18. Optimization Steps 1 Static Mapping 2 Elasticsearch Shard 개수 3 Elasticsearch Data Node 개수 4 Nested to Unnested 18
  • 19. Optimization Experiment 대조군 ● Elasticsearch Ingest node 1, Master node(Data node) 1 ● Primary shard 1, Replica shard 1, Dynamic mapping ● Indexing Rate: 604.83 /s ● Latency: 0.32 ms 19
  • 20. 1. Static Mapping 데이터 타입 ● Text: 문자열을 term 단위로 쪼개어 역색인 구조를 생성. Full-text 검색 ● Keyword: 문자열을 하나의 토큰으로 저장 → Text 타입을 남용할 경우 쿼리로 인한 집계나 정렬 과정에서 메모리 사용량의 오버헤드 생성 ● Aladin 데이터는 text, keyword, long, boolean 등 다양한 타입으로 이루어져 있어 text 형식의 데이터에 주목하여 keyword로 전환 후 성능 최적화 20
  • 21. 1. Static Mapping 실험군 ● Elasticsearch Ingest node 1, Master node(Data node) 1 ● Primary shard 1, Replica shard 1, Static mapping ● Indexing Rate: 638.24 /s (↔604.83) 약 1.06배 증가 ● Latency: 0.18 ms(↔0.32) 약 1.78배 감소 21
  • 22. 2. Elasticsearch Shard 개수 Shard의 종류 ● Primary Shard: 실제 CRUD를 제공하는 샤드, 증가 시 마스터 노드의 부하를 야기하여 색인과 검색 성능, 메모리에 악영향 ● Replica Shard: 읽기 분산으로도 활용 가능한 장애 복구용 Primary Shard의 복제본. ○ 일반적으로 장애 대응을 위해 최소 한 개 이상의 replica shard를 두며, 운영 중 변경 가능 ○ 인덱싱 성능과 trade-off 관계 22
  • 23. 2. Elasticsearch Shard 개수 실험군 1) Replica shard의 개수: 0개 ● Elasticsearch Ingest node 1, Master node(Data node) 1 ● Primary shard 1, Replica shard 0, Static mapping ● Indexing Rate: 686.9 /s (↔638.24) 약 1.07배 증가 ● Latency: 0.16 ms (↔0.18) 약 1.3배 감소 23
  • 24. 2. Elasticsearch Shard 개수 실험군 1) Replica shard의 개수: 0개 ● Elasticsearch Ingest node 1, Master node(Data node) 1 ● Primary shard 1, Replica shard 0, Static mapping ● Indexing Rate: 686.9 /s (↔638.24) 약 1.07배 증가 ● Latency: 0.16 ms (↔0.18) 약 1.3배 감소 → Replica Shard의 수가 0개일 때는 1개에 비해 Indexing Rate이 증가하고 Latency이 감소하여 전체적인 성능이 향상되지만, 실시간 데이터의 특성 상 안정성을 위해 최소한의 replica shard 개수인 1개로 실험을 이어나간다. 24
  • 25. 2. Elasticsearch Shard 개수 2) Primary shard의 개수 : 2개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1 ● Primary shard 2, Replica shard 1, Static mapping ● Indexing Rate: 653.18 /s (↔638.24) 약 1.02배 증가 ● Latency: 0.20 ms (↔0.32) 약 1.60배 감소 25
  • 26. 2. Elasticsearch Shard 개수 2) Primary shard의 개수 : 4개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1 ● Primary shard 4, Replica shard 1, Static mapping ● Indexing Rate: 640.79 /s (↔638.24) 약 1.004배 증가 ● Latency: 0.23 ms (↔0.32) 약 1.39배 감소 26
  • 27. 2. Elasticsearch Shard 개수 2) Primary shard의 개수 : 8개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1 ● Primary shard 8, Replica shard 1, Static mapping ● Indexing Rate: 647.39 /s (↔638.24) 약 1.01배 증가 ● Latency: 0.34 ms (←0.32) 약 1.06배 증가 27
  • 28. 2. Elasticsearch Shard 개수 2) Primary shard의 개수 : 16개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1 ● Primary shard 16, Replica shard 1, Static mapping ● Indexing Rate: 640.91/s (↔638.24) 약 1.004배 증가 ● Latency: 0.44 ms (↔0.32) 약 1.38배 증가 28
  • 29. 2. Elasticsearch Shard 개수 2) Primary shard의 개수 ● Primary shard 수를 늘리는 것은 Indexing rate 향상에 효과가 있으나 한계가 존재 ● Primary shard 수는 Latency와 trade-off 관계 ● 최대 성능: Primary shard 2개 ○ Elasticsearch Ingest node 1, Master node(Data node) 1 ○ Primary shard 2, Replica shard 1, Static mapping ○ Indexing Rate: 653.18 /s (↔638.24) 약 1.02배 증가 ○ Latency: 0.20 ms (↔0.32) 약 1.60배 감소 29
  • 30. 3. Elasticsearch Data Node 개수 Data node의 역할 ● 데이터와 관련된 CRUD 작업을 수행하는 노드 ● 실질적인 데이터 저장: 데이터가 실제로 분산 저장되는 물리 공간인 샤드가 배치 ● 검색과 통계 등 데이터 관련 작업 수행 → Data node의 개수가 데이터 indexing 작업에 미치는 영향을 실험하여 최적의 Data node 개수 설정 30
  • 31. 3. Elasticsearch Data Node 개수 Data node의 개수 : 3개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 2 ● Primary shard 16, Replica shard 1, Static mapping ● Indexing Rate: 590.86/s (↔653.18) 약 1.11배 감소 ● Latency: 0.26 ms (↔0.20) 약 1.3배 증가 31
  • 32. 3. Elasticsearch Data Node 개수 Data node의 개수 : 4개 ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 3 ● Primary shard 16, Replica shard 1, Static mapping ● Indexing Rate: 554.23/s (↔653.18) 약 1.17배 감소 ● Latency: 0.32 ms (↔0.20) 약 1.6배 증가 32
  • 33. 3. Elasticsearch Data Node 개수 Data node의 개수 ● Data node의 수를 늘리는 것은 Indexing rate 향상에 효과가 없었음 ● PC가 한 대라서 성능의 이득을 크게 볼 수 없었을 것으로 확인 ○ 실제 클러스터를 구성할 시 I/O bottleneck 등이 일어날 가능성이 있어 Data node의 개수와 Indexing rate 사이에 trade-off가 존재할 것으로 예상되나, 여건 문제로 확인 불가 ● 최대 성능(기존과 동일): Primary shard 2개 ○ Elasticsearch Ingest node 1, Master node(Data node) 1 ○ Primary shard 2, Replica shard 1, Static mapping ○ Indexing Rate: 653.18 /s - ○ Latency: 0.20 ms - 33
  • 34. 문제 분석 데이터 모델에 nested 필드가 존재할 경우, 정보 변경에 큰 오버헤드 발생 4. Nested to Unnested 34
  • 35. 4. Nested to Unnested Elasticsearch nested document Lucene documents Segment layout Childs Parent 35
  • 36. 문제 분석 데이터 모델에 nested 필드가 존재할 경우, 정보 변경에 큰 오버헤드 발생 ● Parent, nested 문서는 segment 상에서 연속된 위치에 저장되어 연관 관계를 유지 ● 정보 변경 시 update되는 것이 아닌 새 segment가 덮어 쓰임 4. Nested to Unnested → Parent 정보가 변경될 때마다 모든 nested 문서 또한 덮어쓰이게 되고, nested 필드의 개수만큼의 쓰기 증폭이 발생하게 되어 인덱싱 성능에 큰 악영향을 줄 수 있음 36
  • 37. 데이터 구조 개편 데이터 모델을 재설계하여 인덱싱 성능 이슈 해결 4. Nested to Unnested Book data Shop data 37
  • 38. 4. Nested to Unnested Unnested Data model ● Elasticsearch Ingest node 1, Master node(Data node) 1, Data node 1 ● Primary shard 2, Replica shard 1, Static mapping ● Indexing Rate: 1983.51 /s (↔653.18) 약 3.04배 증가 ● Latency: 0.07 ms (↔0.20) 약 2.86배 감소 38
  • 39. Conclusion 05 결론 및 한계 / 참고문헌 39
  • 40. ● Elasticsearch Ingest node 1, ● Master node(Data node) 1, ● Data-only node 1, ● Primary shard 1, ● Replica shard 1, ● Dynamic mapping ● Nested data ● Indexing Rate: 604.83 /s ● Latency: 0.32 ms ● Elasticsearch Ingest node 1, ● Master node(Data node) 1, ● Data-only node 1 ● Primary shard 2, ● Replica shard 1, ● Static mapping ● Unnested data ● Indexing Rate: 1983.51 /s ● Latency: 0.07 ms 성능 향상 실험군 대조군 Indexing Rate: 약 3.28배 증가 Latency: 약 4.57배 감소 40
  • 41. 한계점 ● PC가 한 대라 구성의 이점을 누리기 어려움 ● SSD를 이용하기 때문에 GC로 인한 성능 편차 존재 ● 실험의 용이성을 위해 데이터 스트림을 일정하게 하여 실제 환경과 거리감 존재 ● 검색 성능을 고려하지 않음 Limits 41
  • 42. 참고문헌 ● Elastic 가이드북(https://esbook.kimjmin.net/) ● Elastic Discuss(https://discuss.elastic.co/) ● 실시간 인덱싱을 위한 Elasticsearch 구조를 찾아서 (https://techblog.woowahan.com/7425/) ● Feasibility Analysis of Big Log Data Real Time Search Based on Hbase and ElasticSearch, Jun Bai, 2013.7 ● An Optimization Method for Elasticsearch Index Shard Number, Bizhond Wei, 2020 CIS ● Design and Implementation of Elasticsearch for Media Data, Lu Han, 2020 ICCEA Reference 42