Extreme OLAP Engine for Big Data
빅데이터본부 | 빅데이터컨설팅팀
Extreme OLAP Engine for Big Data
ApacheKylin
Open Source Distributed Analytics Engine from eBay
Provides SQL Interface and Multi-Dimensional Analysis(OLADP)
BigDataAnalytics의비즈니스요구사항
• 수십억 ROW의 데이터를 짧은 Latency를 갖는 Query 실행
• ANSI SQL 지원
• Full OLAP 기능
• BI Tool 등과 긴밀한 통합
• High Concurrency
• Distributed, Scale Out Architecture
BigDataAnalytics에있어서기술적도전
• 많은 양의 거대한 데이터를 스캐닝
• 많은 양의 거대한 데이터를 JOIN
• Runtime Aggregation의 과도한 비용
• 배치 처리
OLAPCube
OLAPCube
• Cube는 가능한 모든 조합을 구성하는 개념
• 따라서 구성하는데 소요되는 시간, 공간은 데이터가 커질수록 그 비용이 급격하게 증가됨
OLAPCube
• 4개의 컬럼의 테이블로 Cube를 구성할 때 총 5개의 Cuboid가 구성
1.(9/15, milk, Urbana, Dairy_land) - <time, item, location, supplier>
2.(9/15, milk, Urbana, *) - <time, item, location>
3.(*, milk, Urbana, *) - <item, location>
4.(*, milk, Chicago, *) - <item, location>
5.(*, milk, *, *) - <item>
RDBMS의데이터를Key-ValueStore로표현
Hadoop MapReduce로
계산값을 분산/병렬 계산
StarSchema란무엇인가?
• Star Schema = Join Schema
• Data Warehouse 스키마 중에서 가장 단순한 종류의
스키마
• 한 개의 Fact 테이블과 Primary Key 및 각 Dimension
과 추가 Fact로 이루어진 스키마
• 별모양의 스키마라고 해서 붙여진 이름이며 이해하기
쉬운 장점이 있음
• Star Schema는 RDBMS를 활용하여 다차원 데이터베
이스(MDDB)를 활용할 수 있게 됨
• Fact 테이블  제3 정규형, 차원 테이블은 역정규화된
제2 정규형 (차원 테이블은 정규화시 분석이 어려움)
SELECT
sum (f_sales.units_sold)
FROM
f_sales, d_customer, d_time, d_store, d_product
WHERE
f_sales.customer_id = d_customer.customer_id AND
f_sales.date_id = d_time.date_id AND
f_sales.store_id = d_store.store_id AND
f_sales.product_id = d_product.product_id AND
d_time.year_id = 1997 AND
d_product.category_id = 'tv'
GROUP BY
d_product.brand, d_store.country_iso_id
OLAPCube의정의
ApacheKylin의아키텍처
• Star Schema 식별  테이블에서 Cube 생성  ODBC, JDBC, RESTful API 등을 이용해 ANSI-SQL 질의
ApacheKylin의주요기능
• Extremely Fast OLAP at Scale
• ANSI SQL Interface on Hadoop
• Interactive Query Capability
• MOLAP Cube
• Seamless Integration with BI Tools
ApacheKylin의HadoopComponent활용
• Apache Hive
• Input Source
• Pre-join star schema during cube building
• Hadoop MapReduce
• Pre-aggregation metrics during cube building
• Hadoop HDFS
• Store intermediated files during cube building
• Apache HBase
• Store data cube
• Serve query on data cube
• Coprocessor is used for query processing
ApacheKylin이빠른이유
• 미리 구성해 둔 Cube – 쿼리의 결과를 미리 다 계산을 해 두었기 때문에
• 분산 아키텍처 기반의 인프라를 사용하기 때문에
• Hive Table을 스캔하거나, MapReduce을 실행하지 않기 때문에
• 압축 및 인코딩을 지원하기 때문에
• 데이터를 캐슁하기 때문에
Cube메타데이터
• Dimension
• Measure
• Sum
• Count
• Max
• Min
• Average
• Distinct Count …
Cube생성 프로세스
• 원천 소스는 Hive Table  분석 대상 데이터는 HDFS에 파일로 저장, Hive 테이블로 구성되어야 함
• Hive Query와 MapReduce로 n-Cuboid를 생성
Cube생성 프로세스
• N-Cuboid를 MapReduce를 통해 *-1 Cuboid로 구성
• Apache HBase에 결과 데이터를 저장
Kylin으로Cube생성하기(1)–Model생성
Kylin으로Cube생성하기(2)–Cube생성
Kylin으로Cube생성하기(3)–Cube빌드
Kylin으로Cube생성하기(4)–Cube모니터링
KylinODBCDriver
• Kylin ODBC Driver를 통해 다양한 분석 및 시각화 도구 연동 가능
Kylin과MicrosoftExcel연동
• ODBC Driver를 통해서 Excel에서 Kylin에 연동
Kylin과MicrosoftPowerBI연동
• ODBC Driver를 통해서 Power BI에서 Kylin에 연동
Kylin과Tableau연동
• ODBC Driver를 통해서 Tableau에서 Kylin에 연동
KylinJDBCDriver
• Kylin JDBC Driver를 통해 다양한 분석 및 시각화 도구 연동 가능
ApacheKylin사용시지속적으로고려해야하는점
• Cube 설계 최적화
• Cube 생성 최적화
• Cube를 increment하게 일별로 지속적으로 생성하는 과정 중요
감사합니다
빅데이터본부 | FEA

Apache Kylin