基于Apache Kylin构建大数据分析平台
上QQ阅读APP看书,第一时间看更新

3.4 Kylin的SQL查询

Kylin为Hadoop提供标准SQL支持大部分查询功能,因此我们可以通过提交SQL来查询预计算的结果数据。

Cube构建完成后,我们就可以查询维度对应的度量值了。查询的时候,SQL语句被SQL解析器翻译成一个解释计划,从这个计划可以准确知道用户要查哪些表,它们是怎样join起来,有哪些过滤条件等等。Kylin会用这个计划去匹配寻找合适的Cube。如果有Cube命中,这个计划会发送到存储引擎,翻译成对存储(默认HBase)相应的Scan操作。Group by和过滤条件的列,用来找到Cuboid,过滤条件会被转换成Scan的开始和结束值,以缩小Scan的范围。Scan的result、Rowkey会被反向解码成各个dimension的值,Value会被解码成Metrics值,同时利用HBase列存储的特性,可以保证Kylin有良好的快速响应和高并发。