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

Post on 02-Dec-2014

990 views 3 download

description

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

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

아파치 하이브!비즈니스 인텔리전스와실시간 조회 관점에서아파치 하이브 기여자 최종욱(Teddy Choi)teddyjchoi@gmail.com

발표자

• 최종욱 (Teddy Choi)teddyjchoi@gmail.com"

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

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

오늘의 두 주제

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

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

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

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

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

SQL

아파치 하이브(Apache Hive)

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

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

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

SAPHANA

관련 제품들

SQL 온 하둡

클라우데라 임팔라"

페이스북 프레스토"

IBM Big SQL"아파치 타조"

피보탈 HAWQ

SQL 인 하둡

아파치 하이브"

스팅어 계획

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조!

피보탈 HAWQ

SQL 인 하둡

아파치 하이브!

스팅어 계획

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

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

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

LLVM, …)

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조!

피보탈 HAWQ

SQL 인 하둡

아파치 하이브"

스팅어 계획

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

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

관련 제품들

SQL 온 하둡

클라우데라 임팔라!

페이스북 프레스토!

IBM Big SQL!아파치 타조"

피보탈 HAWQ

SQL 인 하둡

아파치 하이브!

스팅어 계획

하이브 메타스토어 중심

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

스팅어 계획 (Stinger Initiative)

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

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

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

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

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

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

© 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)*

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

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

© 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

벡터화 (Vectorization)

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

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

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

C1 C2 C3 C4 C5

R1

R2

R3

R4

R5

R6

R7

R8

R9

벡터화된 실행기존 실행

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

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

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

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

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

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

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

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

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

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

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

중간 요약

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

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

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

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

NoSQL

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

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

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

아니

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

라고 적어

NoSQL 인기에 묻어가기

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

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

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

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

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

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

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

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

변환 단계

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 (…~…)

고려중인 방안

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

요약

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

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

함께 볼만한 오픈소스들

"

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

"

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

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

감사합니다. "

질문 있나요?

참고 자료• “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