建模原理
MOLAP 是一种用空间换时间的方式。既然 OLAP 的特点是满足快速的复杂分析查询,而它对性能的影响主要体现在多种维度的组合、聚合上。所以,与其查询的时候进行计算,不如直接将结果预先计算出来,然后进行存储,这样便可以对之后的查询性能带来极大的提升。但这样也损失了灵活性,并需要大量的空间用于存储。
那这种预计算结果以什么形式存储呢?Cube 模型。
Cube 模型
Cube 模型是以多维数组的方式,物化到存储系统中,加快后续的查询。
它是一个数据立方体,类似魔方的形状。
它的使用方法也类似于魔方一样,不管从哪个维度查询都很快,而且查询时各个维度可以灵活进行组合。因为提前做好了聚合运算,所以性能上非常优秀。
但生成 CUBE 需要大量的时间、空间。维度的预处理也可能会导致数据的膨胀。
常见 MOLAP 产品
常见的 MOLAP 产品有 Kylin、Druid。
其中 Druid 是时序数据库,有它特定的应用场景。Kylin 的场景较为通用,是 MOLAP 开源产品的代表。