Kylin概述
Kylin是ebay开发的一套OLAP系统,它是一个MOLAP系统,主要用于支持大数据生态圈的数据分析业务,采用多维立方体(Cube)预计算技术,它主要是通过预计算的方式将用户设定的多维立方体缓存到HBase中,通过预计算的方式缓存了所有需要查询的的数据结果,需要大量的存储空间(原数据量的10+倍),可以将某些场景下的大数据 SQL 查询速度提升到亚秒级别。
1、Kylin的优点和缺点?
优点:预计算,界面可视化
缺点:依赖较多,属于重量级方案,运维成本很高
不适合做即席查询
预计算量大,非常消耗资源
2、Kylin的rowkey如何设计?
Kylin rowkey的编码和压缩选择
维度在rowkey中顺序的调整,
将过滤频率较高的列放置在过滤频率较低的列之前,
将基数高的列放置在基数低的列之前。
在查询中被用作过滤条件的维度有可能放在其他维度的前面。
充分利用过滤条件来缩小在HBase中扫描的范围, 从而提高查询的效率。
3、Kylin的cuboid,cube和segment的关系?
Cube是所有cubiod的组合,一个cube包含一个或者多个cuboid
Cuboid 在 Kylin 中特指在某一种维度组合下所计算的数据。
Cube Segment 是指针对源数据中的某一片段,全量构建的cube只存在唯一的segment,该segment没有分割时间的概念,增量构建的cube,不同时间的数据分布在不同的segment中
4、kylin你一般怎么调优
Cube调优
l剪枝优化(衍生维度,聚合组,强制维度,层级维度,联合维度)
l并发粒度优化
lRowkeys优化(编码,按维度分片,调整维度顺序)
l降低度量精度
l及时清理无用的segment
Rowkey调优
lKylin rowkey的编码和压缩选择
l维度在rowkey中顺序的调整,
l将过滤频率较高的列放置在过滤频率较低的列之前,
l将基数高的列放置在基数低的列之前。
l在查询中被用作过滤条件的维度有可能放在其他维度的前面。
充分利用过滤条件来缩小在HBase中扫描的范围, 从而提高查询的效率。
5、为什么kylin的维度不建议过多?
Cube 的最大物理维度数量 (不包括衍生维度) 是 63,但是不推荐使用大于 30 个维度的 Cube,会引起维度灾难。
6、Kylin cube的构建过程是怎么样的?
选择model
选择维度
选择指标
cube设计(包括维度和rowkeys)
构建cube(mr程序,hbase存储元数据信息及计算好的数据信息)
7、Kylin维度优化有几种类型?
衍生维度
聚合组
强制维度
层级维度
联合维度
8、cube优化?
剪枝优化(衍生维度,聚合组,强制维度,层级维度,联合维度)
并发粒度优化
Rowkeys优化(编码,按维度分片,调整维度顺序)
降低度量精度
及时清理无用的segment