Kylin简介

一、什么是Kylin?

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。

通过Kylin,可以实现超大数据集的亚秒级查询。

另外一定要提的一点,Kylin是首个由中国人引导并完成开发的Apache顶级开源项目!

二、前提概要

在详细了解Kylin前,需要先了解以下几点知识。

OLAP(OnLine Analytical Processing)

OLAP名为联机分析处理,是用户可以快速,一致,交互地从各个方面更透彻的了解数据及信息。

维度:观察事物或分析数据时的角度,比如'时间'、'地点'、'产品类型'等,均为单一的角度。

维度层次:表示在同一维度概念上再次细分,例如'年-月-日','国家-市-区',均分为了三个层次。

维成员:表示当前层次,不再次细分时的具体某一成员,例如'2020年7月27日','中国-北京市-朝阳区'。

度量:在某一维度上所取到维成员的值。

OLAP按照存储器的数据存储格式又分为ROLAP、MOLAP和HOLAP。

ROLAP:基于关系型模型存放数据,事实表与维度表间有外键关联。在查询时使用SQL即可完成不同维度下的查询,不需要预计算。

MOLAP:基于多维数组存放数据,它是OLAP的最初形态。在查询之前需要对数据进行预处理,并将结果以cube的存放在数组中。

HOLAP:目前为止,业界还未对HOLAP进行统一定义。HOLAP它是ROLAP和MOLAP的混合结果,高度聚合的数据使用MOLAP存放,而颗粒度更细的数据则使用ROLAP的形式存放。

Kylin使用的就是MOLAP。

星型模型 & 雪花模型

星型模型 & 雪花模型 星型模型(Star Schema)是数据仓库维度建模中常用的数据模型之一。它的特点是 一张事实表,以及一到多个维度表,事实表与维度表通过主外键相关联,维度表之间 没有关联,就像许多小星星围绕在一颗恒星周围,所以名为星型模型。 另一种常用的模型是雪花模型(SnowFlake Schema),就是将星型模型中的某些维 表抽取成更细粒度的维表,然后让维表之间也进行关联,这种形状酷似雪花的的模型 称为雪花模型。

三、Kylin主要理念

Kylin的核心就是空间换时间。

下图中,一共有4个维度。除去0维,一共有15种情况。Kylin在预计算这15种情况时,第一种'A,B,C,D'这种情况由原始数据聚合而成,之后每层先通过MR计算'A,B,C,D'-'A,B,C','A,B,D','A,C,D','B,C,D'这种情况的结果,并根据维度逐级递减。每层递减时,每层的计算均为上一层MR任务结果的基础上再次进行计算。

四、Kylin架构

上图是Apache官方给出的Kylin架构图。

REST Server层:用户程序访问Kylin的入口。实现用户通过程序对Kylin进行访问,可实现Cube的创建、查询、获取元数据及权限配置等操作。

Query Engine层:用户在预计算生成Cube后,查询层可以快速响应用户的查询动作,并将结果返回给用户。

Routing层:路由层设计之初是为了在查询未预计算Cube的数据时可以转而直接查询Hive,但由于Cube查询仅几秒的时间就可以返回数据,而查询Hive表通常需要十几秒秒甚至几分钟到几十分钟,导致用户体验会变的极差。因此在后来Kylin默认配置关闭了此项功能。

Metadata层:Metadata层主要是Kylin的一些元数据,比如最重要的Cube信息等等。

Cube Build Engine层:Cube构建层主要负责数据的预计算并生成Cube,包括MR任务及其他java api等。

Kylin是依靠于Hadoop生态系统之上应用程序。它的数据来源为Hive表或Kafka流式数据以及其他关系型数据库中的数据。通过构建引擎,将预计算生成的Cube数据存到Hbase中,以供快速的查询响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值