由于mapreduce查询过慢,spark可以缓存,但是时间久了,数据量缓存很大,hbase不能聚合,mysql数据量上百万很慢,引入kylin
2、概述Apache Kylin是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)
3、核心思想预计算,预先将所有维度组合以及统计的指标全部计算出来,将结果保存到hbase中,对外提供sql查询的入口,直接从hbase中查询结果返回给用户
需要优化:对cube剪枝,直线最大维度组合数,增加必选维度,增加层级关系维度
将数据连接导入后,可以将数据的所有组合情况进行预计算,(组合个数为维数)
cube是所有的dimensions(维度)组合
5、dimensions维度分类(做最大维度的限制,分组的字段,限定数据的 大小)(1)Normal:为最常见的类型,与所有其他的dimension组合构成cuboid。
(2)Mandatory:在每一次查询中都会用到dimension,选中,就会过滤掉很多的Code了
(3)Hierarchy:为带层级的dimension,比如说:省份->城市, 年->季度->月->周->日;以用于做drill down
(4)Derived:指该dimensions与维表的primary key是一一对应关系,可以更有效地减少cuboid数量,详细的解释参看这里;并且derived dimension只能由lookup table的列生成



