MOLAP——Kylin总结

首先要明白什么是即席查询。即席查询是用户根据自己的需求,灵活的选择查询条件,系统根据用户的选择生成相应的统计报表。普通查应用查询是定制开发的,即席查询是用户自定义查询条件

1. OLAP分类

1.1 MOLAP

请添加图片描述

  • M即表示多维(Multidimensional)。大多数MOLAP产品均对原始数据进行预计算,得到用户可能需要的所有结果,将其存储到优化过的多维数组存储中, 能够稳定地快速响应,具有高性能。

  • 但高性能并不是没有代价的。首先,MOLAP需要进行预计算,这会花去很多时间。如果每次写入增量数据后均要进行全量预计算,显然是低效率的,因此支持仅对增量数据进行迭代计算非常重要。其次,如果业务发生需求变更,需要进行预定模型之外新的查询操作,现有的MOLAP实例就无能为力了,只能重新进行建模和预计算。

  • 因此,MOLAP适合业务需求比较固定,数据量较大的场景

1.2 ROLAP

  • R即表示关系型(Relational)。与MOLAP相反,ROLAP无需预计算,直接在构成多维数据模型的事实表和维度表上进行计算。更具可扩展性,增量数据导入后,无需进行重新计算,用户有新的查询需求时只需写好正确的SQL语句既能完成获取所需的结果。

  • 但ROLAP的不足也很明显,尤其是在数据体量巨大的场景下,用户提交SQL后,获取查询结果所需的时间无法准确预知,可能秒回,也可能需要花费数十分钟甚至数小时。本质上,ROLAP是把MOLAP预计算所需的时间分摊到了用户的每次查询上,肯定会影响用户的查询体验

  • 相比MOLAP,ROLAP的使用门槛更低,在完成星型或雪花型模型的构建,创建对应schema的事实表和维度表并导入数据后,用户只需会写出符合需求的SQL,就可以得到想要的结果。相比创建“数据立方体”,显然更加方便。

1.3 HOLA

  • H表示混合型(Hybrid),MOLAP和ROLAP各有优缺点,而且是互斥的。如果能够将两者的优点进行互补,那么是个更好的选择。对于查询频繁而稳定但又耗时的那些SQL,通过预计算来提速;对于较快的查询、发生次数较少或新的查询需求,像ROLAP一样直接通过SQL操作事实表和维度表。。

2. 概述

2.1 定义

Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口 及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay Inc 开发并贡献至开源社区。 它能在亚秒内查询巨大的 Hive 表。用空间换时间,预计算,是一个MOLAP系统

Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。

  1. 定义数据集上的一个星形或雪花形模型
  2. 在定义的数据表上构建cube
  3. 使用标准 SQL 通过 ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果

2.2 Kylin架构

请添加图片描述

  • REST Server Rest服务层。入口点,可以提供查询、获取结果、触发 cube 构建任务、获取元数据以及获取用户权限等等,另外可以通过 Restful 接口实现 SQL 查询。
  • Query Engine 查询引擎层。当 cube 准备就绪后,查询引擎就能够获取并解析用户查询。把SQL转化为认识的代码
  • Routing 路由层。Hive 与 Kylin 的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大 多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。 最后这个路由功能在发行版中默认关闭。
  • Metadata 元数据。是一款元数据驱动型应用程序,元数据管理工具保存 Kylin 中的所有元数据,其中包括最为重要的 cube 元数据。 Kylin 的元数据存储在 hbase 中。
  • Cube Build Engine Cube构建引擎。处理所有离线任务,其中包括 shell 脚本、Java API 以及 Map Reduce 任务等等。

2.3 工作原理和过程

Apache Kylin的工作原理本质上是MOLAP(多维立方体分析),即对数据模型做Cube预计算,并利用计算的结果加速查询

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

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

Kylin 的数据模型本质上是将二维表(Hive 表)转换为 Cube,然后将 Cube 存储到 HBase 表中,也就是两次转换。

  • 第一次转换,其实就是传统数据库的 Cube 化,Cube 由 CuboId 组成,下图每个节点都被称为一个 CuboId,CuboId 表示固定列的数据数据集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值