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