SlideShare a Scribd company logo
SQL-on-Hadoop 그리고 Tajo
Tech Planet 2013
11월 14일
소개
• 최현식 (Hyunsik Choi)
– Director of Research, Gruter Corp (2013. 6 ~)
– PhD (Computer Science & Engineering, 2013. 8)
– Apache Tajo (incubating) PPMC member & committer
(2013.3 ~ )
– Apache Giraph PMC member and committer (2011. 8 ~ )

• Contacts
– Email: hyunsik AT apache.org
– Linkedin: http://linkedin.com/in/hyunsikchoi/
– Twitter: @hyunsik_choi
SQL-on-Hadoop 시스템
• SQL-on-Hadoop 시스템이란?
– HDFS에 저장된 데이터에 대한 SQL 처리를 제공하는 시스템
– 탈 MapReduce 모델 & 프레임워크
• 새로운 분산 처리 모델 & 프레임워크를 기반

• 다양한 설계 목표 지향 (외형적으로 비슷해 보이지만 다름)
왜 SQL-on-Hadoop 시스템?
• MapReduce의 한계
– 데이터 처리 모델상의 한계 (관계형 처리를 위해 고안된 것이 아님)
• Map -> Shuffle -> Reduce

– Pig, Hive는 MapReduce가 제공하는 기능 이상의 최적화 불가능
– 느린 속도 (초기화 및 스케쥴링 지연)
• MapReduce가 느린 것이 아님, 하둡 구현이 느린 것

• 높은 learning curve 및 Legacy 시스템들과 호환성 문제
– MapReduce는 어렵고, 개발 노력이 많이 들고, 성능 보장이 어려움
• MapReduce의 직접 사용은 점차 줄고 있음

– HiveQL != SQL

• Ad-hoc 질의에 대한 속도 문제로 DBMS 병행 사용 불가피
– 부담이 큰 ETL의 문제 (HDFS <-> DBMS)
– 추가적인 스토리지 공간 필요, 비싼 DBMS 라이센스 비용의 벽
SQL-on-Hadoop 시스템 분류
• 주요 기준
– Long time 질의를 지원하는가? 아닌가?
• ‘특정 시스템이 이 워크로드에 적합한가’를 판단하게 하는 기
준

• Long time 질의 지원를 위한 설계 시 주요 고려사
항
– Fault tolerance
– Dynamic scheduling

“Machine failures are common in a large cluster”
- Jeff Dean
Fault Tolerance
• 질의 처리 중 발생하는 오류를 핸들링하여 질의를 완료하는 기능
• Long time 질의 (수 십분 이상) 에 필수적
• 하나의 질의를 작은 단위의 테스크로 나누어 처리하고 오류의 범위를
테스크로 한정 및 테스크 재시작
• 단, 중간 데이터 materialization 요구
– 디스크 부하 유발

Throughput

Fault Tolerance
Trade-off 관계
Dynamic Scheduling
• Fixed scheduling
– 작업 시작 시 균등하게 클러스터 노드들에 분할된 작업을 한번에 할
당

• Dynamic scheduling
1. 각 노드에 노드가 한번에 실행할 수 있는 테스크를 우선적으로
분배
2. 노드가 할당 받은 테스크가 끝나면 다시 할당

• 실제 클러스터의 환경적 특성
– 같은 사양의 노드라도 알수 없는 이유로 성능 차이 발생
– 점진적으로 확장되는 경우 이종의 클러스터 노드로 구성
일부 느린 노드가 분산 작업의 성능을 결정
SQL-on-Hadoop 시스템 분류

Name

Fault
Tolerance

Dynamic
Scheduling

Long time
질의 적합

클러스터 자원
대비 큰 용량 처리

Tajo

O

O

O

O

Impala

X

X

X

X

Stinger (Hive)

O

O

O

O

Drill

?

?

?

?

Presto

X

X

X

X

표 1. 설계에 따른 비교표
SQL-on-Hadoop 시스템 분류
Data Warehouse System

Query Engine
SQL-on-Hadoop 시스템 분류
• Data Warehouse System
– 수 시간이상 걸리는 질의 수행 가능
– ETL 작업
• 데이터 변환 및 데이터 노이즈 제거
• 데이터 파티셔닝

– Data integration
• 다수 데이터 소스에 대한 통합

– Ad-hoc query

• Query Engine
– 수 초에서 수 분까지의 질의 수행에 최적화
– 빠른 응답을 가지는 ad-hoc query
– 중간 데이터 크기와 자원에 따라 질의가 다소 제약됨
• 인메모리 처리 구조와 파이프라인 연산 방식에 따라
Presto 소개
•
•
•
•

Facebook에서 개발하여 오픈소스로 공개
수 초에서 수 분이 걸리는 질의 유형을
타겟으로 설계
No Fault tolerance
빠른 응답과 online query processing
– 우선적으로 처리된 결과가 반환됨

•
•

일부 질의 유형에 대해 approximate query 지원
Hive의 보완 시스템으로 개발

•

모든 연산자는 파이프라이닝 (pipelining)과 데이터 전송은 스트리밍

•

Facebook 사례
– 누적된 300 PB Data Warehouse, 일일 30k 질의, 하루에 1PB 처리

“90% of jobs on a Facebook cluster have input sizes under 100 GB”
- Raja Appuswamy et al. “Nobody ever got fired for buying a cluster”,
Microsoft Research
Tajo란?
• Tajo

– 하둡 기반의 대용량 데이터웨어 하우스 시스템
– 2010년 부터 리서치 프로토타입으로 개발 시작
– 아파치 인큐베이션 프로젝트 (올해 3월 ASF 인큐베이션 채택)

• Features
–
–
–
–
–
–

SQL 표준 호환
질의 전체를 분산 처리
HDFS가 기본 스토리지
관계형 모델 (Nested model로 확장 계획 중)
ETL 뿐만 아니라 low-latency 질의(100 ms ~ hours)
UDF 지원

• News

– 0.2-incubating: 11월 중 릴리즈
– 0.8-incubating: 12월 릴리즈 계획
Tajo의 주요 설계 원칙
• 실패한 테스크 단위의 재시도
• 질의 별 QueryMaster

내고장성

확장성

고성능

• 유연한 분산 처리 모델
• 비용 기반 최적화
• 확장 가능한 rewrite rule
더 많은
최적화 기회
아키텍쳐
•

기본 스토리지는 HDFS, 다양한 데이터 소스를 가질 수 있음

•

마스터 워커 클러스터 모델 + 각 질의 별 Query Master

•

타조 마스터 (Tajo Master)

– Single point of failure를 제거하고 병목 지점 제거 고려

–
–
–
–
–

항시 대기하며 DDL과 같은 분산 처리 없이 처리 가능한 질의 수행
Client API를 RPC로 제공
쿼리 파서 및 Query Master들을 관리
카탈로그 서버 내장 (독립 실행 가능)
클러스터 자원 관리

•

Query Master (각 질의 별 동작)

•

Tajo Worker

– 논리 실행 계획을 분산 실행 계획으로 변환
– 분산 실행 계획을 제어
– 테스크 스케쥴링
– Storage Manager
– Local Query Engine
Tajo 아키텍쳐
질의 플래닝 과정
Tajo 분산 처리 모델
• 질의 = 비순환 방향 그래프
– 정점, 방향을 가진 간선으로 구성
– 사이클 없음

• 정점은 데이터 처리 단계를 표현
– 논리 연산자 그래프 - A DAG of Logical Operators
– Enforcer (properties to force physical planning)
• 간선 (edge) = 정점간 데이터 흐름 표현
– 전송 방법 (Pull, Push, File)
– 셔플 방법 (range, hash, and ..)
– 파티션 개수
데이터 셔플
• 셔플 방법
– Hash
• 해쉬 파티셔닝 (해쉬 키를 이용한 중간 데이터 파티셔닝)

– Range
• 범위 파티셔닝 (각 노드에 범위를 할당, 범위에 만족하도록 데이터 파티셔닝)
• 주로 분산 정렬에 사용

• 전송 방법
– Pull
• Step 1: 로컬 디스크에 저장
• Step 2: 다른 노드들이 HTTP로 끌어감

– Push (12월 릴리즈 0.8에 추가됨)
• 중간 데이터를 다음 노드에게 직접 스트리밍 (no materialization)
• Push되는 양쪽 실행 단계는 파이프라이닝 가능
Tajo 분산 처리 모델에 기반한 분산 실행 계획의 예제
논리 실행 계획
(logical plan)

분산 실행 계획
(distributed execution plan)

select col1, sum(col2) as total, avg(col3) as average from r1, r2
where r1.col1 = r2.col2 group by col1 order by average;
질의 최적화
• Cost-based Join Optimization (Greedy Heuristic)
– 사용자가 최선의 조인 순서를 추측하는 수고 제거
• 확장 가능한 rewrite rule 엔진
– rewrite rule 인터페이스 제공과 다양한 유틸리티 제공
• Query block 그래프 자료구조 (블럭간의 관계 표현)
• 조인 그래프 자료구조 (조인 조건들을 기준으로 그래프 표현)
• 그 외의 대수관련 유틸리티

SELECT … from
( SELECT … from A) as r1
join
( SELECT … from B
WHERE c1 > (SELECT
) as r2
Query block 그래프 변환
질의 최적화
• 점진적 질의 최적화 (Progressive Query Optimization)
– 실행 시간 통계 수집
• 실행 시간에 Min, Max 값, 중간 데이터 크기 수집

– 분산 정렬을 위한 범위 분할 (range partitioning)의 적절한 파티션
범위, 개수 등을 런타임에 조정
– 분산 조인, 그룹바이를 위한 파티션 개수를 런타임에 조정
– 논리 연산자 단위의 재최적화 (향후 계획)
• 실행 중 수집한 통계 정보를 바탕으로 조인 순서 다시 최적화
• 전송 방법 (transmission)도 실행 중 조정
현재 프로젝트 상태
• SQL 지원
– 표준 부분: ANSI SQL 2003 compliance
– 비표준 부분: PostgreSQL 호환
• 예) 함수 regexp_replace, split_part,…

– 미지원 및 향후 지원 계획
• Outer Join (v0.8), Exists (v1.0), In Subquery (v1.0)

• 클러스터 노드들에 대한 분산 조인, 그룹바이, 정렬 제공
• Blocking/Asynchronous Java Client API
• JDBC 드라이버 (개발 브렌치)
현재 프로젝트 상태
• Tajo Catalog
– 테이블의 통계 정보 (용량, row 수)
– Derby와 MySQL을 Catalog 스토어로 가능
– HCatalog를 통해 Hive Meta 엑세스 (개발 브렌치)
• Hive 테이블을 Tajo에서 엑세스 가능

– 편리한 백업 및 복구 유틸리티 제공 (tajo_dump)
-- 카탈로그 백업
$ bin/tajo_dump [tbname] > backup.sql
or
$ bin/tajo_dump –a > backup_all.sql
-- 카탈로그 복구
$ bin/tsql –f backup.sql
현재 프로젝트 상태
• 파일 지원
–
–
–
–
–

CSV format
RowFile (row store 파일 구조)
RawFile (for local disk/network materialization)
RCFile (Text/Binary (de)serializer 제공 및 Hive 호환) (개발 브렌치)
Parquet (다음 릴리즈 v0.8에서 제공)

• 사용자 파일 포맷을 위한 scanner/appender 인터페이스 제공
• 대폭 향상된 스캔 성능
– 클러스터 노드와 각 노드의 디스크 부하까지 고려하여 테스크를 동적
으로 할당 (dynamic scheduling)
– 디스크 바운드 (disk-bound) 질의의 경우 평균 60-110 MB/s per disk
(SATA2 and SAS)
현재 프로젝트 상태
현재 프로젝트 상태
비교 평가
• Tajo (0.2-incubating) vs. Impalad_version 1.1.1 vs.
Hive 0.10-cdh4
• TPC-H data set 100GB
• 모든 테스트는 캐쉬 drop 후 수행
• 10G 이더넷
• 6대 클러스터 노드
– Intel Xeon CPU E5 2640 2.50GHz x 4
– 64 GB memory
– 6 SATA2 disks
Seconds

비교 평가

Some of TPC-H Queries on 100GB
Roadmap
• 현재 0.2 릴리즈 투표중
• 2013.12 : Apache Tajo 0.8 Release
–
–
–
–
–

SQL 지원 향상, 안정성 향상
Outer join 지원
Hadoop 2.2.0 GA 포팅
Table Partitioning: Hash, Range, List, Column (Hive style)
Hcatalog 엑세스 지원

• 2014 Q1: Apache Tajo 1.0-alpha release
– 강력하고 다양한 rewrite rule 추가
– 윈도우 함수 지원 (window function)
– JIT query compilation & vectorized 엔진 프로토타입
참여 방법!
• 시작하기
– http://wiki.apache.org/tajo/GettingStarted

• 개발 브렌치를 이용한 빌드
– http://wiki.apache.org/tajo/BuildInstruction

• Jira – 이슈 트래커
– https://issues.apache.org/jira/browse/TAJO

• 메일링 리스트 가입
– tajo-dev-subscribe@incubator.apache.org
Ad

More Related Content

What's hot (20)

하둡 알아보기(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
SeungYong Baek
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
JEONGPHIL HAN
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
Teddy Choi
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
Gruter
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
beom kyun choi
 
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
Gruter
 
Hive begins
Hive beginsHive begins
Hive begins
SungMin OH
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
MinJae Kang
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
Taehyeon Oh
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
Gruter
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
beom kyun choi
 
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
Gruter
 
하둡관리
하둡관리하둡관리
하둡관리
Choonghyun Yang
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
Eunsil Yoon
 
Hdfs
HdfsHdfs
Hdfs
Mungyu Choi
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
Gruter
 
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
 
하둡 알아보기(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
SeungYong Baek
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
Teddy Choi
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
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
Gruter
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
MinJae Kang
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
Taehyeon Oh
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
Gruter
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
beom kyun choi
 
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
Gruter
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
Eunsil Yoon
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
Gruter
 
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
 

Viewers also liked (7)

SQL on Hadoop: Defining the New Generation of Analytic SQL Databases
SQL on Hadoop: Defining the New Generation of Analytic SQL DatabasesSQL on Hadoop: Defining the New Generation of Analytic SQL Databases
SQL on Hadoop: Defining the New Generation of Analytic SQL Databases
OReillyStrata
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Radenko Zec
 
Apache ranger meetup
Apache ranger meetupApache ranger meetup
Apache ranger meetup
nvvrajesh
 
SQL on Hadoop
SQL on HadoopSQL on Hadoop
SQL on Hadoop
nvvrajesh
 
The Challenges of SQL on Hadoop
The Challenges of SQL on HadoopThe Challenges of SQL on Hadoop
The Challenges of SQL on Hadoop
DataWorks Summit
 
Big SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor LandscapeBig SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor Landscape
Nicolas Morales
 
SQL on Hadoop
SQL on HadoopSQL on Hadoop
SQL on Hadoop
Bigdatapump
 
SQL on Hadoop: Defining the New Generation of Analytic SQL Databases
SQL on Hadoop: Defining the New Generation of Analytic SQL DatabasesSQL on Hadoop: Defining the New Generation of Analytic SQL Databases
SQL on Hadoop: Defining the New Generation of Analytic SQL Databases
OReillyStrata
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Radenko Zec
 
Apache ranger meetup
Apache ranger meetupApache ranger meetup
Apache ranger meetup
nvvrajesh
 
SQL on Hadoop
SQL on HadoopSQL on Hadoop
SQL on Hadoop
nvvrajesh
 
The Challenges of SQL on Hadoop
The Challenges of SQL on HadoopThe Challenges of SQL on Hadoop
The Challenges of SQL on Hadoop
DataWorks Summit
 
Big SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor LandscapeBig SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor Landscape
Nicolas Morales
 
Ad

Similar to Tajo and SQL-on-Hadoop in Tech Planet 2013 (20)

Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
Gruter
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
H K Yoon
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
PgDay.Seoul
 
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
Hyunsik Choi
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나
sprdd
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
SANG WON PARK
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
Seok-joon Yun
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
Gruter
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
Mungyu Choi
 
Kubernetes
Kubernetes Kubernetes
Kubernetes
Kyung Koo Yoon
 
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
Gruter
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
Seoro Kim
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
Sungkyun Kim
 
개발자를 위한 마크베이스 네오 시작 가이드
개발자를 위한 마크베이스 네오 시작 가이드개발자를 위한 마크베이스 네오 시작 가이드
개발자를 위한 마크베이스 네오 시작 가이드
tn457wwhvm
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
KSLUG
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
PgDay.Seoul
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Jungsu Heo
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
Channy Yun
 
Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)
Steve Min
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
NAVER D2
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
Gruter
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
H K Yoon
 
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
PgDay.Seoul
 
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
Hyunsik Choi
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나
sprdd
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
SANG WON PARK
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
Seok-joon Yun
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
Gruter
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
Mungyu Choi
 
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
Gruter
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
Seoro Kim
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
Sungkyun Kim
 
개발자를 위한 마크베이스 네오 시작 가이드
개발자를 위한 마크베이스 네오 시작 가이드개발자를 위한 마크베이스 네오 시작 가이드
개발자를 위한 마크베이스 네오 시작 가이드
tn457wwhvm
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
KSLUG
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
PgDay.Seoul
 
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Web Analytics at Scale with Elasticsearch @ naver.com - Part 1
Jungsu Heo
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
Channy Yun
 
Apache hbase overview (20160427)
Apache hbase overview (20160427)Apache hbase overview (20160427)
Apache hbase overview (20160427)
Steve Min
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
NAVER D2
 
Ad

More from Gruter (20)

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 Warehouse
Gruter
 
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
Gruter
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
Gruter
 
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
Gruter
 
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
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
Gruter
 
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
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigData
Gruter
 
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 2014
Gruter
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
Gruter
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
Gruter
 
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
Gruter
 
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 20131105
Gruter
 
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
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 Warehouse
Gruter
 
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
Gruter
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
Gruter
 
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
Gruter
 
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
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
Gruter
 
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
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigData
Gruter
 
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 2014
Gruter
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
Gruter
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
Gruter
 
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
Gruter
 
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 20131105
Gruter
 
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
Gruter
 

Tajo and SQL-on-Hadoop in Tech Planet 2013

  • 1. SQL-on-Hadoop 그리고 Tajo Tech Planet 2013 11월 14일
  • 2. 소개 • 최현식 (Hyunsik Choi) – Director of Research, Gruter Corp (2013. 6 ~) – PhD (Computer Science & Engineering, 2013. 8) – Apache Tajo (incubating) PPMC member & committer (2013.3 ~ ) – Apache Giraph PMC member and committer (2011. 8 ~ ) • Contacts – Email: hyunsik AT apache.org – Linkedin: http://linkedin.com/in/hyunsikchoi/ – Twitter: @hyunsik_choi
  • 3. SQL-on-Hadoop 시스템 • SQL-on-Hadoop 시스템이란? – HDFS에 저장된 데이터에 대한 SQL 처리를 제공하는 시스템 – 탈 MapReduce 모델 & 프레임워크 • 새로운 분산 처리 모델 & 프레임워크를 기반 • 다양한 설계 목표 지향 (외형적으로 비슷해 보이지만 다름)
  • 4. 왜 SQL-on-Hadoop 시스템? • MapReduce의 한계 – 데이터 처리 모델상의 한계 (관계형 처리를 위해 고안된 것이 아님) • Map -> Shuffle -> Reduce – Pig, Hive는 MapReduce가 제공하는 기능 이상의 최적화 불가능 – 느린 속도 (초기화 및 스케쥴링 지연) • MapReduce가 느린 것이 아님, 하둡 구현이 느린 것 • 높은 learning curve 및 Legacy 시스템들과 호환성 문제 – MapReduce는 어렵고, 개발 노력이 많이 들고, 성능 보장이 어려움 • MapReduce의 직접 사용은 점차 줄고 있음 – HiveQL != SQL • Ad-hoc 질의에 대한 속도 문제로 DBMS 병행 사용 불가피 – 부담이 큰 ETL의 문제 (HDFS <-> DBMS) – 추가적인 스토리지 공간 필요, 비싼 DBMS 라이센스 비용의 벽
  • 5. SQL-on-Hadoop 시스템 분류 • 주요 기준 – Long time 질의를 지원하는가? 아닌가? • ‘특정 시스템이 이 워크로드에 적합한가’를 판단하게 하는 기 준 • Long time 질의 지원를 위한 설계 시 주요 고려사 항 – Fault tolerance – Dynamic scheduling “Machine failures are common in a large cluster” - Jeff Dean
  • 6. Fault Tolerance • 질의 처리 중 발생하는 오류를 핸들링하여 질의를 완료하는 기능 • Long time 질의 (수 십분 이상) 에 필수적 • 하나의 질의를 작은 단위의 테스크로 나누어 처리하고 오류의 범위를 테스크로 한정 및 테스크 재시작 • 단, 중간 데이터 materialization 요구 – 디스크 부하 유발 Throughput Fault Tolerance Trade-off 관계
  • 7. Dynamic Scheduling • Fixed scheduling – 작업 시작 시 균등하게 클러스터 노드들에 분할된 작업을 한번에 할 당 • Dynamic scheduling 1. 각 노드에 노드가 한번에 실행할 수 있는 테스크를 우선적으로 분배 2. 노드가 할당 받은 테스크가 끝나면 다시 할당 • 실제 클러스터의 환경적 특성 – 같은 사양의 노드라도 알수 없는 이유로 성능 차이 발생 – 점진적으로 확장되는 경우 이종의 클러스터 노드로 구성 일부 느린 노드가 분산 작업의 성능을 결정
  • 8. SQL-on-Hadoop 시스템 분류 Name Fault Tolerance Dynamic Scheduling Long time 질의 적합 클러스터 자원 대비 큰 용량 처리 Tajo O O O O Impala X X X X Stinger (Hive) O O O O Drill ? ? ? ? Presto X X X X 표 1. 설계에 따른 비교표
  • 9. SQL-on-Hadoop 시스템 분류 Data Warehouse System Query Engine
  • 10. SQL-on-Hadoop 시스템 분류 • Data Warehouse System – 수 시간이상 걸리는 질의 수행 가능 – ETL 작업 • 데이터 변환 및 데이터 노이즈 제거 • 데이터 파티셔닝 – Data integration • 다수 데이터 소스에 대한 통합 – Ad-hoc query • Query Engine – 수 초에서 수 분까지의 질의 수행에 최적화 – 빠른 응답을 가지는 ad-hoc query – 중간 데이터 크기와 자원에 따라 질의가 다소 제약됨 • 인메모리 처리 구조와 파이프라인 연산 방식에 따라
  • 11. Presto 소개 • • • • Facebook에서 개발하여 오픈소스로 공개 수 초에서 수 분이 걸리는 질의 유형을 타겟으로 설계 No Fault tolerance 빠른 응답과 online query processing – 우선적으로 처리된 결과가 반환됨 • • 일부 질의 유형에 대해 approximate query 지원 Hive의 보완 시스템으로 개발 • 모든 연산자는 파이프라이닝 (pipelining)과 데이터 전송은 스트리밍 • Facebook 사례 – 누적된 300 PB Data Warehouse, 일일 30k 질의, 하루에 1PB 처리 “90% of jobs on a Facebook cluster have input sizes under 100 GB” - Raja Appuswamy et al. “Nobody ever got fired for buying a cluster”, Microsoft Research
  • 12. Tajo란? • Tajo – 하둡 기반의 대용량 데이터웨어 하우스 시스템 – 2010년 부터 리서치 프로토타입으로 개발 시작 – 아파치 인큐베이션 프로젝트 (올해 3월 ASF 인큐베이션 채택) • Features – – – – – – SQL 표준 호환 질의 전체를 분산 처리 HDFS가 기본 스토리지 관계형 모델 (Nested model로 확장 계획 중) ETL 뿐만 아니라 low-latency 질의(100 ms ~ hours) UDF 지원 • News – 0.2-incubating: 11월 중 릴리즈 – 0.8-incubating: 12월 릴리즈 계획
  • 13. Tajo의 주요 설계 원칙 • 실패한 테스크 단위의 재시도 • 질의 별 QueryMaster 내고장성 확장성 고성능 • 유연한 분산 처리 모델 • 비용 기반 최적화 • 확장 가능한 rewrite rule 더 많은 최적화 기회
  • 14. 아키텍쳐 • 기본 스토리지는 HDFS, 다양한 데이터 소스를 가질 수 있음 • 마스터 워커 클러스터 모델 + 각 질의 별 Query Master • 타조 마스터 (Tajo Master) – Single point of failure를 제거하고 병목 지점 제거 고려 – – – – – 항시 대기하며 DDL과 같은 분산 처리 없이 처리 가능한 질의 수행 Client API를 RPC로 제공 쿼리 파서 및 Query Master들을 관리 카탈로그 서버 내장 (독립 실행 가능) 클러스터 자원 관리 • Query Master (각 질의 별 동작) • Tajo Worker – 논리 실행 계획을 분산 실행 계획으로 변환 – 분산 실행 계획을 제어 – 테스크 스케쥴링 – Storage Manager – Local Query Engine
  • 17. Tajo 분산 처리 모델 • 질의 = 비순환 방향 그래프 – 정점, 방향을 가진 간선으로 구성 – 사이클 없음 • 정점은 데이터 처리 단계를 표현 – 논리 연산자 그래프 - A DAG of Logical Operators – Enforcer (properties to force physical planning) • 간선 (edge) = 정점간 데이터 흐름 표현 – 전송 방법 (Pull, Push, File) – 셔플 방법 (range, hash, and ..) – 파티션 개수
  • 18. 데이터 셔플 • 셔플 방법 – Hash • 해쉬 파티셔닝 (해쉬 키를 이용한 중간 데이터 파티셔닝) – Range • 범위 파티셔닝 (각 노드에 범위를 할당, 범위에 만족하도록 데이터 파티셔닝) • 주로 분산 정렬에 사용 • 전송 방법 – Pull • Step 1: 로컬 디스크에 저장 • Step 2: 다른 노드들이 HTTP로 끌어감 – Push (12월 릴리즈 0.8에 추가됨) • 중간 데이터를 다음 노드에게 직접 스트리밍 (no materialization) • Push되는 양쪽 실행 단계는 파이프라이닝 가능
  • 19. Tajo 분산 처리 모델에 기반한 분산 실행 계획의 예제 논리 실행 계획 (logical plan) 분산 실행 계획 (distributed execution plan) select col1, sum(col2) as total, avg(col3) as average from r1, r2 where r1.col1 = r2.col2 group by col1 order by average;
  • 20. 질의 최적화 • Cost-based Join Optimization (Greedy Heuristic) – 사용자가 최선의 조인 순서를 추측하는 수고 제거 • 확장 가능한 rewrite rule 엔진 – rewrite rule 인터페이스 제공과 다양한 유틸리티 제공 • Query block 그래프 자료구조 (블럭간의 관계 표현) • 조인 그래프 자료구조 (조인 조건들을 기준으로 그래프 표현) • 그 외의 대수관련 유틸리티 SELECT … from ( SELECT … from A) as r1 join ( SELECT … from B WHERE c1 > (SELECT ) as r2 Query block 그래프 변환
  • 21. 질의 최적화 • 점진적 질의 최적화 (Progressive Query Optimization) – 실행 시간 통계 수집 • 실행 시간에 Min, Max 값, 중간 데이터 크기 수집 – 분산 정렬을 위한 범위 분할 (range partitioning)의 적절한 파티션 범위, 개수 등을 런타임에 조정 – 분산 조인, 그룹바이를 위한 파티션 개수를 런타임에 조정 – 논리 연산자 단위의 재최적화 (향후 계획) • 실행 중 수집한 통계 정보를 바탕으로 조인 순서 다시 최적화 • 전송 방법 (transmission)도 실행 중 조정
  • 22. 현재 프로젝트 상태 • SQL 지원 – 표준 부분: ANSI SQL 2003 compliance – 비표준 부분: PostgreSQL 호환 • 예) 함수 regexp_replace, split_part,… – 미지원 및 향후 지원 계획 • Outer Join (v0.8), Exists (v1.0), In Subquery (v1.0) • 클러스터 노드들에 대한 분산 조인, 그룹바이, 정렬 제공 • Blocking/Asynchronous Java Client API • JDBC 드라이버 (개발 브렌치)
  • 23. 현재 프로젝트 상태 • Tajo Catalog – 테이블의 통계 정보 (용량, row 수) – Derby와 MySQL을 Catalog 스토어로 가능 – HCatalog를 통해 Hive Meta 엑세스 (개발 브렌치) • Hive 테이블을 Tajo에서 엑세스 가능 – 편리한 백업 및 복구 유틸리티 제공 (tajo_dump) -- 카탈로그 백업 $ bin/tajo_dump [tbname] > backup.sql or $ bin/tajo_dump –a > backup_all.sql -- 카탈로그 복구 $ bin/tsql –f backup.sql
  • 24. 현재 프로젝트 상태 • 파일 지원 – – – – – CSV format RowFile (row store 파일 구조) RawFile (for local disk/network materialization) RCFile (Text/Binary (de)serializer 제공 및 Hive 호환) (개발 브렌치) Parquet (다음 릴리즈 v0.8에서 제공) • 사용자 파일 포맷을 위한 scanner/appender 인터페이스 제공 • 대폭 향상된 스캔 성능 – 클러스터 노드와 각 노드의 디스크 부하까지 고려하여 테스크를 동적 으로 할당 (dynamic scheduling) – 디스크 바운드 (disk-bound) 질의의 경우 평균 60-110 MB/s per disk (SATA2 and SAS)
  • 27. 비교 평가 • Tajo (0.2-incubating) vs. Impalad_version 1.1.1 vs. Hive 0.10-cdh4 • TPC-H data set 100GB • 모든 테스트는 캐쉬 drop 후 수행 • 10G 이더넷 • 6대 클러스터 노드 – Intel Xeon CPU E5 2640 2.50GHz x 4 – 64 GB memory – 6 SATA2 disks
  • 28. Seconds 비교 평가 Some of TPC-H Queries on 100GB
  • 29. Roadmap • 현재 0.2 릴리즈 투표중 • 2013.12 : Apache Tajo 0.8 Release – – – – – SQL 지원 향상, 안정성 향상 Outer join 지원 Hadoop 2.2.0 GA 포팅 Table Partitioning: Hash, Range, List, Column (Hive style) Hcatalog 엑세스 지원 • 2014 Q1: Apache Tajo 1.0-alpha release – 강력하고 다양한 rewrite rule 추가 – 윈도우 함수 지원 (window function) – JIT query compilation & vectorized 엔진 프로토타입
  • 30. 참여 방법! • 시작하기 – http://wiki.apache.org/tajo/GettingStarted • 개발 브렌치를 이용한 빌드 – http://wiki.apache.org/tajo/BuildInstruction • Jira – 이슈 트래커 – https://issues.apache.org/jira/browse/TAJO • 메일링 리스트 가입 – [email protected]