SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Apache Kylin
하둡 기반의 데이터 큐브 시스템
OLAP
OLAP is an acronym for
Online Analytical Processing.
OLAP performs
multidimensional analysis
of business data and
provides the capability for
complex calculations, trend
analysis, and sophisticated
data modeling. It is the
foundation for many ki ….
결국은
GROUP BY
METRIC
보고자 하는 것
- 남자가 봐? 여자가 봐? -> 성별로 조회수
- 어느 지역에서 검색어 추이가 어때 -> 지역별, 시간별 검색 횟수
- 남자 10대 ~ 20대 타겟 개인화를 하려 하는데 .. -> 성별, 연령별, 시간별 체류
시간
SELECT `gender`, `age`, `location`, 조회수, 검색 횟수,
체류 시간
FROM 데이터_마트
WHERE 아웃라이어 제거 조건
GROUP BY `gender`, `age`, `location`
HAVING 유의미한 지표 필터링
문제는 데이터 사이즈
- 엑셀
- RDB, Netezza
- 데이터 마트
- Star Schema
“내가 해봤는데, 하루 100만건 까지는
지지고 볶고 하면 되겠는데
아 그래, 좀 크게 잡아서
3~4백만건까지는 OK.
근데 그 이상은 좀 힘들더라
근데 커팅 형님이 도와줬지 ㅎㅎㅎ”
김철수(가명) 40대? 시니어 개발자
Netezza
수억원
한대요
ㄷㄷㄷ
그때는 OLAP 쿼리 토요일날 돌려놓고 퇴근했어
그리고 월요일 아침정도에 거의 끝나거덩
그러면 그거 정리해서 오후에 리포팅 했지
껄껄껄 ...
김민수(가명) 40대? 시니어 개발자
수십억, GROUP BY
- Hadoop v1
- Hive
음.. 일단 몇시간 내로 나오긴 나오네!
그게 어디야. 세상 좋아졌네~ 껄껄껄
수백억건, GROUP BY, 실시간
- Hadoop
- Hive는 너무 느려! 데싸님들의 높아진 눈높이
- Spark + Zeppelin. 노트북
- Elastic Search
- Apache Kylin
- Google Dremel
- 컬럼 Oriented, 실행 트리
- Apache Drill
- Impala + Kudu
- Druid
빅데이터 처리
관점으로의 OLAP
Interactive OLAP
의 패러다임
실시간 빅데이터 OLAP, HOW?
- 열라 빨리 읽어 열라 빠르게 처리한다.
- 그까이꺼 미리 다 만들어 놓는다.
열라 빨리 읽어 열라 빨리 처리한다.
- 저장은 Column 지향, 인코딩, 샤딩
- 병렬로 최적 실행 트리를 만들어 처리.
- 당연한 장비빨. SSD, 네트웍 장비, 어마무시한 노드수
- CPU Instruction, Memory prefetch
- 쿼리 컴파일
- 확률적 추정, 샘플링
Impala
Impala - Code Gen
Impala, LLVM Query Compile
https://github.com/apache/incubator-impala/blob/master/be/src/exec/partitioned-hash-join-node.cc
Apache Kudu - CPU Instruction
난 둘다 지롱
- Druid
- 샘플링! 표본으로 모집단 추정. 참값과 달라도 쇠고랑 차지 않아요.
재 방문률
타겟팅 유효율
Top 1000
유니크 방문자. 1 2314 1212 vs 1 1841 5123
증감
그까이꺼 미리 다 만들어 놓는다
- 데이터 큐브
- 전날 배치를 돌려 모든 조합을 만들어 놓는다.
8개월간의 사투
- ㅋㅋㅋㅋ 야이씨 데이터가 많은데 그걸 빨리 읽어서 처리? ㅋㅋㅋㅋㅋ
카일린 고고
- 흠.. 혹시나… Impala + Kudu 어때?
오.. 괜찮네. 몇개는 역시 한계가 있는 건가.
- 음?? Druid! 괜찮네.. Impala + Kudu 한계까지 커버 하네!
- 현재 Druid로 새로 꾸리는 중...
자, 시작합니다. 카일린(키린도 맞아요)
Tomcat + Spring
+ Calcite
HBaseHive
카프카
스팍
스트리밍
스팍
스트리밍
엘라스틱
서치
Parquet
스팍
스팍 SQL
Parquet Hive
Kylin
Query
실시간
배치
Curse of dimension
- 조합의 수.
디멘션의 개수 10개의 총 조합수
nC1 + nC2 + nC3 + … + nCn = 2^n - 1개
- 조합 수보다 중요한 건 Unique Cardinality
디멘션이 4개, 각 디멘션당 Unique Cardinality 100만개
그러면 1 0000 0400 0006 0000 0400 0000개. 1자 400경 6억 4백만.
- 무식하게 다 빌드 했더니 1.7T ㄷㄷ 근데 하루 치 ㄷㄷㄷㄷㄷㄷㄷ
카일린 당신이란 사람은 대체 ㄷㄷㄷㄷ
디멘션 프루닝
- Aggregation Group
- Mandatory
- Hierarchy
- Joint
- Derived
필요 없는 조합은 만들지 않는다.
But 현실에서는 ...
데싸 : 나는 Store 디멘션은 필요 없어 ㅎㅎㅎㅎ
데엔 : 아 그래요? 그럼 Store 빼놓고 큐브 빌드
할게요 ㅎㅎㅎㅎ
데싸 : 그래 ㅎㅎㅎㅎ
1주일 뒤
데싸 : Store별로 보는게 나을 것 같습니다.
데엔 : 데싸 당신이란 사람은 대체 ...
불필요한 Store 디멘션은 빼고 큐브 빌드
네, 제가 해보겠습니다.
D2에 DockerFile만들어 놨어요
http://d2.naver.com/helloworld/1057065
Kylin Insight
- 디멘션 프루닝
- 인코딩
- 큐브 빌드 알고리즘
- 데이터 큐브 On Hadoop
- 샘플링
- 샤딩
부족했던 점
- 데이터는 무럭무럭 자란다. 스키마 에볼루션?
쿼리가 고정된 경우에는 적합하지만
어떤 쿼리가 들어올지 모르는 상황에서는 유즈케이스가 안맞는 것 같다.
- 실시간 처리
- 큐브 병합. 주별, 월별이 아닌 n일치로 병합
그러니까 1월 + 2월분이 섞이게 된다.
- 헤비 쿼리를 날리면 HBase 왜 니가 죽냐...
QnA

Weitere ähnliche Inhalte

Was ist angesagt?

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명Ji Hoon Lee
 
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
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Pro android performance optimization 20171213
Pro android performance optimization 20171213Pro android performance optimization 20171213
Pro android performance optimization 20171213Changwook Jun
 
Yapp a.a 2 2 sugar orm
Yapp a.a 2 2 sugar ormYapp a.a 2 2 sugar orm
Yapp a.a 2 2 sugar ormJunyoung Lee
 
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스Teddy Choi
 

Was ist angesagt? (10)

about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
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)
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Pro android performance optimization 20171213
Pro android performance optimization 20171213Pro android performance optimization 20171213
Pro android performance optimization 20171213
 
Bloomfilter
BloomfilterBloomfilter
Bloomfilter
 
Yapp a.a 2 2 sugar orm
Yapp a.a 2 2 sugar ormYapp a.a 2 2 sugar orm
Yapp a.a 2 2 sugar orm
 
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
 

Andere mochten auch

Kylin OLAP Engine Tour
Kylin OLAP Engine TourKylin OLAP Engine Tour
Kylin OLAP Engine TourLuke Han
 
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
 
Apache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseApache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseHBaseCon
 
HBase Coprocessor Introduction
HBase Coprocessor IntroductionHBase Coprocessor Introduction
HBase Coprocessor IntroductionSchubert Zhang
 
Kylin and Druid Presentation
Kylin and Druid PresentationKylin and Druid Presentation
Kylin and Druid Presentationargonauts007
 

Andere mochten auch (6)

Kylin OLAP Engine Tour
Kylin OLAP Engine TourKylin OLAP Engine Tour
Kylin OLAP Engine Tour
 
The Evolution of Apache Kylin
The Evolution of Apache KylinThe Evolution of Apache Kylin
The Evolution of Apache Kylin
 
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)
 
Apache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseApache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBase
 
HBase Coprocessor Introduction
HBase Coprocessor IntroductionHBase Coprocessor Introduction
HBase Coprocessor Introduction
 
Kylin and Druid Presentation
Kylin and Druid PresentationKylin and Druid Presentation
Kylin and Druid Presentation
 

카일린 Kylin, OLAP on hadoop

  • 1. Apache Kylin 하둡 기반의 데이터 큐브 시스템
  • 2. OLAP OLAP is an acronym for Online Analytical Processing. OLAP performs multidimensional analysis of business data and provides the capability for complex calculations, trend analysis, and sophisticated data modeling. It is the foundation for many ki …. 결국은 GROUP BY METRIC
  • 3. 보고자 하는 것 - 남자가 봐? 여자가 봐? -> 성별로 조회수 - 어느 지역에서 검색어 추이가 어때 -> 지역별, 시간별 검색 횟수 - 남자 10대 ~ 20대 타겟 개인화를 하려 하는데 .. -> 성별, 연령별, 시간별 체류 시간 SELECT `gender`, `age`, `location`, 조회수, 검색 횟수, 체류 시간 FROM 데이터_마트 WHERE 아웃라이어 제거 조건 GROUP BY `gender`, `age`, `location` HAVING 유의미한 지표 필터링
  • 4. 문제는 데이터 사이즈 - 엑셀 - RDB, Netezza - 데이터 마트 - Star Schema “내가 해봤는데, 하루 100만건 까지는 지지고 볶고 하면 되겠는데 아 그래, 좀 크게 잡아서 3~4백만건까지는 OK. 근데 그 이상은 좀 힘들더라 근데 커팅 형님이 도와줬지 ㅎㅎㅎ” 김철수(가명) 40대? 시니어 개발자
  • 6. 그때는 OLAP 쿼리 토요일날 돌려놓고 퇴근했어 그리고 월요일 아침정도에 거의 끝나거덩 그러면 그거 정리해서 오후에 리포팅 했지 껄껄껄 ... 김민수(가명) 40대? 시니어 개발자
  • 7. 수십억, GROUP BY - Hadoop v1 - Hive 음.. 일단 몇시간 내로 나오긴 나오네! 그게 어디야. 세상 좋아졌네~ 껄껄껄
  • 8. 수백억건, GROUP BY, 실시간 - Hadoop - Hive는 너무 느려! 데싸님들의 높아진 눈높이 - Spark + Zeppelin. 노트북 - Elastic Search - Apache Kylin - Google Dremel - 컬럼 Oriented, 실행 트리 - Apache Drill - Impala + Kudu - Druid 빅데이터 처리 관점으로의 OLAP Interactive OLAP 의 패러다임
  • 9. 실시간 빅데이터 OLAP, HOW? - 열라 빨리 읽어 열라 빠르게 처리한다. - 그까이꺼 미리 다 만들어 놓는다.
  • 10. 열라 빨리 읽어 열라 빨리 처리한다. - 저장은 Column 지향, 인코딩, 샤딩 - 병렬로 최적 실행 트리를 만들어 처리. - 당연한 장비빨. SSD, 네트웍 장비, 어마무시한 노드수 - CPU Instruction, Memory prefetch - 쿼리 컴파일 - 확률적 추정, 샘플링
  • 13. Impala, LLVM Query Compile https://github.com/apache/incubator-impala/blob/master/be/src/exec/partitioned-hash-join-node.cc
  • 14. Apache Kudu - CPU Instruction
  • 15. 난 둘다 지롱 - Druid - 샘플링! 표본으로 모집단 추정. 참값과 달라도 쇠고랑 차지 않아요. 재 방문률 타겟팅 유효율 Top 1000 유니크 방문자. 1 2314 1212 vs 1 1841 5123 증감
  • 16.
  • 17. 그까이꺼 미리 다 만들어 놓는다 - 데이터 큐브 - 전날 배치를 돌려 모든 조합을 만들어 놓는다.
  • 18. 8개월간의 사투 - ㅋㅋㅋㅋ 야이씨 데이터가 많은데 그걸 빨리 읽어서 처리? ㅋㅋㅋㅋㅋ 카일린 고고 - 흠.. 혹시나… Impala + Kudu 어때? 오.. 괜찮네. 몇개는 역시 한계가 있는 건가. - 음?? Druid! 괜찮네.. Impala + Kudu 한계까지 커버 하네! - 현재 Druid로 새로 꾸리는 중...
  • 20. Tomcat + Spring + Calcite HBaseHive
  • 22. Curse of dimension - 조합의 수. 디멘션의 개수 10개의 총 조합수 nC1 + nC2 + nC3 + … + nCn = 2^n - 1개 - 조합 수보다 중요한 건 Unique Cardinality 디멘션이 4개, 각 디멘션당 Unique Cardinality 100만개 그러면 1 0000 0400 0006 0000 0400 0000개. 1자 400경 6억 4백만. - 무식하게 다 빌드 했더니 1.7T ㄷㄷ 근데 하루 치 ㄷㄷㄷㄷㄷㄷㄷ 카일린 당신이란 사람은 대체 ㄷㄷㄷㄷ
  • 23. 디멘션 프루닝 - Aggregation Group - Mandatory - Hierarchy - Joint - Derived 필요 없는 조합은 만들지 않는다.
  • 24. But 현실에서는 ... 데싸 : 나는 Store 디멘션은 필요 없어 ㅎㅎㅎㅎ 데엔 : 아 그래요? 그럼 Store 빼놓고 큐브 빌드 할게요 ㅎㅎㅎㅎ 데싸 : 그래 ㅎㅎㅎㅎ 1주일 뒤 데싸 : Store별로 보는게 나을 것 같습니다. 데엔 : 데싸 당신이란 사람은 대체 ... 불필요한 Store 디멘션은 빼고 큐브 빌드
  • 25. 네, 제가 해보겠습니다. D2에 DockerFile만들어 놨어요 http://d2.naver.com/helloworld/1057065
  • 26. Kylin Insight - 디멘션 프루닝 - 인코딩 - 큐브 빌드 알고리즘 - 데이터 큐브 On Hadoop - 샘플링 - 샤딩
  • 27. 부족했던 점 - 데이터는 무럭무럭 자란다. 스키마 에볼루션? 쿼리가 고정된 경우에는 적합하지만 어떤 쿼리가 들어올지 모르는 상황에서는 유즈케이스가 안맞는 것 같다. - 실시간 처리 - 큐브 병합. 주별, 월별이 아닌 n일치로 병합 그러니까 1월 + 2월분이 섞이게 된다. - 헤비 쿼리를 날리면 HBase 왜 니가 죽냐...
  • 28. QnA