SlideShare a Scribd company logo
1 of 29
Tajo를 이용한 실무 데이터 분석
고영경
ykko@gruter.com
©2014 Gruter. All rights reserved.
오늘의 주제
허접 데이터 분석가의 Tajo 사용기
“Tajo 를 이용한 실무 데이터 분석”
1. 개인용 분석엔진으로 Tajo 사용하기
2. Tajo 데이터 분석을 예제로 맛보기
- Cohort 분석
- RFM 모델
- 아파치 웹로그 분석
1GB 데이터를 요리조리
살펴보고 싶은데 뭘로 하지?
엑셀?
MySQL?
Script ?
R ?
하둡에 올려서 분산처리? 헉…
Tajo 로 한번 해 볼까?
©2014 Gruter. All rights reserved.
개인용 분석엔진으로 Tajo 사용하기
Tajo는 데이터 분석가를 위한 유연하고 확장성있는 분석 엔진
• Tajo는 대용량 분산 DW 시스템으로 설계되었지만
• 데스크탑 환경에서 개인 개발 환경으로도 유용한 도구
• 인터랙티브 분석과 대용량 데이터 처리를 모두 지원
• 아키텍처 변경 없이 대용량 분산 환경에 적용 가능
• 다양한 스토리지 지원 (HDFS, Local File, S3, Swift, HBase, ElasticSearch…)
• Pluggable 커스텀 스캐너 - 비정형 데이터도 별도 변환 없이 SQL 분석
Tajo Desktop Package
• Mac, Linux 에서 쉽게 설치할 수 있는 standalone Tajo 설치 패키지
• (Windows 버전은 개발 중)
• Hadoop 필요 없이 Local File system 을 스토리지로 이용
3
©2014 Gruter. All rights reserved.
Tajo Desktop Package 설치
1. 그루터 홈페이지에서 다운로드
http://gruter.com/download.html
2. 압축 풀고
$ tar xvfz tajo-0.x.tar.gz
$ cd tajo-0.x
3. 환경 설정
$ bin/configure.sh
4. Tajo 실행
$ bin/startup.sh
4
5. 샘플 데이터셋 로드 (optional)
$ bin/make-test.sh
6. TSQL 실행
$ bin/tsql
Try ? for help.
default>
7. Tajo 종료
$ bin/shutdown.sh
©2014 Gruter. All rights reserved.
Tajo 관리 UI
http://tajo-master-ip:26080/
5
©2014 Gruter. All rights reserved.
Tajo JDBC driver를 이용한 외부 툴 연동
6
Tajo JDBC
HDFS HBase
AWS
S3
Local
Storage
OpenStack
Swift
Tajo Cluster
ETL Tools BI Tools Reporting tools
©2014 Gruter. All rights reserved.
개인용 분석 엔진 Tajo vs. Mysql
• RDB와 비교한 Tajo의 특징
– RDB 는 성숙하고 익숙한 기술, Tajo는 계속 발전중인 기술
– ETL 과정이 필요 없음  처리 시간, 저장 공간, 개발 노력 절약
– Index 가 없음  질의 성격과 데이터 크기에 따라 유불리 달라짐
– 커스텀 스캐너를 이용하여, 다양한 포맷의 데이터를 유연하게 처리 가능
– 단일 머신에서도 복수 Worker 로 분산 처리 가능
– 작은 데이터에서는 RDB와 큰 속도 차이 없이 인터랙티브 분석 가능
– 데이터 크기가 커질수록 Tajo 가 유리
7
©2014 Gruter. All rights reserved.
데이터 준비
데이터 파일을 External Table 로 연결
8
CREATE EXTERNAL TABLE orders (
O_ORDERKEY bigint, O_CUSTKEY bigint, O_ORDERSTATUS text,
O_TOTALPRICE double, O_ORDERDATE text, O_ORDERPRIORITY text,
O_CLERK text, O_SHIPPRIORITY int, O_COMMENT text)
USING text with ('csvfile.delimiter'='|')
LOCATION ‘file:///Users/ykko/tajo/tajo-desktop-weblog-
2.0/data/tpc-h10m/orders.txt';
SELECT * FROM orders LIMIT 10;
/Users/ykko/tajo/tajo-desktop-weblog-2.0/data/tpc-h10m/orders.txt
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (1)
Cohort 분석
– 동일한 특성을 가진 고객들을 그룹(Cohort)로 묶어
– 시간의 흐름에 따라 각 그룹의 성과(유지율, 사용량, 고객가치 등)를 비교하는
분석 방법
9
* 출처: 하용호 “스타트업은 데이터를 어떻게 바라봐야 할까?”
http://www.slideshare.net/yongho/ss-32267675
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (2)
이 예제에서는
– TPC-H 샘플 데이터의 orders 테이블에서
– 특정 월에 첫 구매한 사용자들을 Cohort 로 묶고
– 각 그룹의 이후 월 단위 재구매 패턴을 비교
원하는 결과
10
Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후
1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193
2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797
3월 첫구매 그룹 150,328 152,783 149,548 154,045
4월 첫구매 그룹 151,178 149,859 148,542
5월 첫구매 그룹 152,174 150,412
6월 첫구매 그룹 151,265
Column 설명
o_orderkey 주문번호
o_custkey 고객번호
o_totalprice 주문금액
o_orderdate 주문일자
…
Table: orders
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (3)
Cohort 구하기
– Cohort 정의: 특정 월에 첫 구매한 사용자 그룹
11
CREATE TABLE cohort AS
SELECT o_custkey, -- 고객번호
min(o_orderdate) as cohort_date, -- 최초 주문일
min(substr(o_orderdate,0,8)) as cohort -- cohort 그룹
FROM orders
WHERE o_orderdate between '1992-01-01' and '1992-06-30'
GROUP BY o_custkey
ORDER BY o_custkey;
결과
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (4)
각 Cohort 의 월별 재구매 계산
12
-- cohort, 주문 월, 주문자 수, 주문건수, 주문총액, 평균주문액
CREATE TABLE cohort_analysis AS
SELECT c.cohort,
substr(o_orderdate,0,8) as order_month,
count(distinct(o.o_custkey)) as buyer_cnt,
count(o.o_orderkey) as order_cnt,
round(sum(o.o_totalprice)) as amount,
round(avg(o.o_totalprice)) as avg_amount
FROM orders o
JOIN cohort c ON o.o_custkey = c.o_custkey
WHERE o.o_orderdate between '1992-01-01' and '1992-06-30'
GROUP BY c.cohort, substr(o_orderdate,0,8)
ORDER BY c.cohort, substr(o_orderdate,0,8) ASC
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (5)
13
-- cohort, 주문 월, 평균주문액
CREATE TABLE cohort_analysis AS
SELECT c.cohort,
substr(o_orderdate,0,8) as order_month,
round(avg(o.o_totalprice)) as avg_amount
FROM orders o JOIN (
SELECT o_custkey,
min(o_orderdate) as cohort_date,
min(substr(o_orderdate,0,8)) as cohort
FROM orders
WHERE o_orderdate between '1992-01-01' and '1992-06-30'
GROUP BY o_custkey
) c ON o.o_custkey = c.o_custkey
WHERE o.o_orderdate between '1992-01-01' and '1992-06-30'
GROUP BY c.cohort, substr(o_orderdate,0,8)
ORDER BY c.cohort, substr(o_orderdate,0,8) ASC
Sub Query 로 합쳐 보면
©2014 Gruter. All rights reserved.14
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (6)
15
Cohort 1992-01 1992-02 1992-03 1992-04 1992-05 1992-06
1992-01 151,292 151,330 150,063 149,407 149,510 152,193
1992-02 150,624 153,407 151,847 148,187 149,797
1992-03 150,328 152,783 149,548 154,045
1992-04 151,178 149,859 148,542
1992-05 152,174 150,412
1992-06 151,265
Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후
1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193
2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797
3월 첫구매 그룹 150,328 152,783 149,548 154,045
4월 첫구매 그룹 151,178 149,859 148,542
5월 첫구매 그룹 152,174 150,412
6월 첫구매 그룹 151,265
첫
구
매
재 구매
©2014 Gruter. All rights reserved.
분석 예제 1 – Cohort Analysis (7)
16
144,000
146,000
148,000
150,000
152,000
154,000
156,000
첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후
1월 첫구매 그룹
2월 첫구매 그룹
3월 첫구매 그룹
Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후
1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193
2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797
3월 첫구매 그룹 150,328 152,783 149,548 154,045
4월 첫구매 그룹 151,178 149,859 148,542
5월 첫구매 그룹 152,174 150,412
6월 첫구매 그룹 151,265
©2014 Gruter. All rights reserved.
실무 적용 사례 – Cohort Analysis on AWS
17
Locket - 스마트폰 잠금화면에 인기 컨텐츠를 보여주는 App
고객의 App 사용 행동 로그를 이용하여 Cohort 분석 수행
EC2 인스턴스 10대로 Tajo 클러스터 구성, 수행시간 40초
EC2
Tajo
EC2
Tajo
EC2
Tajo
S3
Source Data Tajo Tables
RDS
MySQL
EC2
Tajo
1. Cohort Analysis 2. Save Output Data
3. Load
©2014 Gruter. All rights reserved.
분석 예제 2 – RFM 모델 (1)
• RFM 모델
– 과거의 거래 데이터에서 R, F, M 속성으로 고객을 분류하는 간단한 모델
– Recency :거래의 최근성
– Frequency : 거래 빈도
– Monetary : 거래 규모
– 고객의 가치 계산, 마케팅 타겟 유저 선별, 재구매 예측 모델 등에 사용
• 이 예제에서는
– Orders 테이블의 주문 데이터를 이용하여
– R, F, M 을 각각 3등급으로 나누어
– 개별 고객의 R,F,M score 를 구하고
– 이후 1년의 재구매 데이터와 JOIN 하여
– 재구매 예측 모델을 만들기 위한 데이터를 준비
18
©2014 Gruter. All rights reserved.
분석 예제 – RFM 모델 (2)
각 고객의 R,F,M 값 구하기
• 이 예제에서는
19
-- 고객번호, Recency, Frequency, Monentary
CREATE TABLE rfm_1995
AS
SELECT o_custkey,
MAX(CASE WHEN o_orderdate >= '1995-11-01' THEN 2
WHEN o_orderdate >= '1995-07-01' THEN 1
ELSE 0 END) AS r_score,
CASE WHEN count(o_orderkey) >= 4 THEN 2
WHEN count(o_orderkey) >= 2 THEN 1
ELSE 0 END AS f_score,
CASE WHEN sum(o_totalprice) >= 500000 THEN 2
WHEN sum(o_totalprice) >= 200000 THEN 1
ELSE 0 END AS m_score
FROM orders
WHERE o_orderdate BETWEEN '1995-01-01' AND '1995-12-31'
GROUP BY o_custkey
Recency 기준 R_score
직전 2개월 내 구매 2
직전 6개월 내 구매 1
Else 0
©2014 Gruter. All rights reserved.
분석 예제 2 – RFM 모델 (3)
R, F, M 그룹 통계
• 이 예제에서는
20
-- R-score, F-score, M-score, # of users
SELECT r_score, f_score, m_score,
count(*) as cnt
FROM rfm_1995
GROUP BY r_score, f_score, m_score
ORDER BY r_score, f_score, m_score;
r_score, f_score, m_score, cnt
-------------------------------
0, 0, 0, 8105
0, 0, 1, 3488
0, 1, 0, 1375
0, 1, 1, 5477
0, 1, 2, 1151
0, 2, 0, 3
0, 2, 1, 222
0, 2, 2, 726
1, 0, 0, 5631
1, 0, 1, 2466
1, 1, 0, 2790
1, 1, 1, 12234
1, 1, 2, 3681
1, 2, 0, 31
1, 2, 1, 1607
1, 2, 2, 6674
2, 0, 0, 2703
2, 0, 1, 1178
2, 1, 0, 1859
2, 1, 1, 9390
2, 1, 2, 3293
2, 2, 0, 30
2, 2, 1, 2023
2, 2, 2, 10436
결과
자주 오지만 돈 안 되는 고객 그룹
이탈 고객 그룹
우수 고객 그룹
재획득 마케팅
Upsell 유도
VIP 마케팅
©2014 Gruter. All rights reserved.
분석 예제 2 – RFM 모델 (4)
과거 구매 데이터(test set) + 이후 재구매 데이터(validation set) 으로
재구매 예측 모델을 만들거나, 고객 가치를 계산하여 고객 세분화에 활용
ex) 다중 회귀 분석 모델 Y = a + w1R + w2F + w3M
21
-- custkey, R-score, F-score, M-score, 이후 1년간 재구매액
CREATE TABLE rfm_model_data
AS
SELECT T1.o_custkey, T1.r_score, T1.f_score, T1.m_score,
COALESCE(T2.repurchase_amount,0) as repurchase_amount
FROM rfm_1995 T1 LEFT OUTER JOIN
( SELECT o_custkey,
sum(o_totalprice) as repurchase_amount
FROM orders
WHERE o_orderdate BETWEEN '1996-01-01' AND '1996-12-31'
GROUP BY o_custkey
) T2
ON T1.o_custkey = T2.o_custkey
©2014 Gruter. All rights reserved.
분석 예제 3 – 아파치 웹로그 분석 (1)
커스텀 스캐너를 이용하여 웹로그 파일에 직접 SQL 질의 실행
커스텀 스캐너:
커스텀 포맷의 데이터를 읽어 Tajo Tuple로 바꾸는 reader 모듈
비정형 데이터를 별도 변환 없이 바로 SQL 분석
22
TajoJSON
Scanner
원본 데이터
Apache Log
Apache Log
Scanner
My Custom
Scanner
Pluggable Scanner
col1 col2 col3
Tajo Tuple Tajo Engine
SQL
Result Set
col1 col2 col3col1 col2 col3
JSONJSONJSON file
My Custom
Log
©2014 Gruter. All rights reserved.
분석 예제 3 – 아파치 웹로그 분석 (2)
웹로그 파일을 External Table 로 연결
23
61.23.4.16 - - [15/Oct/2014:09:00:22 +0900] "GET /main HTTP/1.1" 200 942 "-" "Mozilla/...“
65.13.2.96 - - [15/Oct/2014:09:01:23 +0900] "GET /help HTTP/1.1" 200 242 "-" "Mozilla/..."
CREATE EXTERNAL TABLE web_logs (
remote_addr TEXT, logname TEXT, remote_user TEXT,
access_timestamp TIMESTAMP, request_method TEXT,
request_path TEXT, http_version TEXT, response_status TEXT,
transferred_bytes INT, referrer TEXT, user_agent TEXT
) USING TEXT WITH (
'text.serde'='org.apache.tajo.storage.text.ApacheLogLineSerDe',
'text.delimiter'=' ','text.null'='-'
) LOCATION 'file:///Users/ykko/tajo/tajo-desktop-weblog-
1.0/data/web-log';
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
Apache Log Scanner
©2014 Gruter. All rights reserved.
분석 예제 3 – 아파치 웹로그 분석 (3)
Request 가 많은 IP Top 10
24
SELECT remote_addr, count(*) as cnt
FROM web_logs
GROUP BY remote_addr
ORDER BY cnt desc
LIMIT 10;
시간대별 트래픽
SELECT hh, repeat('*', (cnt / 1000) ) as traffic
FROM (
SELECT extract(hour from access_timestamp) as hh,
count(*) as cnt
FROM web_logs
GROUP BY hh
ORDER by hh
) T1
©2014 Gruter. All rights reserved.25
hh, traffic
-------------------------------
0.0, *********************************************
1.0, *************
2.0, ****************
3.0, *************
4.0, **********
5.0, ******
6.0, *****
7.0, ****
8.0, **
9.0, **
10.0, *
11.0, *
12.0, *
13.0,
14.0,
15.0,
16.0, **
17.0, *********
18.0, ************
19.0, *************
20.0, ***********
21.0, *****
22.0, **********
23.0, ***************
©2014 Gruter. All rights reserved.
분석 예제 3 – 아파치 웹로그 분석 (4)
H/M/L 분석 : Heavy, Medium, Light 유저의 비율과 추이
26
-- 날짜, heavy users, medium users, light users, total users
SELECT logdate,
sum(CASE WHEN requests >= 10 THEN 1 ELSE 0 END) as heavy,
sum(CASE WHEN requests BETWEEN 2 AND 9 THEN 1 ELSE 0 END) as medium,
sum(CASE WHEN requests < 2 THEN 1 ELSE 0 END) as light,
count(1) as total
FROM (
-- 날짜, 유저ID, requests
SELECT extract(day from access_timestamp) as logdate, remote_addr,
count(*) as requests
FROM web_logs
WHERE access_timestamp
BETWEEN to_timestamp('2012-01-23','FMYYYY-FMMM-FMDD')
AND to_timestamp('2012-01-28', 'FMYYYY-FMMM-FMDD')
GROUP BY logdate, remote_addr
) T1
GROUP BY logdate
ORDER BY logdate;
©2014 Gruter. All rights reserved.
분석 예제 3 – 아파치 웹로그 분석 (5)
27
logdate, heavy, medium, light, total
-------------------------------
23.0, 34, 56, 264, 354
24.0, 79, 55, 290, 424
25.0, 77, 121, 284, 482
26.0, 79, 92, 256, 427
27.0, 59, 99, 233, 391
이어지는 궁금증, Tajo 질의로 풀어 본다면?
1월 heavy 유저 중, 2월에도 heavy 유저인 사람은 얼마나 되나?
Heavy 유저들이 많이 찾는 페이지는 무엇일까? light 유저들의 그것과 차이가 있을까?
…
logdate heavy medium light total H user % M user % L user %
23 34 56 264 354 9.6% 15.8% 74.6%
24 79 55 290 424 18.6% 13.0% 68.4%
25 77 121 284 482 16.0% 25.1% 58.9%
26 79 92 256 427 18.5% 21.5% 60.0%
27 59 99 233 391 15.1% 25.3% 59.6%
©2014 Gruter. All rights reserved.
Wrap-up
Tajo는 개인용 분석 도구로도 편리하게 사용할 수 있다.
Tajo JDBC driver를 이용하여 외부 툴과 연동할 수 있다.
커스텀 스캐너를 plug-in 하여 비정형 데이터도 쉽게 분석할 수 있다.
Tajo-0.10.0 버전이 곧 나온답니다!
28
©2014 Gruter. All rights
reserved.
GRUTER: YOUR PARTNER
IN THE BIG DATA REVOLUTION
Phone +82-70-8129-2950
Fax +82-70-8129-2952
E-mail contact@gruter.com
Web www.gruter.com
Phone +1-415-841-3345

More Related Content

What's hot

Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSGruter
 
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 2013Gruter
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개Gruter
 
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 TelecomGruter
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Minchul Jung
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Sanghee Lee
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용Junyi Song
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack주표 홍
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoopMinJae Kang
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 

What's hot (20)

Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWS
 
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가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
 
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
 
Druid+superset
Druid+supersetDruid+superset
Druid+superset
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작
 
Feature perf comp_v1
Feature perf comp_v1Feature perf comp_v1
Feature perf comp_v1
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
 
Infiniflux introduction
Infiniflux introductionInfiniflux introduction
Infiniflux introduction
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 

Similar to Data analysis with Tajo

금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014Seung-June Lee
 
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)Hanbin Seo
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 
DMA 아이디어 제출용.pptx
DMA 아이디어 제출용.pptxDMA 아이디어 제출용.pptx
DMA 아이디어 제출용.pptxssuser0e717a
 
[Gastudy.net] Google Analytics basic
[Gastudy.net] Google Analytics basic[Gastudy.net] Google Analytics basic
[Gastudy.net] Google Analytics basicSeHeung Oh
 
주가 정보 다루기.pdf
주가 정보 다루기.pdf주가 정보 다루기.pdf
주가 정보 다루기.pdfwonyong hwang
 
빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)동학 노
 
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?JaewonLee153
 
[도서 리뷰] 헤드 퍼스트 데이터 분석 ( Head First Data Analysis )
[도서 리뷰]  헤드 퍼스트 데이터 분석 ( Head First Data Analysis )[도서 리뷰]  헤드 퍼스트 데이터 분석 ( Head First Data Analysis )
[도서 리뷰] 헤드 퍼스트 데이터 분석 ( Head First Data Analysis )Seung-Woo Kang
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)Treasure Data, Inc.
 
데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdfYunjeong Susan Hong
 
Google analytics in business
Google analytics in businessGoogle analytics in business
Google analytics in businessTae Young Lee
 
Big Data Analytics and Data Mining
Big Data Analytics and Data MiningBig Data Analytics and Data Mining
Big Data Analytics and Data MiningSuHyun Jeon
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준sungjun han
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기ksdc2019
 
정보시스템 하드웨어 규모산정 지침
정보시스템 하드웨어 규모산정 지침정보시스템 하드웨어 규모산정 지침
정보시스템 하드웨어 규모산정 지침sam Cyberspace
 
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한국사용자모임
 
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
 

Similar to Data analysis with Tajo (20)

금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014금융 데이터 이해와 분석 PyCon 2014
금융 데이터 이해와 분석 PyCon 2014
 
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)
글로벌 주가지수 증감 예측(제1회 미래에셋대우 빅데이터페스티벌, 입상작)
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
DMA 아이디어 제출용.pptx
DMA 아이디어 제출용.pptxDMA 아이디어 제출용.pptx
DMA 아이디어 제출용.pptx
 
[Gastudy.net] Google Analytics basic
[Gastudy.net] Google Analytics basic[Gastudy.net] Google Analytics basic
[Gastudy.net] Google Analytics basic
 
주가 정보 다루기.pdf
주가 정보 다루기.pdf주가 정보 다루기.pdf
주가 정보 다루기.pdf
 
빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)빅데이터 솔루션 소개서(2013년 05월)
빅데이터 솔루션 소개서(2013년 05월)
 
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?
[Apex Trigger 연재강의 6회차] 트리거를 실무에서 어디에 어떻게 사용 하는가?
 
[도서 리뷰] 헤드 퍼스트 데이터 분석 ( Head First Data Analysis )
[도서 리뷰]  헤드 퍼스트 데이터 분석 ( Head First Data Analysis )[도서 리뷰]  헤드 퍼스트 데이터 분석 ( Head First Data Analysis )
[도서 리뷰] 헤드 퍼스트 데이터 분석 ( Head First Data Analysis )
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
 
데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf데이터드리븐 DX 추진방안_202306.pdf
데이터드리븐 DX 추진방안_202306.pdf
 
Google analytics in business
Google analytics in businessGoogle analytics in business
Google analytics in business
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
Big Data Analytics and Data Mining
Big Data Analytics and Data MiningBig Data Analytics and Data Mining
Big Data Analytics and Data Mining
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
 
정보시스템 하드웨어 규모산정 지침
정보시스템 하드웨어 규모산정 지침정보시스템 하드웨어 규모산정 지침
정보시스템 하드웨어 규모산정 지침
 
덕성여자대학교 KIS VALUE 이용자 매뉴얼
덕성여자대학교 KIS VALUE 이용자 매뉴얼 덕성여자대학교 KIS VALUE 이용자 매뉴얼
덕성여자대학교 KIS VALUE 이용자 매뉴얼
 
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
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 

More from Gruter

MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기Gruter
 
Introduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseIntroduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseGruter
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataGruter
 
What's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondWhat's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondGruter
 
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoEfficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoGruter
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter
 
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter
 
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter
 
Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Gruter
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopBig Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopGruter
 
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Gruter
 
Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Gruter
 
Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Gruter
 
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventApache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventGruter
 
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 KimGruter
 

More from Gruter (20)

MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기
 
Introduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseIntroduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data Warehouse
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
 
What's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondWhat's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its Beyond
 
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoEfficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in Telco
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigData
 
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
 
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
 
Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Apache Tajo - BWC 2014
Apache Tajo - BWC 2014
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopBig Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
 
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
 
Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료
 
Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105
 
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventApache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
 
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
 

Data analysis with Tajo

  • 1. Tajo를 이용한 실무 데이터 분석 고영경 ykko@gruter.com
  • 2. ©2014 Gruter. All rights reserved. 오늘의 주제 허접 데이터 분석가의 Tajo 사용기 “Tajo 를 이용한 실무 데이터 분석” 1. 개인용 분석엔진으로 Tajo 사용하기 2. Tajo 데이터 분석을 예제로 맛보기 - Cohort 분석 - RFM 모델 - 아파치 웹로그 분석 1GB 데이터를 요리조리 살펴보고 싶은데 뭘로 하지? 엑셀? MySQL? Script ? R ? 하둡에 올려서 분산처리? 헉… Tajo 로 한번 해 볼까?
  • 3. ©2014 Gruter. All rights reserved. 개인용 분석엔진으로 Tajo 사용하기 Tajo는 데이터 분석가를 위한 유연하고 확장성있는 분석 엔진 • Tajo는 대용량 분산 DW 시스템으로 설계되었지만 • 데스크탑 환경에서 개인 개발 환경으로도 유용한 도구 • 인터랙티브 분석과 대용량 데이터 처리를 모두 지원 • 아키텍처 변경 없이 대용량 분산 환경에 적용 가능 • 다양한 스토리지 지원 (HDFS, Local File, S3, Swift, HBase, ElasticSearch…) • Pluggable 커스텀 스캐너 - 비정형 데이터도 별도 변환 없이 SQL 분석 Tajo Desktop Package • Mac, Linux 에서 쉽게 설치할 수 있는 standalone Tajo 설치 패키지 • (Windows 버전은 개발 중) • Hadoop 필요 없이 Local File system 을 스토리지로 이용 3
  • 4. ©2014 Gruter. All rights reserved. Tajo Desktop Package 설치 1. 그루터 홈페이지에서 다운로드 http://gruter.com/download.html 2. 압축 풀고 $ tar xvfz tajo-0.x.tar.gz $ cd tajo-0.x 3. 환경 설정 $ bin/configure.sh 4. Tajo 실행 $ bin/startup.sh 4 5. 샘플 데이터셋 로드 (optional) $ bin/make-test.sh 6. TSQL 실행 $ bin/tsql Try ? for help. default> 7. Tajo 종료 $ bin/shutdown.sh
  • 5. ©2014 Gruter. All rights reserved. Tajo 관리 UI http://tajo-master-ip:26080/ 5
  • 6. ©2014 Gruter. All rights reserved. Tajo JDBC driver를 이용한 외부 툴 연동 6 Tajo JDBC HDFS HBase AWS S3 Local Storage OpenStack Swift Tajo Cluster ETL Tools BI Tools Reporting tools
  • 7. ©2014 Gruter. All rights reserved. 개인용 분석 엔진 Tajo vs. Mysql • RDB와 비교한 Tajo의 특징 – RDB 는 성숙하고 익숙한 기술, Tajo는 계속 발전중인 기술 – ETL 과정이 필요 없음  처리 시간, 저장 공간, 개발 노력 절약 – Index 가 없음  질의 성격과 데이터 크기에 따라 유불리 달라짐 – 커스텀 스캐너를 이용하여, 다양한 포맷의 데이터를 유연하게 처리 가능 – 단일 머신에서도 복수 Worker 로 분산 처리 가능 – 작은 데이터에서는 RDB와 큰 속도 차이 없이 인터랙티브 분석 가능 – 데이터 크기가 커질수록 Tajo 가 유리 7
  • 8. ©2014 Gruter. All rights reserved. 데이터 준비 데이터 파일을 External Table 로 연결 8 CREATE EXTERNAL TABLE orders ( O_ORDERKEY bigint, O_CUSTKEY bigint, O_ORDERSTATUS text, O_TOTALPRICE double, O_ORDERDATE text, O_ORDERPRIORITY text, O_CLERK text, O_SHIPPRIORITY int, O_COMMENT text) USING text with ('csvfile.delimiter'='|') LOCATION ‘file:///Users/ykko/tajo/tajo-desktop-weblog- 2.0/data/tpc-h10m/orders.txt'; SELECT * FROM orders LIMIT 10; /Users/ykko/tajo/tajo-desktop-weblog-2.0/data/tpc-h10m/orders.txt
  • 9. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (1) Cohort 분석 – 동일한 특성을 가진 고객들을 그룹(Cohort)로 묶어 – 시간의 흐름에 따라 각 그룹의 성과(유지율, 사용량, 고객가치 등)를 비교하는 분석 방법 9 * 출처: 하용호 “스타트업은 데이터를 어떻게 바라봐야 할까?” http://www.slideshare.net/yongho/ss-32267675
  • 10. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (2) 이 예제에서는 – TPC-H 샘플 데이터의 orders 테이블에서 – 특정 월에 첫 구매한 사용자들을 Cohort 로 묶고 – 각 그룹의 이후 월 단위 재구매 패턴을 비교 원하는 결과 10 Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후 1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193 2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797 3월 첫구매 그룹 150,328 152,783 149,548 154,045 4월 첫구매 그룹 151,178 149,859 148,542 5월 첫구매 그룹 152,174 150,412 6월 첫구매 그룹 151,265 Column 설명 o_orderkey 주문번호 o_custkey 고객번호 o_totalprice 주문금액 o_orderdate 주문일자 … Table: orders
  • 11. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (3) Cohort 구하기 – Cohort 정의: 특정 월에 첫 구매한 사용자 그룹 11 CREATE TABLE cohort AS SELECT o_custkey, -- 고객번호 min(o_orderdate) as cohort_date, -- 최초 주문일 min(substr(o_orderdate,0,8)) as cohort -- cohort 그룹 FROM orders WHERE o_orderdate between '1992-01-01' and '1992-06-30' GROUP BY o_custkey ORDER BY o_custkey; 결과
  • 12. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (4) 각 Cohort 의 월별 재구매 계산 12 -- cohort, 주문 월, 주문자 수, 주문건수, 주문총액, 평균주문액 CREATE TABLE cohort_analysis AS SELECT c.cohort, substr(o_orderdate,0,8) as order_month, count(distinct(o.o_custkey)) as buyer_cnt, count(o.o_orderkey) as order_cnt, round(sum(o.o_totalprice)) as amount, round(avg(o.o_totalprice)) as avg_amount FROM orders o JOIN cohort c ON o.o_custkey = c.o_custkey WHERE o.o_orderdate between '1992-01-01' and '1992-06-30' GROUP BY c.cohort, substr(o_orderdate,0,8) ORDER BY c.cohort, substr(o_orderdate,0,8) ASC
  • 13. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (5) 13 -- cohort, 주문 월, 평균주문액 CREATE TABLE cohort_analysis AS SELECT c.cohort, substr(o_orderdate,0,8) as order_month, round(avg(o.o_totalprice)) as avg_amount FROM orders o JOIN ( SELECT o_custkey, min(o_orderdate) as cohort_date, min(substr(o_orderdate,0,8)) as cohort FROM orders WHERE o_orderdate between '1992-01-01' and '1992-06-30' GROUP BY o_custkey ) c ON o.o_custkey = c.o_custkey WHERE o.o_orderdate between '1992-01-01' and '1992-06-30' GROUP BY c.cohort, substr(o_orderdate,0,8) ORDER BY c.cohort, substr(o_orderdate,0,8) ASC Sub Query 로 합쳐 보면
  • 14. ©2014 Gruter. All rights reserved.14
  • 15. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (6) 15 Cohort 1992-01 1992-02 1992-03 1992-04 1992-05 1992-06 1992-01 151,292 151,330 150,063 149,407 149,510 152,193 1992-02 150,624 153,407 151,847 148,187 149,797 1992-03 150,328 152,783 149,548 154,045 1992-04 151,178 149,859 148,542 1992-05 152,174 150,412 1992-06 151,265 Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후 1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193 2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797 3월 첫구매 그룹 150,328 152,783 149,548 154,045 4월 첫구매 그룹 151,178 149,859 148,542 5월 첫구매 그룹 152,174 150,412 6월 첫구매 그룹 151,265 첫 구 매 재 구매
  • 16. ©2014 Gruter. All rights reserved. 분석 예제 1 – Cohort Analysis (7) 16 144,000 146,000 148,000 150,000 152,000 154,000 156,000 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후 1월 첫구매 그룹 2월 첫구매 그룹 3월 첫구매 그룹 Cohort 첫 구매월 1달 후 2달 후 3달 후 4달 후 5달 후 1월 첫구매 그룹 151,292 151,330 150,063 149,407 149,510 152,193 2월 첫구매 그룹 150,624 153,407 151,847 148,187 149,797 3월 첫구매 그룹 150,328 152,783 149,548 154,045 4월 첫구매 그룹 151,178 149,859 148,542 5월 첫구매 그룹 152,174 150,412 6월 첫구매 그룹 151,265
  • 17. ©2014 Gruter. All rights reserved. 실무 적용 사례 – Cohort Analysis on AWS 17 Locket - 스마트폰 잠금화면에 인기 컨텐츠를 보여주는 App 고객의 App 사용 행동 로그를 이용하여 Cohort 분석 수행 EC2 인스턴스 10대로 Tajo 클러스터 구성, 수행시간 40초 EC2 Tajo EC2 Tajo EC2 Tajo S3 Source Data Tajo Tables RDS MySQL EC2 Tajo 1. Cohort Analysis 2. Save Output Data 3. Load
  • 18. ©2014 Gruter. All rights reserved. 분석 예제 2 – RFM 모델 (1) • RFM 모델 – 과거의 거래 데이터에서 R, F, M 속성으로 고객을 분류하는 간단한 모델 – Recency :거래의 최근성 – Frequency : 거래 빈도 – Monetary : 거래 규모 – 고객의 가치 계산, 마케팅 타겟 유저 선별, 재구매 예측 모델 등에 사용 • 이 예제에서는 – Orders 테이블의 주문 데이터를 이용하여 – R, F, M 을 각각 3등급으로 나누어 – 개별 고객의 R,F,M score 를 구하고 – 이후 1년의 재구매 데이터와 JOIN 하여 – 재구매 예측 모델을 만들기 위한 데이터를 준비 18
  • 19. ©2014 Gruter. All rights reserved. 분석 예제 – RFM 모델 (2) 각 고객의 R,F,M 값 구하기 • 이 예제에서는 19 -- 고객번호, Recency, Frequency, Monentary CREATE TABLE rfm_1995 AS SELECT o_custkey, MAX(CASE WHEN o_orderdate >= '1995-11-01' THEN 2 WHEN o_orderdate >= '1995-07-01' THEN 1 ELSE 0 END) AS r_score, CASE WHEN count(o_orderkey) >= 4 THEN 2 WHEN count(o_orderkey) >= 2 THEN 1 ELSE 0 END AS f_score, CASE WHEN sum(o_totalprice) >= 500000 THEN 2 WHEN sum(o_totalprice) >= 200000 THEN 1 ELSE 0 END AS m_score FROM orders WHERE o_orderdate BETWEEN '1995-01-01' AND '1995-12-31' GROUP BY o_custkey Recency 기준 R_score 직전 2개월 내 구매 2 직전 6개월 내 구매 1 Else 0
  • 20. ©2014 Gruter. All rights reserved. 분석 예제 2 – RFM 모델 (3) R, F, M 그룹 통계 • 이 예제에서는 20 -- R-score, F-score, M-score, # of users SELECT r_score, f_score, m_score, count(*) as cnt FROM rfm_1995 GROUP BY r_score, f_score, m_score ORDER BY r_score, f_score, m_score; r_score, f_score, m_score, cnt ------------------------------- 0, 0, 0, 8105 0, 0, 1, 3488 0, 1, 0, 1375 0, 1, 1, 5477 0, 1, 2, 1151 0, 2, 0, 3 0, 2, 1, 222 0, 2, 2, 726 1, 0, 0, 5631 1, 0, 1, 2466 1, 1, 0, 2790 1, 1, 1, 12234 1, 1, 2, 3681 1, 2, 0, 31 1, 2, 1, 1607 1, 2, 2, 6674 2, 0, 0, 2703 2, 0, 1, 1178 2, 1, 0, 1859 2, 1, 1, 9390 2, 1, 2, 3293 2, 2, 0, 30 2, 2, 1, 2023 2, 2, 2, 10436 결과 자주 오지만 돈 안 되는 고객 그룹 이탈 고객 그룹 우수 고객 그룹 재획득 마케팅 Upsell 유도 VIP 마케팅
  • 21. ©2014 Gruter. All rights reserved. 분석 예제 2 – RFM 모델 (4) 과거 구매 데이터(test set) + 이후 재구매 데이터(validation set) 으로 재구매 예측 모델을 만들거나, 고객 가치를 계산하여 고객 세분화에 활용 ex) 다중 회귀 분석 모델 Y = a + w1R + w2F + w3M 21 -- custkey, R-score, F-score, M-score, 이후 1년간 재구매액 CREATE TABLE rfm_model_data AS SELECT T1.o_custkey, T1.r_score, T1.f_score, T1.m_score, COALESCE(T2.repurchase_amount,0) as repurchase_amount FROM rfm_1995 T1 LEFT OUTER JOIN ( SELECT o_custkey, sum(o_totalprice) as repurchase_amount FROM orders WHERE o_orderdate BETWEEN '1996-01-01' AND '1996-12-31' GROUP BY o_custkey ) T2 ON T1.o_custkey = T2.o_custkey
  • 22. ©2014 Gruter. All rights reserved. 분석 예제 3 – 아파치 웹로그 분석 (1) 커스텀 스캐너를 이용하여 웹로그 파일에 직접 SQL 질의 실행 커스텀 스캐너: 커스텀 포맷의 데이터를 읽어 Tajo Tuple로 바꾸는 reader 모듈 비정형 데이터를 별도 변환 없이 바로 SQL 분석 22 TajoJSON Scanner 원본 데이터 Apache Log Apache Log Scanner My Custom Scanner Pluggable Scanner col1 col2 col3 Tajo Tuple Tajo Engine SQL Result Set col1 col2 col3col1 col2 col3 JSONJSONJSON file My Custom Log
  • 23. ©2014 Gruter. All rights reserved. 분석 예제 3 – 아파치 웹로그 분석 (2) 웹로그 파일을 External Table 로 연결 23 61.23.4.16 - - [15/Oct/2014:09:00:22 +0900] "GET /main HTTP/1.1" 200 942 "-" "Mozilla/...“ 65.13.2.96 - - [15/Oct/2014:09:01:23 +0900] "GET /help HTTP/1.1" 200 242 "-" "Mozilla/..." CREATE EXTERNAL TABLE web_logs ( remote_addr TEXT, logname TEXT, remote_user TEXT, access_timestamp TIMESTAMP, request_method TEXT, request_path TEXT, http_version TEXT, response_status TEXT, transferred_bytes INT, referrer TEXT, user_agent TEXT ) USING TEXT WITH ( 'text.serde'='org.apache.tajo.storage.text.ApacheLogLineSerDe', 'text.delimiter'=' ','text.null'='-' ) LOCATION 'file:///Users/ykko/tajo/tajo-desktop-weblog- 1.0/data/web-log'; LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined Apache Log Scanner
  • 24. ©2014 Gruter. All rights reserved. 분석 예제 3 – 아파치 웹로그 분석 (3) Request 가 많은 IP Top 10 24 SELECT remote_addr, count(*) as cnt FROM web_logs GROUP BY remote_addr ORDER BY cnt desc LIMIT 10; 시간대별 트래픽 SELECT hh, repeat('*', (cnt / 1000) ) as traffic FROM ( SELECT extract(hour from access_timestamp) as hh, count(*) as cnt FROM web_logs GROUP BY hh ORDER by hh ) T1
  • 25. ©2014 Gruter. All rights reserved.25 hh, traffic ------------------------------- 0.0, ********************************************* 1.0, ************* 2.0, **************** 3.0, ************* 4.0, ********** 5.0, ****** 6.0, ***** 7.0, **** 8.0, ** 9.0, ** 10.0, * 11.0, * 12.0, * 13.0, 14.0, 15.0, 16.0, ** 17.0, ********* 18.0, ************ 19.0, ************* 20.0, *********** 21.0, ***** 22.0, ********** 23.0, ***************
  • 26. ©2014 Gruter. All rights reserved. 분석 예제 3 – 아파치 웹로그 분석 (4) H/M/L 분석 : Heavy, Medium, Light 유저의 비율과 추이 26 -- 날짜, heavy users, medium users, light users, total users SELECT logdate, sum(CASE WHEN requests >= 10 THEN 1 ELSE 0 END) as heavy, sum(CASE WHEN requests BETWEEN 2 AND 9 THEN 1 ELSE 0 END) as medium, sum(CASE WHEN requests < 2 THEN 1 ELSE 0 END) as light, count(1) as total FROM ( -- 날짜, 유저ID, requests SELECT extract(day from access_timestamp) as logdate, remote_addr, count(*) as requests FROM web_logs WHERE access_timestamp BETWEEN to_timestamp('2012-01-23','FMYYYY-FMMM-FMDD') AND to_timestamp('2012-01-28', 'FMYYYY-FMMM-FMDD') GROUP BY logdate, remote_addr ) T1 GROUP BY logdate ORDER BY logdate;
  • 27. ©2014 Gruter. All rights reserved. 분석 예제 3 – 아파치 웹로그 분석 (5) 27 logdate, heavy, medium, light, total ------------------------------- 23.0, 34, 56, 264, 354 24.0, 79, 55, 290, 424 25.0, 77, 121, 284, 482 26.0, 79, 92, 256, 427 27.0, 59, 99, 233, 391 이어지는 궁금증, Tajo 질의로 풀어 본다면? 1월 heavy 유저 중, 2월에도 heavy 유저인 사람은 얼마나 되나? Heavy 유저들이 많이 찾는 페이지는 무엇일까? light 유저들의 그것과 차이가 있을까? … logdate heavy medium light total H user % M user % L user % 23 34 56 264 354 9.6% 15.8% 74.6% 24 79 55 290 424 18.6% 13.0% 68.4% 25 77 121 284 482 16.0% 25.1% 58.9% 26 79 92 256 427 18.5% 21.5% 60.0% 27 59 99 233 391 15.1% 25.3% 59.6%
  • 28. ©2014 Gruter. All rights reserved. Wrap-up Tajo는 개인용 분석 도구로도 편리하게 사용할 수 있다. Tajo JDBC driver를 이용하여 외부 툴과 연동할 수 있다. 커스텀 스캐너를 plug-in 하여 비정형 데이터도 쉽게 분석할 수 있다. Tajo-0.10.0 버전이 곧 나온답니다! 28
  • 29. ©2014 Gruter. All rights reserved. GRUTER: YOUR PARTNER IN THE BIG DATA REVOLUTION Phone +82-70-8129-2950 Fax +82-70-8129-2952 E-mail contact@gruter.com Web www.gruter.com Phone +1-415-841-3345