apache-kylin 权威指南—读书笔记

1. 概述

kylin 是 OLAP 引擎,采用多维立方体预计算技术,可将大数据的 SQL 查询速度提升到亚秒级别。

需求:

虽然像 spark,hive 等使用 MPP 大规模并行处理和列式存储的方式,可以将 Hadoop 的 SQL查询提高到了分钟级别,但是仍然不能满足数据分析师的要求。在面对超大规模的数据集时,分析师不要讲更多的精力花在等待查询结果上,而不是更加重要的建立领域模型上。

kylin 就是要打破查询时间随着数据量成线性增长的规律,采用的思路就是 “预计算”

它会尽量的预先计算聚合结果,在查询时刻尽量的使用预算的结果得出查询结果,从而避免直接扫描可能无限增长的原始记录。

预计算是 Kylin 在大规模并行处理和列式存储外,提供给大数据分析的第 3 个关键技术。

工作原理

kylin 的工作原理本质上是多维立方体分析 MOLAP multidimensional online analytical processing cube.

在讲解工作原理前,涉及到维度 dimension 和度量 measure 的概念。

维度就是观察数据的角度。

度量就是被聚合的统计值,也是聚合运算的结果,一般是连续的值。

根据维度和度量可以得到下面做预计算的 Cube 理论

给定一个数据模型,可以对其上的所有维度进行组合。对于 N 个维度来说,组合的可能性就有 2^n 种。对每种维度的组合,将度量做聚合运算,然后将运算的结果保存为一个物化视图,叫做 Cuboid。所有维度组合的 Cuboid 作为一个整体,就称为 Cube。

kylin 的工作原理就是对数据模型做 Cube 预计算,并利用计算的结果加速查询,具体工作过程如下

1) 指定数据模型,定义维度和度量

2)预计算 Cube,计算所有 Cuboid 并保存为物化视图

3) 执行查询时,读取 Cuboid,运算产生查询结果

kylin 的查询过程不会扫描原始记录,而是通过预计算预先完成表的关联,聚合等复杂运算,并利用预计算的结果来执行查询。

猜你喜欢

转载自www.cnblogs.com/reycg-blog/p/9076122.html