Kylin(Extreme OLAP Engine for Big Data)

  概述

    Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。最初于2014年10月1日开源,并于同年11月加入Aapche孵化器项目,并在一年后的2015年11月顺利毕业成为Apache顶级项目,是eBay全球贡献至Apache软件基金会(ASF)的第一个项目,也是所有由在中国的华人团队总体贡献至Apache的第一个项目。 前端

在eBay,已经上线两个生产环境平台,有着诸多的应用,包括用户行为分析、点击分析、商户分析、交易分析等应用,最新的Streaming分析项目也已经上线。目前在eBay平台上最大的单个cube包含了超过1000亿的数据,90%查询响应时间小于1.5秒,95%的查询响应时间小于5秒。同时Apache Kylin在eBay外部也有不少的用户,包括京东、美团、百度地图、网易、惟品会、Expedia、Expotional等不少国内外公司也已经在实际环境中使用起来,把Apache Kylin做为他们大数据分析的基础之一。 web

在构建生态系统方面:一个应用很难单独的存在与一个企业中,无论是商业产品仍是开源项目。从一开始,Kylin就定下了只关注核心功能,尽量与整个产业链中的其它产品,项目及公司进行合做的方向。好比在前端展示方面和Tableau(Tableau helps people see and understand data)进行充分合做,在存储方面依靠HBase等。Apache Kylin的生态圈图从初版到如今没有太多的变化,只是增长了更多的朋友,例如Apache Zeppelin等,随着新版架构的改进,整个项目将与Spark,Kafka, Excel/PowerBI, Docker等造成更好的互补和整合,积极融入整个大数据生态圈并打造本身的生态系统。 算法

在eBay,已经上线两个生产环境平台,有着诸多的应用,包括用户行为分析、点击分析、商户分析、交易分析等应用,最新的Streaming分析项目也已经上线。目前在eBay平台上最大的单个cube包含了超过1000亿的数据,90%查询响应时间小于1.5秒,95%的查询响应时间小于5秒。同时Apache Kylin在eBay外部也有不少的用户,包括京东、美团、百度地图、网易、惟品会、Expedia、Expotional等不少国内外公司也已经在实际环境中使用起来,把Apache Kylin做为他们大数据分析的基础之一。 sql


1.1  Kylin是什么


(1)     可扩展超快的OLAP分析引擎 shell

Kylin设计于减小在Hadoop百亿级别数据行下的查询延迟。 数据库

(2)     基于HadoopANSI SQL(美国国家标准化组织(ANSI)) 数组

KylinHadoop提供标准SQL支持大部分查询功能。 缓存

(3)     交互式查询能力 安全

用户能够经过KylinHadoop数据进行低延迟交互,在同一数据集下比HIVE的查询效率高。 架构

(4)     MOLAP Cube(多维立方体)

MOLAP即基于多维数组的存储模型,也是最原始的OLAP,但须要对数据进行预处理才能造成多维结构。在Kylin中用户能够定义数据模型,而且对超过数百亿行的数据集进行预构建。关于数据立方体,维度与OLAP相关概念可参考:http://my.oschina.net/yjwxh/blog/629122

(5)     BI工具无缝集成

Kylin提供了与BI工具例如Tableau的集成。与微软Excel的集成也将会支持。

(6)     其余一些亮点

a)         任务的管理与监控

b)         压缩与编码的支持

c)         增量更新

d)         hbase协调处理来下降查询延迟

e)         基于HyperLogLogDistinct Count近似算法

f)          提供简单的WEB界面来管理,构建,监控和查询cubes

g)         项目及立方体级别的访问控制安全

h)         支持LDAP集成

1.2  Kylin生态

(1)     Kylin 核心:Kylin OLAP引擎的基础框架包含:元数据引擎、查询引擎、任务引擎以及存储引擎。它也包含了一个提供客户端请求的REST服务端。

(2)     扩展:基于插件机制的功能与特点的扩展。

(3)     集成:生命周期管理支持任务计划、ETL、监控和告警系统的集成。

(4)     用户界面:允在Kylin核心之上扩展的第三方用户界面。

(5)     驱动:JDBC/ODBC支持不一样的工具和产品例如Tableau

 

Kylin安装部署

2.1 安装需求

         Hadoop2.14+, Hive:0.13+, HBase0.98+, JDK1.7+

         一般来讲Kylin安装在Hadoop客户端机器上。能够做为样例使用,或者为那些想要集成kylin服务的web站点服务。场景描述以下

    

对于通常用例来讲,上图中的应用指的是Kylin web端,包含了一个web界面用于cube的建立,查询以及其余管理操做。Kylin web也启动一个查询引擎用于查询cube, 一个构建引擎用于构建cubes,,这两个引擎与hadoop组件交互,例如hivehbase

         Kylin启动: kylin.sh start

        访问kylin web客户端   ADMIN/KYLIN

    

    

三 kylin使用指南

3.1 使用样例cube快速开始

         执行kylin提供的sample.sh脚本,在hive、hbase生成相应的数据表

    经过hive shell客户端测试数据库表是否生成:

    检测是否在hbase生成相关元数据信息表:

    表已经生成,重启kylin,清除缓存。从新登陆kylin web端,并选择learn_kylin工程。

    登陆执行cube  Actions=>Build

    

    

    当cube build完成100%后,在Query下执行查询操做,查询语句:

select part_dt, sum(price) as total_selled, count(distinct seller_id) as sellers from kylin_sales group by part_dt order by part_dt

查询全部时间:2.25

使用hive直接查询所用时间:54s

    

    使用spark sql查询所用时间:首次17s, 以后10-11s左右。6个节点 8g/节点内存

    


   经过比较发现,kylin的查询效率仍是很高的。

四  在Zeppelin中集成Kylin

4.1 配置Zeppelin Interpreter


4.2 建立新的notebook测试kylin  

相关文章
相关标签/搜索