背景:在测试过程中接触到这两个开源工具, 有一些困惑,zepplin也是从hive表中获取数据,kylin追根究底也是从hive中获取数据,而kylin中包含了预计算的多维立方体思想,速度要快上千万倍,为何要使用zepplin来即时查询呢。
1、kylin
kylin工作原理是MOLAP 多维立方体分析
维度:观察数据的角度(group by)
度量:被聚合的统计值
给定一个数据模型,我们可以对其上的所有维度进行组合,对于N维来说,组合的可能性有2的n次方,对于每一种维度的组合,将度量做聚合运算,然后将运行结果保存为物化视图,所有维度的组合的物化视图称为cube所以一个cube就是按许多维度聚合的物化视图的集合。(不会扫描原始记录)
当数据量集达到千亿及万亿,查询速度是其他非预计算1000倍以上。
默认数据源、构造引擎、存储引擎分别是:HIVE、mapreduce、hbase。
2、zepplin
zepplin是从hive表中查出数据,也就是“即时查询”,它使用的mepreduce、spark等计算引擎。
其实这两个本身是不同的工具,zepplin偏向于可视化展示,而kylin偏向于数据分析(从不同维度及各维度的关联关系)。
为什么说zepplin偏向于可视化展示工具,我们平时在linnux命令行中可以输出hive -e 来执行sql,这个会调用mapreduce引擎查询出结果显示在xshell上,而sparksql可以调用spark引擎查询出结果显示在xshell上。此时,我作为用户有这样的需求,我不想登录xshell输入查询命令,我想通过界面查看查询结果,并希望这些结果通过表格或者其他方式展现出来。这就是zepplin的价值所在。