kylin 优化

来源:互联网 发布:安卓版本 知乎 编辑:程序博客网 时间:2024/06/07 11:59

简介
kylin sql的执行会在所使用的维度列在cube中选择最合适的cuboid,以最大程度节省查询时间,一个Cuboid对应着一组分析的维度,并保存了度量的聚合结果。Cube就是所有Cuboid的集合,每个节点代表一个Cuboid,每一种维度的组合,将度量做聚合运算,然后将运算的结果保存为一个物化视图,称为Cuboid。所有维度组合的Cuboid作为一个整体,被称为Cube。可以理解为,一个Cube就是许多按维度聚合的物化视图的集合。
kylin的设置优点在于不同 impala等mpp架构,采用的Cube预计算技术。预计算事先将数据按维度组合进行了聚合,将结果保存为物化视图。经过聚合,物化视图的规模就只由维度的基数来决定,而不再随着数据量的增长呈线性增长。数据的增长并不会改变聚合维度的增长,聚合后的物化视图将依旧是原先的大小,查询的速度也将保持不变,而mpp架构小量数据的时候性能表现的较为优异,当数据量翻倍的时候,对应的响应时间也会翻倍,扩容成本较高,对应kylin来说查询响应速度 跟体现在单台服务器的性能上,扩展成本低
1.减少不必要的维度
当维度数量过多,就会导致Cuboid数量以指数级膨胀
2.降低维度基数
如果维度基数过大,还会使所在的Cuboid结果集变大,数据膨胀
3.设置必须维度
设置层级维度,低基数维度,减少温度组合Cuboid的集合
4.需要适时地将一些Segment进行合并
合并相同的Key,从而减少Cube的存储空间,减少htable的数量,提高二次聚合的速度,提高响应性能

KAP的配置文件包括几个部分:kylin.properties,kylin_hive_conf.xml,kylin_job_conf.xml,kylin_job_conf_inmem.xml。其中kylin.properties是KAP的主要配置参数,控制KAP的运行时行为,kylin_hive_conf.xml用于配置KAP与Hive交互的参数,kylin_job_conf.xml用于配置KAP与Hadoop集群交互的参数,其中kylin_job_conf_inmem.xml用在in-memory构建算法,kylin_job_conf.xml用在layer构建算法。