Apache顶级项目介绍系列5 - Kylin

阅读更多

Apache顶级项目介绍系列5 - Kylin_第1张图片

Apache顶级项目介绍5,我们迎来的中国自己的开源,来自本土eBay的顶级项目Kylin。神马?没听过? 别急,放心,Apache的顶级项目各个都身负绝技。

有人问,为什么突然介绍Kylin,呃,有小伙伴热情的提及的Kylin,希望来一篇介绍,本人之前有关注了解过,但没有深入研究过,所以我们先学现卖,符合入门介绍篇。

Kylin(麒麟),由eBay研发并贡献并于2014年10月开源,并于当年11月成为

Apache孵化器项目,是第一个主要由中国团队完整贡献给Apache的项目。去年2015年12月,Apache基金会ASF正式批准Kylin为顶级项目。其发展之快可谓迅猛,搭上了基于大数据的OLAP快车,同时也感慨开源之伟大与贡献.

 

老样子,一言已概之,Kylin官网(不敢恭维啊,文档宣传也要做做啊)介绍说,Kylin是一个开源分布式分析引擎,提供了基于Hadoop的超大型数据集(TB/PB级别)的SQL接口以及多维度的OLAP分布式联机分析。

上架构图:

Apache顶级项目介绍系列5 - Kylin_第2张图片

 

可以看到中华文化之麒麟,赞一下!很清晰的架构图,底层存储使用HBase, 数据输入以及Cube Building基于Hive, 中间数据存储HDFS, On Top of 核心引擎之上,提供了REST API, SQL Based Toll / JDBC/ODBC等。右边还有其核心基于HBase的低延迟OLAP Cube;什么叫低延迟,Kylin官方数据给出数百亿行数据查询延时需要保持在亚秒级别!Niubility!其实得益于HBase.

官网给出了几个简单步骤作为事例:

1.从star schema中识别一组Hive表

2.基于Hive表,offline batch构建cube

3.使用sql或者REST API, JDBC, ODBC查询

Kylin平台的设计思路其实并非全新,在过去关系数据库大行其道之日早有,简单来讲其思路就是把预先计算完成的结果保存起来以备分析查询, 利用所有可能纬度组合为每个层次生成cuboid(基本方体),又或是在不同层次上对全部指数进行计算。

科普一下,cube作为核心概念,英文叫多维立方体,cube好比一个坐标系,每个Dimension代表一个坐标系,其每个点的对应值需要从相对应每一个坐标轴取值去获取,这个点cube中称作cell。

cube的基本概念:纬度于度量

纬度Dimension: 纬度提供了分类,表示一类分析角度,纬度,如时间,产品,地域等。

度量Measure:表示聚合分析的数字信息,其集合构成另一个特殊纬度,如数量,金额等。

Apache顶级项目介绍系列5 - Kylin_第3张图片

 

Kylin的一个核心算法思想:一个n纬的完全Cube,1个n纬子立方体(Cuboid),n个(n-1)纬cuboid, n*(n-1)/2个(n-2)纬cuboid,n个纬cuboid,1个0纬cubid,总共2^n个字立方体组成;晕否?

举例来说,group by a, b结果,可以基于group by a,b,c的结果,通过去掉c后聚合得来,这样可以减少重复计算,当0纬度的cuboid计算出来的时候,真个

Cube的计算就大功告成!

拓扑图:

Apache顶级项目介绍系列5 - Kylin_第4张图片

核心思想,从关系型到key-value。当Hive中数据规模超过百亿,万亿水平,一些简单的问题如查询2015年销售额等就会带来巨大的表扫描,时间也会无法接受。所以cube完全进行预计算,并对结果加以存储。来个术语叫做:

Relational to Key-Value, KV.

Kylin正是构建在这套理论之上,并且充分借用发挥Hadoop生态系统的威力。

1.从Hive中读取数据(HDFS)

2.运行offline job Map/Reduce实现预计算处理

3.将运算结果cube保存到HBase

4.借助Zookeeper进行任务协调

算法中充分利用了MapReduce的能力,处理中间的复杂排序以及shuffle。其中对HDFS操作较多,每一层的key-value都需要写到hdfs,所有计算结束后需要将其转成HBase的HFile格式并导入。

好了,看看Kylin的容貌以及如何创建cube吧:

Apache顶级项目介绍系列5 - Kylin_第5张图片

 

 

呃,颜值一般般,恰如麒麟啊?

创建cube:

1.创建项目

Apache顶级项目介绍系列5 - Kylin_第6张图片

Apache顶级项目介绍系列5 - Kylin_第7张图片

2.导入hive
Apache顶级项目介绍系列5 - Kylin_第8张图片

3.创建数据模型

Apache顶级项目介绍系列5 - Kylin_第9张图片

4.创建cube

包括cube info,dimensions,measures等等。

5. offline job

Apache顶级项目介绍系列5 - Kylin_第10张图片
6. Tableau报表集成

 

Apache顶级项目介绍系列5 - Kylin_第11张图片
 

Kylin已经在eBay内部生产使用验证,处理其内部庞大数据集。性能优势明显。未来应该会继续支持更多Hadoop, Spark生态圈,提供快速实时OLAP,以及更多BI工具整合。

好了,我们先到这里了,感谢前eBay参与开发使用Kylin的资深专家的指导与探讨。鉴于现学现卖,各位极客们包涵。我们下一篇继续大数据三剑客!!!

 

公众号: 技术极客TechBooster

你可能感兴趣的:(Hadoop,Kylin,ZooKeeper,HBase,OLAP)