SlideShare une entreprise Scribd logo
1  sur  101
Télécharger pour lire hors ligne
Elastic Stack으로 시작하는
데이터 엔지니어링과 데이터 분석
Torres
Elastic Stack으로 시작하는
데이터 엔지니어링과 분석
Elastic Stack 데이터 엔지니어링 데이터 분석
이 세가지에 대해 알아보자
데이터 엔지니어링 데이터 분석
데이터 관련 업무를 할 때,
데이터 엔지니어링과 데이터 분석은 상호보완적 역할을 한다.
필요한 형태로 데이터를 가공·저장 및 기술적인 이슈를 해결
서비스 개선을 위해 데이터를 다각도로 분석,
그 과정에서 필요한 것(데이터, 툴)들을 요구
Elastic Stack
수집 처리 저장 시각화
전체 데이터 관련 프로세스를 처리할 수 있다.
데이터 엔지니어링 데이터 분석
Elastic Stack만 사용한다는 것이 아닌
다양한 오픈소스와 솔루션을 함께 사용
분명한 점은, Elastic Stack은 데이터 관련 업무에서
중요한 포지션을 차지 하고 있다는 것
One pick
Ø Elastic Stack을 가지고 “우리 서비스에 필요한” 데이터 분석을 해본다.
Ø Elastic Stack을 가지고 데이터 파이프라인을 이해하고 구축해본다.
강의 목표
Who Am I?
Kakao Mobility Data Engineer
• Data Pipeline
• AB Test Platform
• Machine Learning Platform
• Feature Engineering
• Kubernetes & Cloud Native Application
• Cloud Infrastructure & DevOps
Torres.woo
https://www.linkedin.com/in/torreswoo/
https://www.slideshare.net/jonghoWoo1/ab-test-platform-sk-planet
Ø Elasticsearch를 사용한 User Event 데이터 저장 & 집계(Aggregation)
Ø Metric & Chart 생성을 위한 Aggregation
Ø Metric(CR, CTR, Revenue, Impression) & 시계열 데이터, 실시간 처리
Ø Experiment - Audience Targeting(유저타켓팅), Exclusive Group(상호배타실험)
AB Test Platform
User Event Log 수집
Metric(CR, CTR, Revenue, Impression) 생성 & 시각화
https://www.slideshare.net/jonghoWoo1/ab-test-platform-sk-planet
Elasticsearch
https://www.slideshare.net/JeminHuh/realtime-log-monitoring-platformpmon
Tech planet 2016_Elastic search를이용한 Log기반 모니터링 & Log 검색 시스템 구축
Log & Monitoring System
Ø 대용량 시계열 모니터링 데이터 처리
Ø 수천개의 Web & WAS log 정형화 & Service 데쉬보드
Ø 수천대의 서버 리소스 메트릭 모니터링 (CPU, Memory, Load, Disk, Network)
Ø Near Real-Time (NRT) Log viewer
cnxlog
collectd
cnxlog
collectd
cnxlog
collectd
서버의 시스템 Metric 정보 수집 -> collectd
서버의 Web & WAS Log 수집 -> cnxlog
https://www.slideshare.net/JeminHuh/realtime-log-monitoring-platformpmon
Tech planet 2016_Elastic search를이용한 Log기반 모니터링 & Log 검색 시스템 구축
Elasticsearch
• 그들이 AWS 위에서 Kubernetes 를 운영하는 방법 박훈@ZEPL
• AWS 위에 올라간 모든걸 머리부터 발 끝까지 CTRL + C / V 박훈@ZEPL
• 그들이 AWS 위에서 데이터 파이프라인을 운영하는법 (2019) 박훈@yanolja
• 그들이 클라우드 위에서 데이터를 쉽고 빠르게 다루는 법(2019-7) 박훈@yanolja
ZEPL (Apache Zeppelin SaaS), Cloud Notebook System
Ø Elasticsearch를 사용한 Notebook Searching System
Ø EFK(Elasticsearch, Fluentd, Kibana)를 사용한 Kubernetes Logging System
Notebook 문서를 메타 데이터와 함께 저장
문서 본문에 Analyzer(분석기)에 따라 색인
Elasticsearch
1주차 강의
01. Elastic Stack?
02. Elastic Stack과 Data Pipeline
03. Elastic Stack을 사용하여 데이터 분석
Ø Docker로 개발환경 구축
Ø Docker-compose로 ELK 구축하기
Ø Kibana로 데이터 탐색 및 분석
Ø Elasticsearch 확인하기
01. Elastic Stack?
시작은 Elasticsearch
Elasticsearch
Ø 이제는 어느 회사나 하나쯤은 가지고 있는 Elasticsearch가 핵심
Ø 2015년, 0.7버전부터 사용. But, 운영이 너무 힘듬.
노드가 죽으면서 DB로서는 부적합? 그러나 2.X. 지금은 7.7
Ø https://github.com/elastic/elasticsearch
Open Source, Distributed, Restful Search Engine
검색엔진?
검색엔진
Lucene ㅣ 검색엔진의 시작. 더그커팅이 고안한 역색인 구조는 빠른 검색 결과를
제공하는데 최적의 성능. Apache Lucene을 개발.
Apach Solr ㅣ 루씬 기반으로 분산 처리가 가능한 Apach Solr 검색엔진
Elasticsearch ㅣ 전통적인 URI검색 방식에서 → Request Body방식의 Query DSL.
특히 Aggregation API는 솔라의 집계 기술은 Facet API보다 훨씬 뛰어남
Elasticsearch! Not Just Searching Engine!
Elasticsearch! Not Just Searching Engine!
• Distributed, Scalable
• HA (High-Availability)
• Distributed Document Store
Cluster Node Shard Replicaindex
2주차 강의에서
Elasticsearch! Not Just Searching Engine!
3주차 강의에서
Distributed, Scalable
HA, Fault Tolerance
Near Real-Time (NRT)
Full Text Searching Engine
REST APIs
JSON Document NoSQL
Multi-tenancy
Distributed Operation & Aggregation
Cluster Node Shard Replicaindex
indexing Refresh
Document Segment TokenInverted Index
JSON REST
aggregation distributed query fetch
Distributed, Scalable
https://www.elastic.co/guide/en/elasticsearch/guide/current/_scale_horizontally.html
Node추가 ­ 데이터가 분산되어 저장 (reallocating)
2개의 노드, 1개 index (shard: 3 & replica:2)로 Cluster가 구성된 상태
Cluster Node Shard Replicaindex
2주차 강의
https://www.elastic.co/guide/en/elasticsearch/guide/current/_coping_with_failure.html
HA, Fault Tolerance
Replica, shard
3개의 노드중 1개의 노드가 장애가 난 경우 ­ P1, P2 데이터가 loss되는거 아닐까?!
P1 -> R1(노드2), P2-> R2(노드3) 각각 복사본(replica)가 존재하기 때문에 다시 복구가능
Cluster Node Shard Replicaindex
2주차 강의
Near Real-Time (NRT)
https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html
Document,
Data
In-memory Buffer
Segment
System - File System Cache & Disk
- Segment별 검색. 문서색인 생성과
검색표시 사이의 지연이 크게줄여듬
- 병목은 Disk.
- Disk에 기록되기전 segment에만 작성되면
검색가능(Searchable)하게함
Settings : refresh_interval: “30s”
Document Segment indexing Refresh
Analysis
Inverted Index
2주차 강의
Full Text Searching Engine
https://www.elastic.co/kr/blog/found-elasticsearch-from-the-bottom-up
Document,
Data
is
winnter
coming
Token Stream Inverted Index Index Segment
Analysis
Document Segment indexing TokenInverted Index
2주차 강의
REST APIs Document JSON REST
• Elasticsearch는 HTTP 프로토콜로 접근이 가능한 REST API를 지원.
• 자원별로 고유 URL로 접근이 가능
• HTTP 메서드 PUT, POST, GET, DELETE 를 이용해서 자원을 처리
https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html
Document 생성
Document 조회
Document 수정
Document 삭제
Document API
2주차 강의
JSON Document NoSQL Document JSON indexingMapping
• Default로 문서의 모든 필드가 색인되어 JSON 구조로 저장된다.
• Schema Free를 지원하므로 별도의 사전 맵핑 없이도 JSON 문서 형식으로 데이터를 입력하면 검색이 가능한
형태로 색인 작업이 수행된다.
JSON Document 형식으로 Schema 구성
Indexing과정을 거처 meta field가 추가
Mapping
Field & Properties : Data type
기본적으로 모든 Field에 대해 Indexing 처리를 하기에 성능 향상
2주차 강의
Multi-tenancy Index
https://www.elastic.co/kr/blog/found-multi-tenancy
• 하나의 소프트웨어를 여러 사용자가 함께 사용하는 것
• Elasticsearch의 데이터들은 인덱스(Index) 라는 논리적인 집합 단위로 구성
• 서로 다른 저장소에 분산되어 저장
• 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어서 검색하고, 검색 결과들을 하나의 출력으로
도출.
2주차 강의
Distributed Operation & Aggregation
https://www.elastic.co/guide/en/elasticsearch/guide/current/distrib-read.html
• 분산환경에서는 이론상 데이터가 무한대로 늘어날 수 있기 때문에 많은 고민이 필요. -> 데이터양 / 정확도 /
실시간성
• 집계결과는 master 노드가 여러노드에 데이터를 집계해 질의에 답변
• cache : 질의의 결과를 임시버퍼(cache)에 둔다. 이후 같은 질의에 대해 다시 계산하지 않고, 버퍼에서 가져온다.
aggregation distributed query fetch
3주차 강의
여기서 잠깐
여기서 잠깐
검색엔진? 네이버인가?...
분산 시스템인가?.. 난 분산 시스템 안쓰는데;;
Aggregation은 뭐야.. 무서워..
JSON으로 저장되는게 좋은건가? 왜?
NoSQL이고.. 스키마도 있다고?! (혼란)
분산 저장소
분산 처리엔진분산 검색엔진
HDFS
MongoDB
Spark
MapReduce
Flink
Solr
Elasticsearch is ..
이 세가지 관점을 섞어서 사용하면
Booking.com http://booking.com/
search
Filtering & Aggregation
Aggregation ­ 날짜별 최저가
Sorting
Contents & Product
Yelp https://www.yelp.com/
Hoteltonight (AirBnB)
https://www.hoteltonight.com/
Elasticsearch 그 이상 Elastic Stack
정말 엄청난 회사.. 오픈소스중에서 가장 성공한 모델이 아닐까?
https://www.elastic.co/kr/blog/doubling-down-on-open
Elastic
• Logstash / Kibana를 흡수
• 수집단에서 Fluentd등 다른 대안이 있었는데. Beats를 개발
Logstash / Kibana / Beats
서로 다른 소스 사이에 데이터를 변환 & 전송
Input -> filter -> output
데이터 시각화 (+ 탐색, DevTool, Monitoring)
데이터 검색, 처리, 저장
데이터 수집
Elastic Stack의 완성
데이터 수집, 전송, 처리 , 저장, 시각화 모든 단계를 서포트하는 컴포넌트.
심지어 X-Pack도.. Opened
https://www.elastic.co/kr/what-is/open-x-pack
이제는 Solution 부분 / Deployment 부분도 확장
02. Elastic Stack & Data Pipeline
What is Data Pipeline ?
Data Pipeline?
Raw Data Service Impact
Data Pipeline!
Raw Data Service Impact수집 저장
처리시각화
Data Pipeline & Elastic Stack
수집 저장
처리시각화
Reference Architecture
Common Elastic Stack Architecture
Elastic Stack의 컴포넌트 뿐만 아니라 다양한 오픈소스들과 연계하여 구축
Messaging Queue
Hadoop Ecosystem
Data Pipeline Use Case - Uber
https://eng.uber.com/elk/Engineering Uber Predictions in Real Time with ELK
• 위치, 날짜, 시간 및 기타 설정 변수에 따라 trip 밀도 및 일치
속도와 같은 일부 패턴을 예측 -> K-NN사용
• 1. 지리적 위치, 시간 등의 기능 에서 파생 된 자체 정의 유사성
기능을 기반으로 k 후보 선택
• 2. 유사도 함수 및 출력으로 각 응답 변수에 대한 가중 평균을
기반으로 선택한 각 후보에 대한 가중치를 계산
• 한 번에 수천 건의 쿼리(QPS)와 수억 건의 레코드를 처리 할 수
있는 강력한 저장소 및 검색 엔진이 필요
• 또한 k 개의 후보자 필터링을 지원하기 위해 지리 공간 쿼리 지원
• Kafka 주제를 수집하여 거의 실시간으로 데이터를 로드
여행 데이터, 여행 시간, 거리 및 비용과 같은 메트릭
https://deview.kr/2017/schedule/201
백억 개의 로그를 모아 검색하고 분석하고 학습도 시켜보자: 로기스
Data Pipeline Use Case ­ Naver : 로기스
03. Elastic Stack & 데이터 분석
What is Data Analysis ?
• 서비스를 위한 의사결정을 위한 가설 및 KPI를 수립
• 그 가설을 데이터로 검증 + 데이터에서 insight를 찾기
• 추가적인 분석을 위해 필요한 데이터를 요청 할 수 있다.
데이터 분야의 직군 소개
What is 지표(metric) ?
• 오늘 새로운 가입자가 42명.
• 오늘 의류 카테고리에서 판매금액이 350만원 증가
• 가입 전환율이 지난달 대비 4% 증가
• 지난주 이벤트 푸쉬에 참여하기 링크 CTR이 3.7%
• 5월달 인당 평균 결제액은 7500원
Get User Drive Usage Make Money
서비스를 운영하면서 생성되는 다양한 Log를 의미있는 형태로 가공
사람과 관련된 지표 돈과 관련된 지표
회원수 (User)
• 상태별회원수
• 누적 회원수
• DAU, WAU, MAU (Active User)
• MCU (Maximum Current User)
• PU (Paying User)
가입전환율
재방문자 비율
방문간격 (Visit Frequency)
잔존율 (Retension Rate)
결제유저 비율(Paying User Rate)
매출 (Revenue)
결제횟수 (Transactions)
ARPU (Average Revenue Per User)
ARPPU (Average Revenue Per Paying User)
ARPDAU (Average Revenue Per Daily Active User)
ASP (Average Selling Price)
평균 구매 간격 (Purchase Frequency)
CPC (Cost Per Click) : 클릭당비용
CPM (Cost Per Mille) : 1000개 노출당 비용
CPA (Cost Per Action & Acquisition)
CAC (Customer Acquisition Cost)
LTV (Lifetime Value) = CLV (Customer Lifetime Value)
LTR (Lifetime Revenue)
ROAS (Return on Ads Spending)
•데이터는 차트가 아니라 돈이 되어야 한다.
•서비스 기획자를 위한 데이터분석 시작하기
•로그 데이터로 유저 이해하기
데이터 분석 관련 참고 자료
Log Metric Dashboard
데이터 분석을 위해 Log -> Metric -> Dashboard 구축
Q & A
실습.
Docker로 ELK 시스템을 구축하고 데이터 분석을 해보자
Docker
• 리눅스 컨테이너 기술(LXC)을 이용해서 어플리케이션 패키징, 배포를 지원하는 경량의
가상화 오픈소스 프로젝트.
• Docker는 가볍다.
• VM(20G~)에 비해 이미지파일크기가 작아서 빠르게 이미지를 만들고 실행가능.
수백MB정도
• Immutable Infrastructure : OS커널과 Service운영환경을 분리하자.
• 관리가 편함 / 확장이 쉬움 / 경량화 됨.
• 이런 Immutable Infrastructure의 구현체가 Docker
Docker
Docker Image
• 컨테이너를 만들기위한 것.
• Layer File System으로 각 파일 시스템이 곧
이미지.
• 읽기전용(ReadOnly) 파일시스템으로 도커가
어플리케이션을 배포하는 단위
• Docker Image를 실행한 상태
• 사실은 ps인데 VM처럼 보이는 것이다.
isolated된 영역에서 process를 띄운 것.
Docker Container
https://dzone.com/articles/developing-on-macos-with-docker
Dockerfile
도커이미지를 만들기 위해 설치할 SW, 필요한 설정을 정의하는 파일
https://github.com/elastic/elasticsearch/blob/master/distribution/docker/src/docker/Dockerfile
$> docker search hello-world #이미지검색
$> docker pull hello-world #이미지다운
$> docker run hello-world #실행
$> docker rmi hello-world #이미지삭제
$> docker images #로컬에 있는 이미지 정보
$> docker info #도커정보
$> docker ps #컨테이너 프로세스정보
$> docker inspect hello-world
$> docker logs hello-world
Docker Compose
Elasticsearch
Kibana
http://localhost:9200
http://localhost:5601
$> docker-compose –f docker-compose.simple.yml up
Elasticsearch image 정보
https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
Elasticsearch 설정 정보
./elasticsearch/Dockerfile
source Target
실습.
Kibana
• Load Data
• Discovery
• Visualization & Dashboard
• DevTool
• Management
Kibana
Kibana ­ Home
Discovery
Visualize
Dashboard
Dev Tool
Monitoring
Management
Sample data Upload File Create Index Pattern
Home
Kibana ­ Load Data
Kibana ­ Upload data From File (csv)
100MB 이하 데이터만가능
https://www.kaggle.com/olistbr/brazilian-ecommerce?select=olist_order_items_dataset.csv
01. 캐글에서 샘플데이터 확인
olist_order_items_dataset.csv
- order_id
- order_item_id
- product_id
- Seller_id
- Shipping_limit_date
- Price
- Freight_value
02. Kibana ­ Upload data From File
Summary Data
- Time field & format
Field별 stats정보
03. Import data ­ index pattern
Shard 개수설정 Mapping 수정
04. Import complete
05. View index in Discovery
ㅊ
Time Range
06. Index Management
15MB(원본) -> 31MB (Elasticsearch)
Kibana ­ Add Sample Data
Kibana ­ Add Sample Data
https://www.elastic.co/guide/en/kibana/current/tutorial-sample-data.html
- eCommerce orders
- Flight data
- Web logs
Kibana ­ Discovery
Discovery ㅊ
필드정보
Time RangeSearching (KQL)
Filter
Index Name
Kibana ­ Discovery
Kibana ­ Discovery : Add Filter
Kibana ­ Discovery : Filter for value
Kibana ­ Discovery : KQL https://www.elastic.co/guide/en/kibana/7.6/kuery-query.html
Kibana ­ Visualization & Dashboard
Kibana ­ Visualization & Dashboard
총 매출액에 대해서 알아보자
Metric
매출에 대한 field를 선택
Min, max, sum, avg..중 sum이 총합계
Bar chart
일별로 총매출액의 변화를 확인
Metric Aggregation - sum
Bucket Aggregation ­ Date Historgram
Kibana ­ Devtool
Kibana ­ Devtool
Dev Tool
Kibana ­ Monitoring
Kibana ­ Monitoring
Kibana ­ Management
Kibana ­ Management
Management
Q & A

Contenu connexe

Tendances

Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석Daeyong Shin
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Seongyun Byeon
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 
Learning Docker from Square One
Learning Docker from Square OneLearning Docker from Square One
Learning Docker from Square OneDocker, Inc.
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유beom kyun choi
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)Suhyun Park
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우NAVER D2
 
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민XpressEngine
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입choi sungwook
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교sprdd
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaAmazee Labs
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
 

Tendances (20)

Elk
Elk Elk
Elk
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
Learning Docker from Square One
Learning Docker from Square OneLearning Docker from Square One
Learning Docker from Square One
 
ELK introduction
ELK introductionELK introduction
ELK introduction
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우
 
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
 

Similaire à Elastic Stack & Data pipeline

Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장eungjin cho
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020Jinwoong Kim
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWSKRUG - AWS한국사용자모임
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)크몽
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나Amazon Web Services Korea
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Minchul Jung
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축BOAZ Bigdata
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3in2acous
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 AzureIan Choi
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기Kyuhyun Byun
 

Similaire à Elastic Stack & Data pipeline (20)

Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
고성능 빅데이터 수집 및 분석 솔루션 - 티맥스소프트 허승재 팀장
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
Elastic stack
Elastic stackElastic stack
Elastic stack
 
정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)정보검색과 Elasticsearch (크몽)
정보검색과 Elasticsearch (크몽)
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
elasticsearch
elasticsearchelasticsearch
elasticsearch
 
2016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/32016년 인문정보학 Sql세미나 1/3
2016년 인문정보학 Sql세미나 1/3
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
CouchDB - Introduction - Korean
CouchDB - Introduction - KoreanCouchDB - Introduction - Korean
CouchDB - Introduction - Korean
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure무엇이 무엇이 닮았을까?- OpenStack과 Azure
무엇이 무엇이 닮았을까?- OpenStack과 Azure
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기
 

Dernier

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 

Dernier (8)

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 

Elastic Stack & Data pipeline

  • 1. Elastic Stack으로 시작하는 데이터 엔지니어링과 데이터 분석 Torres
  • 2. Elastic Stack으로 시작하는 데이터 엔지니어링과 분석 Elastic Stack 데이터 엔지니어링 데이터 분석 이 세가지에 대해 알아보자
  • 3. 데이터 엔지니어링 데이터 분석 데이터 관련 업무를 할 때, 데이터 엔지니어링과 데이터 분석은 상호보완적 역할을 한다. 필요한 형태로 데이터를 가공·저장 및 기술적인 이슈를 해결 서비스 개선을 위해 데이터를 다각도로 분석, 그 과정에서 필요한 것(데이터, 툴)들을 요구
  • 4. Elastic Stack 수집 처리 저장 시각화 전체 데이터 관련 프로세스를 처리할 수 있다. 데이터 엔지니어링 데이터 분석
  • 5. Elastic Stack만 사용한다는 것이 아닌 다양한 오픈소스와 솔루션을 함께 사용 분명한 점은, Elastic Stack은 데이터 관련 업무에서 중요한 포지션을 차지 하고 있다는 것
  • 7. Ø Elastic Stack을 가지고 “우리 서비스에 필요한” 데이터 분석을 해본다. Ø Elastic Stack을 가지고 데이터 파이프라인을 이해하고 구축해본다. 강의 목표
  • 9. Kakao Mobility Data Engineer • Data Pipeline • AB Test Platform • Machine Learning Platform • Feature Engineering • Kubernetes & Cloud Native Application • Cloud Infrastructure & DevOps Torres.woo https://www.linkedin.com/in/torreswoo/
  • 10. https://www.slideshare.net/jonghoWoo1/ab-test-platform-sk-planet Ø Elasticsearch를 사용한 User Event 데이터 저장 & 집계(Aggregation) Ø Metric & Chart 생성을 위한 Aggregation Ø Metric(CR, CTR, Revenue, Impression) & 시계열 데이터, 실시간 처리 Ø Experiment - Audience Targeting(유저타켓팅), Exclusive Group(상호배타실험) AB Test Platform
  • 11. User Event Log 수집 Metric(CR, CTR, Revenue, Impression) 생성 & 시각화 https://www.slideshare.net/jonghoWoo1/ab-test-platform-sk-planet Elasticsearch
  • 12. https://www.slideshare.net/JeminHuh/realtime-log-monitoring-platformpmon Tech planet 2016_Elastic search를이용한 Log기반 모니터링 & Log 검색 시스템 구축 Log & Monitoring System Ø 대용량 시계열 모니터링 데이터 처리 Ø 수천개의 Web & WAS log 정형화 & Service 데쉬보드 Ø 수천대의 서버 리소스 메트릭 모니터링 (CPU, Memory, Load, Disk, Network) Ø Near Real-Time (NRT) Log viewer
  • 13. cnxlog collectd cnxlog collectd cnxlog collectd 서버의 시스템 Metric 정보 수집 -> collectd 서버의 Web & WAS Log 수집 -> cnxlog https://www.slideshare.net/JeminHuh/realtime-log-monitoring-platformpmon Tech planet 2016_Elastic search를이용한 Log기반 모니터링 & Log 검색 시스템 구축 Elasticsearch
  • 14. • 그들이 AWS 위에서 Kubernetes 를 운영하는 방법 박훈@ZEPL • AWS 위에 올라간 모든걸 머리부터 발 끝까지 CTRL + C / V 박훈@ZEPL • 그들이 AWS 위에서 데이터 파이프라인을 운영하는법 (2019) 박훈@yanolja • 그들이 클라우드 위에서 데이터를 쉽고 빠르게 다루는 법(2019-7) 박훈@yanolja ZEPL (Apache Zeppelin SaaS), Cloud Notebook System Ø Elasticsearch를 사용한 Notebook Searching System Ø EFK(Elasticsearch, Fluentd, Kibana)를 사용한 Kubernetes Logging System
  • 15. Notebook 문서를 메타 데이터와 함께 저장 문서 본문에 Analyzer(분석기)에 따라 색인 Elasticsearch
  • 16. 1주차 강의 01. Elastic Stack? 02. Elastic Stack과 Data Pipeline 03. Elastic Stack을 사용하여 데이터 분석 Ø Docker로 개발환경 구축 Ø Docker-compose로 ELK 구축하기 Ø Kibana로 데이터 탐색 및 분석 Ø Elasticsearch 확인하기
  • 19. Elasticsearch Ø 이제는 어느 회사나 하나쯤은 가지고 있는 Elasticsearch가 핵심 Ø 2015년, 0.7버전부터 사용. But, 운영이 너무 힘듬. 노드가 죽으면서 DB로서는 부적합? 그러나 2.X. 지금은 7.7 Ø https://github.com/elastic/elasticsearch Open Source, Distributed, Restful Search Engine 검색엔진?
  • 20. 검색엔진 Lucene ㅣ 검색엔진의 시작. 더그커팅이 고안한 역색인 구조는 빠른 검색 결과를 제공하는데 최적의 성능. Apache Lucene을 개발. Apach Solr ㅣ 루씬 기반으로 분산 처리가 가능한 Apach Solr 검색엔진 Elasticsearch ㅣ 전통적인 URI검색 방식에서 → Request Body방식의 Query DSL. 특히 Aggregation API는 솔라의 집계 기술은 Facet API보다 훨씬 뛰어남
  • 21. Elasticsearch! Not Just Searching Engine!
  • 22. Elasticsearch! Not Just Searching Engine! • Distributed, Scalable • HA (High-Availability) • Distributed Document Store Cluster Node Shard Replicaindex 2주차 강의에서
  • 23. Elasticsearch! Not Just Searching Engine! 3주차 강의에서
  • 24. Distributed, Scalable HA, Fault Tolerance Near Real-Time (NRT) Full Text Searching Engine REST APIs JSON Document NoSQL Multi-tenancy Distributed Operation & Aggregation Cluster Node Shard Replicaindex indexing Refresh Document Segment TokenInverted Index JSON REST aggregation distributed query fetch
  • 25. Distributed, Scalable https://www.elastic.co/guide/en/elasticsearch/guide/current/_scale_horizontally.html Node추가 ­ 데이터가 분산되어 저장 (reallocating) 2개의 노드, 1개 index (shard: 3 & replica:2)로 Cluster가 구성된 상태 Cluster Node Shard Replicaindex 2주차 강의
  • 26. https://www.elastic.co/guide/en/elasticsearch/guide/current/_coping_with_failure.html HA, Fault Tolerance Replica, shard 3개의 노드중 1개의 노드가 장애가 난 경우 ­ P1, P2 데이터가 loss되는거 아닐까?! P1 -> R1(노드2), P2-> R2(노드3) 각각 복사본(replica)가 존재하기 때문에 다시 복구가능 Cluster Node Shard Replicaindex 2주차 강의
  • 27. Near Real-Time (NRT) https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.html Document, Data In-memory Buffer Segment System - File System Cache & Disk - Segment별 검색. 문서색인 생성과 검색표시 사이의 지연이 크게줄여듬 - 병목은 Disk. - Disk에 기록되기전 segment에만 작성되면 검색가능(Searchable)하게함 Settings : refresh_interval: “30s” Document Segment indexing Refresh Analysis Inverted Index 2주차 강의
  • 28. Full Text Searching Engine https://www.elastic.co/kr/blog/found-elasticsearch-from-the-bottom-up Document, Data is winnter coming Token Stream Inverted Index Index Segment Analysis Document Segment indexing TokenInverted Index 2주차 강의
  • 29. REST APIs Document JSON REST • Elasticsearch는 HTTP 프로토콜로 접근이 가능한 REST API를 지원. • 자원별로 고유 URL로 접근이 가능 • HTTP 메서드 PUT, POST, GET, DELETE 를 이용해서 자원을 처리 https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html Document 생성 Document 조회 Document 수정 Document 삭제 Document API 2주차 강의
  • 30. JSON Document NoSQL Document JSON indexingMapping • Default로 문서의 모든 필드가 색인되어 JSON 구조로 저장된다. • Schema Free를 지원하므로 별도의 사전 맵핑 없이도 JSON 문서 형식으로 데이터를 입력하면 검색이 가능한 형태로 색인 작업이 수행된다. JSON Document 형식으로 Schema 구성 Indexing과정을 거처 meta field가 추가 Mapping Field & Properties : Data type 기본적으로 모든 Field에 대해 Indexing 처리를 하기에 성능 향상 2주차 강의
  • 31. Multi-tenancy Index https://www.elastic.co/kr/blog/found-multi-tenancy • 하나의 소프트웨어를 여러 사용자가 함께 사용하는 것 • Elasticsearch의 데이터들은 인덱스(Index) 라는 논리적인 집합 단위로 구성 • 서로 다른 저장소에 분산되어 저장 • 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어서 검색하고, 검색 결과들을 하나의 출력으로 도출. 2주차 강의
  • 32. Distributed Operation & Aggregation https://www.elastic.co/guide/en/elasticsearch/guide/current/distrib-read.html • 분산환경에서는 이론상 데이터가 무한대로 늘어날 수 있기 때문에 많은 고민이 필요. -> 데이터양 / 정확도 / 실시간성 • 집계결과는 master 노드가 여러노드에 데이터를 집계해 질의에 답변 • cache : 질의의 결과를 임시버퍼(cache)에 둔다. 이후 같은 질의에 대해 다시 계산하지 않고, 버퍼에서 가져온다. aggregation distributed query fetch 3주차 강의
  • 34. 여기서 잠깐 검색엔진? 네이버인가?... 분산 시스템인가?.. 난 분산 시스템 안쓰는데;; Aggregation은 뭐야.. 무서워.. JSON으로 저장되는게 좋은건가? 왜? NoSQL이고.. 스키마도 있다고?! (혼란)
  • 35. 분산 저장소 분산 처리엔진분산 검색엔진 HDFS MongoDB Spark MapReduce Flink Solr Elasticsearch is ..
  • 36. 이 세가지 관점을 섞어서 사용하면
  • 37. Booking.com http://booking.com/ search Filtering & Aggregation Aggregation ­ 날짜별 최저가 Sorting Contents & Product
  • 40. Elasticsearch 그 이상 Elastic Stack
  • 41. 정말 엄청난 회사.. 오픈소스중에서 가장 성공한 모델이 아닐까? https://www.elastic.co/kr/blog/doubling-down-on-open Elastic
  • 42. • Logstash / Kibana를 흡수 • 수집단에서 Fluentd등 다른 대안이 있었는데. Beats를 개발 Logstash / Kibana / Beats 서로 다른 소스 사이에 데이터를 변환 & 전송 Input -> filter -> output 데이터 시각화 (+ 탐색, DevTool, Monitoring) 데이터 검색, 처리, 저장 데이터 수집
  • 43. Elastic Stack의 완성 데이터 수집, 전송, 처리 , 저장, 시각화 모든 단계를 서포트하는 컴포넌트.
  • 45. 이제는 Solution 부분 / Deployment 부분도 확장
  • 46. 02. Elastic Stack & Data Pipeline
  • 47. What is Data Pipeline ?
  • 48. Data Pipeline? Raw Data Service Impact
  • 49. Data Pipeline! Raw Data Service Impact수집 저장 처리시각화
  • 50. Data Pipeline & Elastic Stack 수집 저장 처리시각화
  • 52. Common Elastic Stack Architecture Elastic Stack의 컴포넌트 뿐만 아니라 다양한 오픈소스들과 연계하여 구축 Messaging Queue Hadoop Ecosystem
  • 53. Data Pipeline Use Case - Uber https://eng.uber.com/elk/Engineering Uber Predictions in Real Time with ELK • 위치, 날짜, 시간 및 기타 설정 변수에 따라 trip 밀도 및 일치 속도와 같은 일부 패턴을 예측 -> K-NN사용 • 1. 지리적 위치, 시간 등의 기능 에서 파생 된 자체 정의 유사성 기능을 기반으로 k 후보 선택 • 2. 유사도 함수 및 출력으로 각 응답 변수에 대한 가중 평균을 기반으로 선택한 각 후보에 대한 가중치를 계산 • 한 번에 수천 건의 쿼리(QPS)와 수억 건의 레코드를 처리 할 수 있는 강력한 저장소 및 검색 엔진이 필요 • 또한 k 개의 후보자 필터링을 지원하기 위해 지리 공간 쿼리 지원 • Kafka 주제를 수집하여 거의 실시간으로 데이터를 로드 여행 데이터, 여행 시간, 거리 및 비용과 같은 메트릭
  • 54. https://deview.kr/2017/schedule/201 백억 개의 로그를 모아 검색하고 분석하고 학습도 시켜보자: 로기스 Data Pipeline Use Case ­ Naver : 로기스
  • 55. 03. Elastic Stack & 데이터 분석
  • 56. What is Data Analysis ? • 서비스를 위한 의사결정을 위한 가설 및 KPI를 수립 • 그 가설을 데이터로 검증 + 데이터에서 insight를 찾기 • 추가적인 분석을 위해 필요한 데이터를 요청 할 수 있다. 데이터 분야의 직군 소개
  • 57. What is 지표(metric) ? • 오늘 새로운 가입자가 42명. • 오늘 의류 카테고리에서 판매금액이 350만원 증가 • 가입 전환율이 지난달 대비 4% 증가 • 지난주 이벤트 푸쉬에 참여하기 링크 CTR이 3.7% • 5월달 인당 평균 결제액은 7500원 Get User Drive Usage Make Money 서비스를 운영하면서 생성되는 다양한 Log를 의미있는 형태로 가공
  • 58. 사람과 관련된 지표 돈과 관련된 지표 회원수 (User) • 상태별회원수 • 누적 회원수 • DAU, WAU, MAU (Active User) • MCU (Maximum Current User) • PU (Paying User) 가입전환율 재방문자 비율 방문간격 (Visit Frequency) 잔존율 (Retension Rate) 결제유저 비율(Paying User Rate) 매출 (Revenue) 결제횟수 (Transactions) ARPU (Average Revenue Per User) ARPPU (Average Revenue Per Paying User) ARPDAU (Average Revenue Per Daily Active User) ASP (Average Selling Price) 평균 구매 간격 (Purchase Frequency) CPC (Cost Per Click) : 클릭당비용 CPM (Cost Per Mille) : 1000개 노출당 비용 CPA (Cost Per Action & Acquisition) CAC (Customer Acquisition Cost) LTV (Lifetime Value) = CLV (Customer Lifetime Value) LTR (Lifetime Revenue) ROAS (Return on Ads Spending)
  • 59. •데이터는 차트가 아니라 돈이 되어야 한다. •서비스 기획자를 위한 데이터분석 시작하기 •로그 데이터로 유저 이해하기 데이터 분석 관련 참고 자료
  • 60. Log Metric Dashboard 데이터 분석을 위해 Log -> Metric -> Dashboard 구축
  • 61. Q & A
  • 62. 실습. Docker로 ELK 시스템을 구축하고 데이터 분석을 해보자
  • 64. • 리눅스 컨테이너 기술(LXC)을 이용해서 어플리케이션 패키징, 배포를 지원하는 경량의 가상화 오픈소스 프로젝트. • Docker는 가볍다. • VM(20G~)에 비해 이미지파일크기가 작아서 빠르게 이미지를 만들고 실행가능. 수백MB정도 • Immutable Infrastructure : OS커널과 Service운영환경을 분리하자. • 관리가 편함 / 확장이 쉬움 / 경량화 됨. • 이런 Immutable Infrastructure의 구현체가 Docker Docker
  • 65. Docker Image • 컨테이너를 만들기위한 것. • Layer File System으로 각 파일 시스템이 곧 이미지. • 읽기전용(ReadOnly) 파일시스템으로 도커가 어플리케이션을 배포하는 단위 • Docker Image를 실행한 상태 • 사실은 ps인데 VM처럼 보이는 것이다. isolated된 영역에서 process를 띄운 것. Docker Container https://dzone.com/articles/developing-on-macos-with-docker
  • 66. Dockerfile 도커이미지를 만들기 위해 설치할 SW, 필요한 설정을 정의하는 파일 https://github.com/elastic/elasticsearch/blob/master/distribution/docker/src/docker/Dockerfile $> docker search hello-world #이미지검색 $> docker pull hello-world #이미지다운 $> docker run hello-world #실행 $> docker rmi hello-world #이미지삭제 $> docker images #로컬에 있는 이미지 정보 $> docker info #도커정보 $> docker ps #컨테이너 프로세스정보 $> docker inspect hello-world $> docker logs hello-world
  • 71. 실습. Kibana • Load Data • Discovery • Visualization & Dashboard • DevTool • Management
  • 73. Kibana ­ Home Discovery Visualize Dashboard Dev Tool Monitoring Management Sample data Upload File Create Index Pattern Home
  • 75. Kibana ­ Upload data From File (csv) 100MB 이하 데이터만가능
  • 76. https://www.kaggle.com/olistbr/brazilian-ecommerce?select=olist_order_items_dataset.csv 01. 캐글에서 샘플데이터 확인 olist_order_items_dataset.csv - order_id - order_item_id - product_id - Seller_id - Shipping_limit_date - Price - Freight_value
  • 77. 02. Kibana ­ Upload data From File Summary Data - Time field & format Field별 stats정보
  • 78. 03. Import data ­ index pattern Shard 개수설정 Mapping 수정
  • 80. 05. View index in Discovery ㅊ Time Range
  • 81. 06. Index Management 15MB(원본) -> 31MB (Elasticsearch)
  • 82. Kibana ­ Add Sample Data
  • 83. Kibana ­ Add Sample Data https://www.elastic.co/guide/en/kibana/current/tutorial-sample-data.html - eCommerce orders - Flight data - Web logs
  • 85. Discovery ㅊ 필드정보 Time RangeSearching (KQL) Filter Index Name Kibana ­ Discovery
  • 86. Kibana ­ Discovery : Add Filter
  • 87. Kibana ­ Discovery : Filter for value
  • 88. Kibana ­ Discovery : KQL https://www.elastic.co/guide/en/kibana/7.6/kuery-query.html
  • 89.
  • 90. Kibana ­ Visualization & Dashboard
  • 91. Kibana ­ Visualization & Dashboard 총 매출액에 대해서 알아보자
  • 92.
  • 93. Metric 매출에 대한 field를 선택 Min, max, sum, avg..중 sum이 총합계
  • 94. Bar chart 일별로 총매출액의 변화를 확인 Metric Aggregation - sum Bucket Aggregation ­ Date Historgram
  • 101. Q & A