国人之光:大数据分析神器Apache Kylin

一、简介

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。之所以说它是国人之光,是因为它是首个由国人主导的Apache顶级开源项目,能在亚秒内查询巨大的表。

二、基本概念

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:5a44cb57-f23a-4e00-838e-45ceb408b1da

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:adcbd97b-8cb7-4e35-9121-9dfa3a0a7c9e

ID 客户号 交易日期 交易类型 金额 1 001 20201230 工资代发 1000000 2 002 20210101 转账 66666 3 003 20210115 信用卡还款 1888

查询某个客户在哪个时间进行某种交易的金额,这种是 多维分析,其中客户号、交易日期和交易类型是 维度(Dimensions),金额是 度量(Measures)

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:23ea6fcb-5edf-4f81-9222-811f9933bd0e

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:2701f4e6-cf72-403e-9a5b-dd41a811e1ce

对于一个多维模型,在查询上有多种组合,比如一维的:客户号/交易日期/交易类型二维的:客户号+交易日期/客户号+交易类型/交易日期和交易类型三维的:客户号+交易日期+交易类型对于每一种组合,称之为 Cuboid,这这些组合的统一,则是 Cube。Cube定义了使用的模型、模型的维度和度量等信息。

三、作用及原理

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:35805070-80df-4784-b6f0-c96fb2fedce9

[En]

[TencentCloudSDKException] code:FailedOperation.ServiceIsolate message:service is stopped due to arrears, please recharge your account in Tencent Cloud requestId:e49c7e69-8854-4712-95a0-d6ab8c8e4e75

别急,这不就准备讲了嘛。 Kylin是为减少在Hadoop/Spark上百亿规模数据查询延迟而设计的。

对于效率要求较高的大规模数据集的查询,尤其多维查询的时候,数据仓库中一般存在事实表和维度表,需要关联很多维度表,这就给查询带来一定的压力,查询效率低下。为了解决这个问题,Kylin应运而生。

但是Kylin为什么快呢?

主要是因为它的 预计算,它将多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。说到底就是用空间换时间。

大致流程 将数据源(比如Hive)中的数据按照指定的维度和指标,由计算引擎MapReduce离线计算出所有可能的查询结果(即Cube)存储到HBase中。HBase中每行记录的Rowkey由各维度的值拼接而成,度量会保存在column family中。为了减少存储代价,会对维度和度量进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有良好的快速响应和高并发。

四、Kylin的架构

Kylin的架构主要有这几个部分:

源数据:Hive、Kafka、RDBMS等;

对外查询接口:REST API、JDBC/ODBC;

存储引擎:HBase;

构建Cube的计算引擎

其中构建Cube的计算引擎模块如下:

REST Server:是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。

Query Engine:当cube准备就绪后,查询引擎就能够获取并解析用户查询。

Routing:查询路由,负责将解析的SQL生成的执行计划转换成cube缓存的查询,若查询没办法从cube缓存中获取,则下压至数据源进行查询。

Metadata:Kylin是由元数据驱动的。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。

Cube Build Engine:这套引擎的作用在于处理所有离线任务。

五、总结

本文大概介绍了Kylin以及一些相关的概念和原理、架构。更多内容可以去Kylin 官网进行了解.

Original: https://www.cnblogs.com/lyuzt/p/14301281.html
Author: 大数据的奇妙冒险
Title: 国人之光:大数据分析神器Apache Kylin

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/563020/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球