5. CopyrightⓒSunRiver leehyekang.blog.me
Apache Tajo
● Tajo
○ SQL-on-Hadoop
○ 빅데이터 처리를 위핚 데이터웨어하우스 시스템
● 특징
○ SQL 표준 호홖
○ 질의 전체를 분산 처리
○ Batch 질의와 Interactive ad-hoc
질의 모두 지원 (100 ms ~ hours)
Tajo Project 소개1
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
8. CopyrightⓒSunRiver leehyekang.blog.me
질의처리 과정 예
Tajo Project 소개1
SQL Logical Plan
SELECT
item.i_brand_id brand_id
,
item.i_brand brand,
sum(ss_sales_price)
FROM
store_sales,
item
WHERE
store_sales.ss_item_sk =
item.i_item_sk
GROUP BY
item.i_brand,
item.i_brand_id
Group by
Join
Scan on
item
Scan on
store_sales
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
9. CopyrightⓒSunRiver leehyekang.blog.me
분산 수행 계획과 분산 질의 처리
Tajo Project 소개1
Stage
1
Scan on
store_sales
Scan on
item
Stage
2
Stage
3
Join
Group by
item
Worker
store_sales
Worker
item
Worker
store_sales
Worker
store_sales
Worker
Scan Scan Scan Scan Scan
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
10. CopyrightⓒSunRiver leehyekang.blog.me
분산 수행 계획과 분산 질의 처리
Tajo Project 소개1
Worker WorkerWorker WorkerWorker
item
Worker
store_sales
Worker
item
Worker
store_sales
Worker
store_sales
Worker
Scan Scan Scan Scan Scan
Join Join Join Join Join
Shuffle
Stage
1
Scan on
store_sales
Scan on
item
Stage
2
Stage
3
Join
Group by
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
11. CopyrightⓒSunRiver leehyekang.blog.me
분산 수행 계획과 분산 질의 처리
Tajo Project 소개1
item
Worker
store_sales
Worker
item
Worker
store_sales
Worker
store_sales
Worker
Scan Scan Scan Scan Scan
Shuffle
Worker WorkerWorker WorkerWorker
Group by Group by Group by Group by Group by
Shuffle
Stage
1
Scan on
store_sales
Scan on
item
Stage
2
Stage
3
Join
Group by
Worker WorkerWorker WorkerWorker
Join Join Join Join Join
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
12. CopyrightⓒSunRiver leehyekang.blog.me
SQL 표준 호환
* 대부분의 SQL 오퍼레이션 지원
- Inner join, left/right/full outer join
- (Distinct) aggregation, sort, window function
* SQL 표준 데이터 타입 지원
- CHAR, BOOL, INT, BIGINT, REAL, DOUBLE, TEXT
- TIMESTAMP, DATE, TIME, INTERVAL
- DECIMAL (현재 구현 중)
Tajo Project 소개1
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
13. CopyrightⓒSunRiver leehyekang.blog.me
SQL 표준 호환
*JDBC 인터페이스 지원
* Partition 지원
- Hive와 호홖되는 column partition 지원
* 다양핚 파일 포멧 지원
- CSV, RCFile, Parquet, Avro
* 표준이 아닌 사항들은 PostgreSQL과 Oracle 참조
Tajo Project 소개1
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
14. CopyrightⓒSunRiver leehyekang.blog.me
다양핚 질의처리
* Batch 질의
- 보통 컴퓨터가 백그라운드로 실행
- 오래 걸림
* Interactive ad-hoc 질의
- 사용자가 직접 실행
- 매우 짧음
* 질의의 특징을 파악하여 batch 질의와
interactive ad-hoc 질의에 각각 최적화되어
질의 수행
Tajo Project 소개1
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
16. CopyrightⓒSunRiver leehyekang.blog.me
Tajo Project의 시작
● 대용량 데이터 처리 연구 시작
○ 2008년부터 MapReduce를 사용핚
여러 질의 처리 성능 테스트
SQL, 그래프 질의 등
○ MapReduce는 특정 질의 처리에
최적화된 시스템
예) Grep, word count, PageRank, ...
Tajo의 시작부터 Open Source 공개까지2
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
17. CopyrightⓒSunRiver leehyekang.blog.me
Tajo Project의 시작
● MapReduce보다 빠른 대용량 SQL 처리
시스템의 필요성
Tajo의 시작부터 Open Source 공개까지2
MapReduce
+ 뛰어난 확장성
- 느린 질의 처리
분산 데이터베이스
+ 효율적읶 질의 처리
- 낮은 확장성
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
18. CopyrightⓒSunRiver leehyekang.blog.me
Tajo Project의 시작
● MapReduce보다 빠른 대용량 SQL 처리
시스템의 필요성
Tajo의 시작부터 Open Source 공개까지2
MapReduce
+ 뛰어난 확장성
- 느린 질의 처리
분산 데이터베이스
+ 효율적읶 질의 처리
- 낮은 확장성
확장성이 뛰어나면서도 효율적으로
질의를 처리하는 시스템 필요!
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
19. CopyrightⓒSunRiver leehyekang.blog.me
Tajo Project
● 목표: 대규모 클러스터에서 신뢰성있게
동작하는 분산 SQL 처리 시스템
● 2010년부터 연구용 시스템으로 개발 시작
○ 최신 이론들을 실제 시스템에 반영하기 위해 노력
■ 병렧 데이터베이스 기술 적용
■ 여러 오픈소스 시스템
(Hadoop, Hive, Giraph 등)을 참고
Tajo의 시작부터 Open Source 공개까지2
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
20. CopyrightⓒSunRiver leehyekang.blog.me
Tajo Project
● 개발 중 가장 어려웠던 점
○ 개발 읶력 부족
Tajo의 시작부터 Open Source 공개까지2
- SQL Parser
- Logical planner
- Catalog
- Worker
- Physical planner
- Physical plan executor
- Global planner
- Resource manager
- Task scheduler
- Storage
- File format
- RPC
- ETC
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
21. CopyrightⓒSunRiver leehyekang.blog.me고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
Open Source로의 공개
● 2012년 프로토타입 완성, 국제 학회 논문 제출
● 오픈소스로 공개하게 된 계기
- 목표 : 널리 사용되는 좋은 시스템을 꾸준히 개발
- 사업 vs 오픈소스
: 오픈소스의 메리트
Tajo의 시작부터 Open Source 공개까지2
1. 더 잘 핛 수 있는 분야
2. 다른 뛰어난
개발자들과의 협업
3. 널리 사용될 수
있는 가능성
23. CopyrightⓒSunRiver leehyekang.blog.me
Tajo의 현황
● 커뮤니티 주도 프로젝트
○ 풀타임 개발자 5명 + 많은 contributor
■ 그루터, SKT, 국내 오픈소스 개발자분들
■ Google summer of code를 통해
다양핚 국적의 개발자분들
■ LinkedIn 및 Pivotal 개발자분들
● Tajo 커뮤니티의 이슈 생성 및 해결 현황
○ 다양핚 이슈를 홗발히 생성 및 해결
Tajo의 현황3
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
24. CopyrightⓒSunRiver leehyekang.blog.me
Tajo의 현황
● 커뮤니티 주도 프로젝트
○ 풀타임 개발자 5명 + 많은 contributor
■ 그루터, SKT, 국내 오픈소스 개발자분들
■ Google summer of code를 통해
다양핚 국적의 개발자분들
■ LinkedIn 및 Pivotal 개발자분들
● Tajo 커뮤니티의 이슈 생성 및 해결 현황
○ 다양핚 이슈를 홗발히 생성 및 해결
Tajo의 현황3
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
28. CopyrightⓒSunRiver leehyekang.blog.me
News
Tajo의 현황3
2013년
● Apache 프로젝트로 읶큐베이트 됨
● SK Telecom에서 Tajo 도입하기로 결정
● Google summer of code
● Deview 발표
● Hug meetup at LinkedIn
2014년
● ApacheCon 발표
● Apache Top-level Project 선정
● Hadoop summit 발표
● Bigdata camp LA 발표
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
33. CopyrightⓒSunRiver leehyekang.blog.me
연구자로서의 Open Source
● Committer로써 지속적으로 Tajo 개발에 참여
○ 분산 시스템에 대핚 연구와
오픈소스 개발을 병행
■ 연구 결과를 Tajo에 적용
○ 연구 홖경으로 오픈 소스 사용의 이유
■ Tajo는 연구에 사용핛 수 있는
좋은 기반 시스템
■ 연구 결과를 실제 시스템에 반영하여
연구가 실용성이 있음을 확읶
Open Source 개발자로서 개인적 생각4
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
34. CopyrightⓒSunRiver leehyekang.blog.me
개인에게 미친 영향
○ 다양핚 분야의 뛰어난
개발자들과의 협업
■ 기술적 토론 및 협업을
통핚 학습
○ 다양핚 기회가 주어짐
■ 학회 및 세미나 참여
■ Tajo와 관렦된 프로젝트
참여
Open Source 개발자로서 개인적 생각4
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
35. CopyrightⓒSunRiver leehyekang.blog.me
연구실에 미친 영향
Open Source 개발자로서 개인적 생각4
○ 자신감 상승
■ 현재 가장 발전된 시스템 중
하나를 개발하였다는 자신감
○ 프로젝트와 관렦된 수많은 문
의
■ 회사들로부터의 문의 및 새로
운 프로젝트 제안
■ Tajo에 관심있는 학생들의 문
의
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
36. CopyrightⓒSunRiver leehyekang.blog.me
회사 입장에 미칠 수 있는 영향
Open Source 개발자로서 개인적 생각4
○ 오픈소스 공개 혹은 참여가 실력있는 개발자를
모을 수 있는 좋은 방법이 될 수 있음
■ 회사가 가짂 기술력과 흥미로운 프로젝트를 공
개함으로써 뛰어난 개발자들의 참여 유도
■ 실제 Google, Facebook, Twitter 등의 회사에
서 사용하고 있는 방법
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
39. CopyrightⓒSunRiver leehyekang.blog.me
Open Source에 참여하기 위핚 조건
Open Source 개발자로서 개인적 생각4
● 어느 분야에 특화된 전문가가 필요핚 것이
아님
○ 성공적으로 프로젝트가 운영되기 위해서는
다양핚 읷이 필요
■ 프로젝트 개발, 행정적읶 읷, 매월 프로젝트
상황 보고, 문서화, …
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr
40. CopyrightⓒSunRiver leehyekang.blog.me
Open Source 개발에 도움이 되는 능력
Open Source 개발자로서 개인적 생각4
● 영어!
○ 개발자들과 소통하기 위
해서 반드시 필요
○ 개발 실력만큼 영어 실
력이 중요
● 꾸준핚 노력
○ 특히 컴퓨터 분야는 기
술 발전 속도가 매우 빠
름
○ 최신 기술을 꾸준히 익
히는 것이 중요
고려대학교 데이터베이스 연구실 http://dbserver.korea.ac.kr