27
아파치 하이브 비즈니스 인텔리전스와 실시간 조회 관점에서 아파치 하이브 기여자 최종욱(Teddy Choi) [email protected]

Apache Hive: for business intelligence use and real-time I/O use (Korean)

Embed Size (px)

DESCRIPTION

"아파치 하이브: 비즈니스 인텔리전스와 실시간 조회 관점에서" 슬라이드는 제 10회 ACC (http://acc.zdnet.co.kr)에서 아파치 하이브 기여자 최종욱이 발표한 내용을 담고 있습니다. 최근 스팅어가 추구하는 방향, 그리고 달성한 성과와 HBase 통합 분야의 발전을 소개합니다.

Citation preview

Page 1: Apache Hive: for business intelligence use and real-time I/O use (Korean)

아파치 하이브!비즈니스 인텔리전스와실시간 조회 관점에서아파치 하이브 기여자 최종욱(Teddy Choi)[email protected]

Page 2: Apache Hive: for business intelligence use and real-time I/O use (Korean)

발표자

• 최종욱 (Teddy Choi)[email protected]"

• 현 아파치 하이브 기여자전 KT 넥스알 선임 연구원

• 벡터화, HBase 지원, 오류 수정 등다양한 분야에서 작업

Page 3: Apache Hive: for business intelligence use and real-time I/O use (Korean)

오늘의 두 주제

1. 고급 분석 (비즈니스 인텔리전스) 2. 실시간 조회

Page 4: Apache Hive: for business intelligence use and real-time I/O use (Korean)

1. 비즈니스 인텔리전스 (Business Intelligence)

• “구슬이 서말이라도 꿰어야 보배”

• 의사결정에 필요한 정보를 제공

• 비즈니스 인텔리전스 제품들이 자료에 대한 통찰을 제공하며, 이 제품들은 SQL을 바탕으로 데이터를 다룬다. 또한 기존의 분석가들도 SQL에 익숙하다.

SQL

Page 5: Apache Hive: for business intelligence use and real-time I/O use (Korean)

아파치 하이브(Apache Hive)

• 페이스북에서 익숙한 SQL 언어로 하둡에서 대용량 자료를 다루기 위해 만들고 오픈소스로 공개했다.

• 그 동안 많은 경쟁자들이 도전한다. 클라우데라의 임팔라(Impala), 타조(Tajo), 샤크(Shark) 등.

• ODBC 드라이버 전문 제작 업체 심바 테크놀로지스에 따르면, 하이브는 여전히 SQL 온/인 하둡 제품들의 실질적인 표준으로 자리잡고 있다. 엑셀, 탈렌드, 마이크로스트래티지, SAP 하나 등 주요 BI 관련 제품이 지원한다. 가장 많은 인증 기능도 제공한다.

SAPHANA

Page 6: Apache Hive: for business intelligence use and real-time I/O use (Korean)

관련 제품들

SQL 온 하둡

클라우데라 임팔라"

페이스북 프레스토"

IBM Big SQL"아파치 타조"

피보탈 HAWQ

SQL 인 하둡

아파치 하이브"

스팅어 계획

Page 7: Apache Hive: for business intelligence use and real-time I/O use (Korean)

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조!

피보탈 HAWQ

SQL 인 하둡

아파치 하이브!

스팅어 계획

SQL 인 하둡의 선구자, 맵리듀스의 한계로

상호작용적 분석에는 부적합

상호작용적 분석을 위해 다양한 기법 적용 (인메모리, MPP,

LLVM, …)

Page 8: Apache Hive: for business intelligence use and real-time I/O use (Korean)

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조!

피보탈 HAWQ

SQL 인 하둡

아파치 하이브"

스팅어 계획

독자적인 자료 처리, 클러스터 추가 구성

하둡 2 얀(YARN) 기반, 하둡 클러스터를 사용

Page 9: Apache Hive: for business intelligence use and real-time I/O use (Korean)

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조"

피보탈 HAWQ

SQL 인 하둡

아파치 하이브!

스팅어 계획

하이브 메타스토어 중심

(하이브 메타스토어 지원)

Page 10: Apache Hive: for business intelligence use and real-time I/O use (Korean)

스팅어 계획 (Stinger Initiative)

• 차세대 하이브를 이끌기 위한 광범위한 커뮤니티 주도의 노력이다

• 속도: 상호작용적 질의 시간(초 단위)을 위해 하이브 질의 성능을 100배까지 향상

• 규모: 테라~페타바이트 규모의 질의를 다루기 위해 설계된 유일한 SQL 하둡 인터페이스

• SQL: 하둡을 이용하는 분석 응용을 위한 가장 다양한 범위의 SQL 구문을 지원

• 이 모든 것이 하둡 내에서 이뤄진다

Page 11: Apache Hive: for business intelligence use and real-time I/O use (Korean)

속도: 상호작용적 질의 수행

© Hortonworks Inc. 2013.

© Hortonworks Inc. 2013.

Stinger Phase 3: Interactive Query In Hadoop

Page 12

Hive 10 Trunk (Phase 3) Hive 0.11 (Phase 1)

190x*Improvement*

1400s

39s

7.2s

TPCIDS*Query*27*

3200s

65s

14.9s

TPCIDS*Query*82*

200x*Improvement*

Query+27:+Pricing+Analy'cs+using+Star+Schema+Join++Query+82:+Inventory+Analy'cs+Joining+2+Large+Fact+Tables+

All*Results*at*Scale*Factor*200*(Approximately*200GB*Data)*

Page 12: Apache Hive: for business intelligence use and real-time I/O use (Korean)

SQL: SQL 구문 확장

© Hortonworks Inc. 2013.

© Hortonworks Inc. 2013.

SQL: Enhancing SQL Semantics

Hive+SQL+Datatypes+ Hive+SQL+Seman'cs+INT* SELECT,*INSERT*

TINYINT/SMALLINT/BIGINT* GROUP*BY,*ORDER*BY,*SORT*BY*

BOOLEAN* JOIN*on*explicit*join*key*

FLOAT* Inner,*outer,*cross*and*semi*joins*

DOUBLE* SubIqueries*in*FROM*clause*

STRING* ROLLUP*and*CUBE*

TIMESTAMP* UNION*

BINARY* Windowing*Func:ons*(OVER,*RANK,*etc)*

DECIMAL* Custom*Java*UDFs*

ARRAY,*MAP,*STRUCT,*UNION* Standard*Aggrega:on*(SUM,*AVG,*etc.)*

DATE* Advanced*UDFs*(ngram,*Xpath,*URL)**

VARCHAR* SubIqueries*in*WHERE,*HAVING*

CHAR* Expanded*JOIN*Syntax*

SQL*Compliant*Security*(GRANT,*etc.)*

INSERT/UPDATE/DELETE*(ACID)*

Hive*0.12*

Available*

Roadmap*

SQL Compliance Hive 12 provides a wide array of SQL datatypes and semantics so your existing tools integrate more seamlessly with Hadoop

Page 13: Apache Hive: for business intelligence use and real-time I/O use (Korean)

규모: 페타바이트 규모의상호작용적 질의

© Hortonworks Inc. 2013.

© Hortonworks Inc. 2013.

SCALE: Interactive Query at Petabyte Scale

Sustained Query Times Apache Hive 0.12 provides sustained acceptable query times even at petabyte scale

131+GB+(78%+Smaller)+

File+Size+Comparison+Across+Encoding+Methods+Dataset:+TPCLDS+Scale+500+Dataset+

221+GB+(62%+Smaller)+

Encoded*with*Text+

Encoded*with*RCFile+

Encoded*with*ORCFile+

Encoded*with*Parquet+

505+GB+(14%+Smaller)+

585+GB+(Original+Size)+ •  Larger Block Sizes

•  Columnar format arranges columns adjacent within the file for compression & fast access

Impala+

Hive+12+

Smaller Footprint Better encoding with ORC in Apache Hive 0.12 reduces resource requirements for your cluster

Page 14: Apache Hive: for business intelligence use and real-time I/O use (Korean)

벡터화 (Vectorization)

• 레코드 단위 처리와 달리, 컬럼 단위로 처리한다. 객체 생성 횟수를 줄이고 CPU 캐쉬 적중률을 높여 처리 성능을 높인다.

• 예를 들어 기존 날짜 관련 SQL 함수는 복잡한 처리 논리를 담은 객체를 매 레코드마다 생성하길 반복했으나 벡터화(vectorization)로 단 한 번만 생성하여 재사용한다.

• 마이크로소프트 SQL 서버 개발팀에서 설계를 주도한다. 최종욱은 시간, 문자열 자료형 관련 벡터화 부분을 설계 및 구현했다.

C1 C2 C3 C4 C5

R1

R2

R3

R4

R5

R6

R7

R8

R9

벡터화된 실행기존 실행

Page 15: Apache Hive: for business intelligence use and real-time I/O use (Korean)

실제 적용한 최적화 기법들• Effective Java 2판 항목 5: 불필요한 객체의 생성을 피하자

• Timestamp 관련 함수들 최적화 (YEAR, MONTH, …)

• 생성이 느린 Calendar, DateFormat 객체는 최대한 재사용

• 연도나 월 등 단순한 필드는 객체 미생성

• String 없이 byte 배열로 직접 접근

• 정규식 관련 함수들 최적화 (LIKE, RLIKE)

• 생성이 느린 Pattern 객체는 최대한 재사용

• 접미사 등 단순한 정규식은 Pattern 객체 미생성

• String 없이 byte 배열로 직접 접근

• UTF-8 디코딩 부분도 객체 생성을 최소화

• 이로써 해당 기능의 성능이 2~4배로 향상

Page 16: Apache Hive: for business intelligence use and real-time I/O use (Korean)

중간 요약

1. 하이브는 빅데이터 비즈니스인텔리전스 제품 연동에 적합하다

2. 하이브는 실시간 빅데이터조회 기능도 향상 중이다

Page 17: Apache Hive: for business intelligence use and real-time I/O use (Korean)

2. 실시간 조회• 이메일, 채팅 등이나 유저 클릭 등의 데이터가 생성되는 동시에 저장하고 언제든지 불러오고 싶지만. 테라~페타 바이트 단위로 쌓이고 밀리 초~나노 초 안에 조회해야한다면? 배치 처리 위주의 하둡이 다루기 힘든 분야다.

• 페이스북, 라인 메신저 등의 글로벌 인터넷 서비스 회사에서 부딪힌 문제다. 금융, 의료, 보안 등의 분야도 마찬가지다.

Page 18: Apache Hive: for business intelligence use and real-time I/O use (Korean)

NoSQL

• 기존의 관계형 데이터베이스로 다루기 힘든 대용량의 자료를 실시간으로 다루기 위해 등장한 새로운 데이터베이스의 통칭이다. 분산 시스템, 비정형 자료, SQL 미지원, 비정규화, 약한 일관성 등의 특징 중 일부를 공유한다.

• 몽고디비, 카우치디비, HBase, 카산드라 등이 유명하다.

이력서 쓰는 방법SQL 한 번이라도써본 적 있어?

아니

상관 없어. “NO SQL 전문가”

라고 적어

NoSQL 인기에 묻어가기

Page 19: Apache Hive: for business intelligence use and real-time I/O use (Korean)

아파치 HBase• HBase는 레코드 단위의 실시간 처리를 제공하는 NoSQL 제품이다. 카산드라나 몽고디비 등 경쟁제품과 달리 하둡 클러스터에서 작동한다. 하둡의 보완재 역할을 한다.

• 페이스북과 라인 메신저 등의 성공사례가 나왔다.

• SQL과 다른 독자적인 질의 언어를 사용하여 프로그래머들에게 부담이 된다.

Page 20: Apache Hive: for business intelligence use and real-time I/O use (Korean)

SQL 온 HBase• HBase를 SQL로 다루는 기술이다. 하이브, 임팔라에서 기본으로 지원하나, 단일키 등 기본적인 기능을 지원한다.

• 세일즈포스에서 피닉스(Phoenix)를 공개했다. 복합키, 스킵 스캔, 이차 색인 등 다양한 최적화 도입으로 성능을 높였다. 반면 고급 분석 함수와 조인 등의 SQL 기능 구현이 부족한 부분이 있어 이를 보완할 방법이 필요하다.

Page 21: Apache Hive: for business intelligence use and real-time I/O use (Korean)

하이브-HBase 최적화 사례• 최종욱은 하이브에서 HBase 이중키 지원 및 질의문 최적화 기능 추가했다.

• 주어진 질의문의 조건절을 논리합 표준형(DNF)으로 변환하고 각 조건별 중복 범위 제거 등의 최적화 기술을 도입하여 10GB 테이블을 대상으로 단건 및 복수건 처리 시간을 수 분~수 시간에서 밀리 초~수 초로 단축했다.

• 조만간 관련 내용을 하이브 본 코드에 반영할 계획이다.

Page 22: Apache Hive: for business intelligence use and real-time I/O use (Korean)

변환 단계

1. 로우키와 무관한 컬럼 제거

2. 논리합 표준형으로 변환

3. AND 절 별 범위 처리

4. 전체 중복 범위 처리

5. 수행계획 SQL 변환 및 전달

SELECT … WHERE … > (…AND…) OR (…AND…)

(0~1000) + (4000~5000) > (BETWEEN 0 AND 1000) OR (BETWEEN 4000 AND 5000)

(…AND…) OR (…AND…) > (…~…) OR (…~…)

Page 23: Apache Hive: for business intelligence use and real-time I/O use (Korean)

고려중인 방안

1. 순수하게 하이브로 제작 2. 피닉스 연동

Page 24: Apache Hive: for business intelligence use and real-time I/O use (Korean)

요약

1. 하이브는 빅데이터 비즈니스인텔리전스 제품 연동에 적합하다

2. 하이브는 실시간 빅데이터조회 기능도 향상 중이다

Page 25: Apache Hive: for business intelligence use and real-time I/O use (Korean)

함께 볼만한 오픈소스들

"

• 타조(Tajo): 하이브의 맵리듀스 등 병목구간을 제거한 분산 데이터웨어하우스. 한국 업체인 그루터 등이 참여.

"

• 올챙이(Tapole): 하이브 등 다양한 DB를 지원하는 편리한 웹 DB 클라이언트.

• 피그(Pig): 인기가 높은 하둡 데이터 처리용 스크립트 언어.

Page 26: Apache Hive: for business intelligence use and real-time I/O use (Korean)

감사합니다. "

질문 있나요?

Page 27: Apache Hive: for business intelligence use and real-time I/O use (Korean)

참고 자료• “State of the Hive Market” Simba Technologies, 2013 http://www.slideshare.net/GeorgeChow1/2013-1028hugstateofthemarket-27709824

• “Apache Hive and Stinger: SQL in Hadoop” Hortonworks, 2013 http://www.slideshare.net/alanfgates/strata-stingertalk-oct2013

• “분석 소프트웨어 실행 화면” MicroStrategy, 2013 http://www.microstrategy.com/platforms/analytics

• “NoSQL” Geek And Poke, 2011 http://geekandpoke.typepad.com/geekandpoke/2011/01/nosql.html

• “상표” 해당 상표 소유 회사 또는 단체, 2013

• “Wild bee hive” Carly Lesser & Art, 2013 http://www.flickr.com/photos/wiredwitch/2302523896/ under CC BY-SA 2.0

• “Q&A” Quinn Dombrowski, 2013 http://www.flickr.com/photos/quinnanya/4080820343/ under CC BY-SA 2.0