小白篇(十六):大数据Kylin工作原理

获取原文

简短介绍


大家好,对于之前的kylin安装和使用,都有所理解了么?学习其实很多时候靠的是自觉。如果你还年轻,建议可以多深度的学习一些东西。好吧,今天给大家分享下kylin的一些原理,这些是我很早以前整理的资料了,不过也没有过时,还是能用上。

 

之前Apache kylin相关分享


安装篇:CDH集群下Apache Kylin3.1.0安装

问题篇:关于Kylin安装过程遇到的5个问题

小白篇(十五):大数据Kylin介绍和使用

 

 

01-Apache kylin发展历史

说明:kylin从2013年到现今,进行了4次大版本的迭代。其中引入了很多新特性,还是值得我们关注的。

 

02-Apache kylin Cube操作过程

说明:有动手实操过cube设计,或者看过之前我分享的kylin使用的小伙伴们应该知道。在创建cube时:

  • 首先需要选择维度表和事实表。

  • 之后设置需要计算的维度和度量等等。

  • 最终我们设计和计算出来的cube数据都将存放在hbase中。

 

说明:当我们的cube设计体现到物理上时,就是如图中显示的。

先是表关联,之后计算cube,最后结果根据不同维度组合落入多张hbase表中。

 

说明:在cube构建过程中,其实是很多次,不同维度的组合计算。最终将所有预计算的结果存放到hbase中。

 

03-Apache kylin原理架构

说明:kylin支持多种数据源的接入。当数据接入后,采用不同的计算引擎进行预计算。之后将数据存储到hbase中,最后可通过BI工具对kylin计算结果数据查询。

 

说明:kylin是单节点部署模式,同时kylin的部署分为2种类型的节点。一种是job,一种是query。

  • job节点:负责cube的创建和构建(一个集群只允许有一个job节点)

  • query节点:负责对结果数据进行查询(可以有多个query节点)

如果一个节点同时承担job和query的工作,那么类型设置为all。

 

说明:如果针对一种产品。我们想知道:产品在什么时间,什么地点,销售了多少。如果我们提前进行了预计算,是不是可以立马从中定位到数据呢?图中设计的维度:产品、时间、地点。针对维度进行预计算,得出所有的结果信息,就是我们的数据立方体。之后我们可以通过任意组合就能很快的获取到所需的数据。

 

说明:那么kylin是如何做的呢?kylin将所有维度组合,分别进行组合计算,之后生成不同的组合表,存入到hbase中。也就形成了我们所说的立方体。这里可以理解为2^N种组合。

 

说明:显然,如果进行所有维度的组合计算,将要进行2^N次计算。这是一个几何倍数的运算,非常的恐怖。那么kylin为了优化计算方法,进行维度的部分计算。从而大大减少计算次数。但是在后续查询时,还是需进行少量的查询计算。这就是kylin剪枝维度的过程。

 

 

说明:部分计算是kylin cube中一个很重要的优化点。这样有效的控制了维度组合的爆炸。图中白色部分是预计算的结果,灰色部分可以通过白色部分的结果来重新获取。所以有时不用计算所有维度。只是部分维度预计算,这样也大大缩短了我们预计算的时间。同时也节省了一些磁盘空间。

  • coubid就是计算结果将产生的hbase张数。这里最终会产生4张hbase表。

 

04-小结

kylin目前作为一款OLAP工具还是非常耀眼的。很多厂都在用它。所以小伙伴们可以多了解下哦。特别是cube优化这块。国产大数据组件还是蛮香的 ^_^

 

官网地址:http://kylin.apache.org/cn/docs/

 

架构概述图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值