Kylin基本介绍

一、什么是Kylin

  Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。 ——摘自官网

二、Kylin架构图

三、Kylin特性

(1)可扩展超快OLAP引擎:为减少在Hadoop/Spark上百亿规模数据查询延迟而设计;

(2)交互查询能力:通过Kylin用户可以与Hadoop数据进行亚秒级交互,在同样的数据集上提供比Hive更好的性能;

(3)Hadoop ANSI SQL接口:Kylin为Hadoop提供标准SQL接口,支持大部分查询功能;

(4)多维立方体MOLAP Cube:用户在Kylin中能为百亿以上的数据集定义数据模型并构建立方体;

(5)与BI无缝整合:与Tableau、MSTR、QlikSense、Hue、SuperSet和PowerBI/Excel等能无缝整合;

(6)增量更新:支持数据增量更新;

(7)权限控制:项目及表级别的访问控制安全;

四、Kylin生态圈

(1)核心:引擎框架包括元数据引擎、查询引擎、Job引擎及存储引擎等,同时包括REST服务器以响应客户端请求;

(2)扩展:支持额为功能和特性插件;

(3)整合:与调度系统、ETL、监控等生命周期管理系统的整合;

(4)界面:在Kylin核心基础上扩展的第三方用户界面;

(5)驱动:JDBC和ODBC驱动以支持不同的工具和产品;

五、Kylin四个过程

(1)数据源:Hive(默认)、kafka

(2)计算:构建Cube多维立方体

(3)存储:Hbase

(4)解析:Kylin SQL解析器

  Kylin采用预计算模式,用户只需提前定义好查询维度,Kylin会将计算结果存储到Hbase,为海量数据的查询和分析提供亚秒级返回。以空间换时间的解决方案!实际是用穷举的办法把所有可能涉及到的维度的组合结果算一遍,然后存到Hbase,利用Hbase亚秒级查询性能返回结果。

六、Kylin维度组合模式

(1)Normal:正常模式,N个维度可以构建2N个Cube。

(2)Mandatory:强制模式,当某个维度设置为mandatory,该维度会出现在所有的cube中。比如时间维度。

  例如:A、B、C,A为mandatory模式,那么构建cube的组合数为C20+C21+C22=4。

(3)Hierarchy:维度间通过依赖关系决定构建cube的组合关系,只有父维度存在子维度才会生效。比如国家、省份和城市这类字段。

  例如:A、B、C,B依赖A,C依赖B,那么构建cube的组合数为3,A->B->C、A->B和A。

(4)Derived:衍生模式:一个或多个维度可以由另外一个维度生成。有外键的情况下,假设有外键列A,table表中B,C列且B为主键。列A和列B有映射关系,那么查询列A的同时kylin会自动查询table表B列。该模式下cube构建的组合为AC、A和C。

(5)Joint:联合模式,有些维度单独统计是没有意义的,要么同时出现要么不出现。例如维度A和B是Joint关系,那么构建cube的组合是AB、ABC和C。

(6)Aggregation Group:聚合模式,Max Dimension Combination最大的维度组合数量设置为2,则构建cube的组合数为AB、AC、BC、A、B和C。

  

原文地址:https://www.cnblogs.com/echoty/p/11209142.html