`
weitao1026
  • 浏览: 1048135 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Kylin是什么

 
阅读更多
1.Apache Kylin是什么?

在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)
往往存在很大的局限,如难以水平扩展、无法处理超大规模数据、缺少对Hadoop的支持;而利用Hadoop做数据分析依然存在诸多障碍,例如大多数分析
师只习惯使用SQL,Hadoop难以实现快速交互式查询等等。神兽Apache Kylin就是为了解决这些问题而设计的。

Apache Kylin,中文名麒(shen)麟(shou) 是Hadoop动物园的重要成员。Apache
Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大
规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。

Apache
Kylin于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于2015年11月正式毕业成为Apache顶级项
目,也成为首个完全由中国团队设计开发的Apache顶级项目。于2016年3月,Apache
Kylin核心开发成员创建了Kyligence公司,力求更好地推动项目和社区的快速发展。

Kyligence是一家专注于大数据分析领域创新的数据科技公司,提供基于Apache
Kylin的企业级智能分析平台及产品,以及可靠、专业、源码级的商业化支持;并推出Apache Kylin开发者培训,颁发全球唯一的Apache
Kylin开发者认证证书。

2.Kylin的基本原理和架构

下面开始聊一聊Kylin的基本原理和架构。简单来说,Kylin的核心思想是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果保
存成Cube,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能
力。

上图所示就是一个Cube的例子,假设我们有4个dimension,这个Cube中每个节点(称作Cuboid)都是这4个dimension
的不同组合,每个组合定义了一组分析的dimension(如group
by),measure的聚合结果就保存在这每个Cuboid上。查询时根据SQL找到对应的Cuboid,读取measure的值,即可返回。

为了更好的适应大数据环境,Kylin从数据仓库中最常用的Hive中读取源数据,使用
MapReduce作为Cube构建的引擎,并把预计算结果保存在HBase中,对外暴露Rest
API/JDBC/ODBC的查询接口。因为Kylin支持标准的ANSI
SQL,所以可以和常用分析工具(如Tableau、Excel等)进行无缝对接。下面是Kylin的架构图。

说到Cube的构建,Kylin提供了一个称作Layer Cubing的算法。简单来说,就是按照dimension数量从大到小的顺序,从Base
Cuboid开始,依次基于上一层Cuboid的结果进行再聚合。每一层的计算都是一个单独的Map Reduce任务。如下图所示。

MapReduce的计算结果最终保存到HBase中,HBase中每行记录的Rowkey由dimension组成,measure会保存在
column
family中。为了减小存储代价,这里会对dimension和measure进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有
良好的快速响应和高并发。

有了这些预计算的结果,当收到用户的SQL请求,Kylin会对SQL做查询计划,并把本该进行的Join、Sum、Count Distinct等操作改写成Cube的查询操作。

Kylin提供了一个原生的Web界面,在这里,用户可以方便的创建和设置Cube、管控Cube构建进度,并提供SQL查询和基本的结果可视化。

根据公开数据显示,Kylin的查询性能不只是针对个别SQL,而是对上万种SQL 的平均表现,生产环境下90%ile查询能够在在3s内返回。在上个月举办的Apache Kylin

Meetup中,来自美团京东、百度等互联网公司分享了他们的使用情况。例如,在京东云海的案例中,单个Cube最大有8个维度,最大数据条数4亿,最
大存储空间800G,30个Cube共占存储空间4T左右。查询性能上,当QPS在50左右,所有查询平均在200ms以内,当QPS在200左右,平均
响应时间在1s以内。

北京移动也在meetup上展示了Kylin在电信运营商的应用案例,从数据上看,Kylin能够在比Hive/SparkSQL在更弱的硬件配置下获得更好的查询性能。 目前,有越来越多的国内外公司将Kylin作为大数据生产环境中的重要组件,如ebay、银联、百度、中国移动等。大家如果想了解更多社区的案例和动态,可以登录Apache Kylin官网或Kyligence博客进行查看。

3.Kylin的最新特性

Kylin的最新版本1.5.x引入了不少让人期待的新功能,可扩展架构将Kylin的三大依赖(数据源、Cube引擎、存储引
擎)彻底解耦。Kylin将不再直接依赖于Hadoop/HBase/Hive,而是把Kylin作为一个可扩展的平台暴露抽象接口,具体的实现以插件的
方式指定所用的数据源、引擎和存储。

开发者和用户可以通过定制开发,将Kylin接入除Hadoop/HBase/Hive以外的大数据系统,比如用Kafka代替Hive作数据源,用
Spark代替MapReduce做计算引擎,用Cassandra代替HBase做存储,都将变得更为简单。这也保证了Kylin可以随平台技术一起演
进,紧跟技术潮流。

在Kylin
1.5.x中还对HBase存储结构进行了调整,将大的Cuboid分片存储,将线性扫描改良为并行扫描。基于上万查询进行了测试对比结果显示,分片的存
储结构能够极大提速原本较慢的查询5-10倍,但对原本较快的查询提速不明显,综合起来平均提速为2倍左右。

除此之外,1.5.x还引入了Fast
cubing算法,利用Mapper端计算先完成大部分聚合,再将聚合后的结果交给Reducer,从而降低对网络瓶颈的压力。对500多个Cube任务
的实验显示,引入Fast cubing后,总体的Cube构建任务提速1.5倍。

目前,社区正在着手准备Apache Kylin 1.5.2版本的发布,目前正处于Apache Mailing list投票阶段,预计将会在本周在Kylin官网发布正式下载。

在本次的1.5.2版本中,Kylin带来了总计
36个缺陷修复、33个功能改进、6个新功能。一些主要的功能改进包括对HyperLogLog计算效率的提升、在Cube构建时对Convert
data to hfile步骤的提速、UI上对功能提示的体验优化、支持hive view作为lookup表等等。

另一个新消息是Kylin将支持MapR和CDH的Hadoop发行版,具体信息可见KYLIN-1515和KYLIN-1672。相应的测试版本是MapR5.1和CDH5.7。

UI上提供了一个重要更新,即允许用户在Cube级别进行自定义配置,以覆盖kylin.properties中的全局配置。如在cube中定义kylin.hbase.region.count.max 可以设置该cube在hbase中region切分的最大数量。


一个重要的功能是Diagnosis。用户经常会遇到一些棘手的问题,例如Cube构建任务失败、SQL查询失败,或Cube构建时间过长、SQL查询时
间过长等。但由于运维人员对Kylin系统了解不深,很难快速定位到root cause所在地。我们在mailing
list里也经常看到很多用户求助,由于不能提供足够充分的信息,社区也很难给出一针见血的建议。

当用户遇到查询、Cube/Model管理的问题,单击System页面的Diagnosis按钮,系统会自动抓取当前Project相关的信息并打包成
zip文件下载到用户本地。这个包会包含相关的Metadata、日志、HBase配置等。当用户需要在mailing
list求助,也可以附上这个包。
分享到:
评论

相关推荐

    Apache Kylin安装部署

    ### Apache Kylin安装部署知识点详解 #### 一、Apache Kylin简介 Apache Kylin是一款开源的分布式分析引擎,它能够为Hadoop提供SQL查询接口以及多维分析(OLAP)能力,尤其适用于处理大规模的数据集。Kylin最初由...

    apache kylin 搭建笔记

    Apache Kylin 环境搭建笔记 Apache Kylin 是一个基于分布式架构的企业级数据分析平台,由 Apache 软件基金会开发和维护。Kylin 环境搭建是一个复杂的过程,需要逐步配置和测试。本文将指导读者从头开始搭建 Apache ...

    Apache Kylin - Tuning - Dong Li

    ### Apache Kylin Cube和查询调优详解 #### 一、引言 Apache Kylin是一款开源的大数据分析引擎,它能够提供亚秒级响应速度的多维分析能力,特别适合大规模的数据集。随着数据量的增长,Kylin Cube可能会出现构建...

    Apache Kylin Tutorial 1.5

    Apache Kylin Tutorial, 官方网站整理而来。 Apache Kylin Tutorial Apache Kylin Tutorial Apache Kylin Tutorial Apache Kylin Tutorial Apache Kylin Tutorial

    藏经阁-从Apache Kylin技术负责人到CTO.pdf

    储经阁-从Apache Kylin技术负责人到CTO.pdf 本文档是关于李扬的职业发展经历,从 Apache Kylin 的技术负责人到 Kyligence 的 CTO。李扬的经历可以分为三个阶段:Apache Kylin 阶段、Kyligence 创业阶段和 CTO 阶段...

    Apache Kylin权威指南.pdf 高清完整版

    - **为什么使用 Apache Kylin**:对于具有大量数据的业务智能场景,传统的关系型数据库和 OLAP 系统难以满足实时分析的需求。Apache Kylin 提供了高性能的数据处理能力,能够处理 PB 级别的数据量,并且支持标准 ...

    Apache Kylin 2.0 之Spark构建引擎

    Apache Kylin 作为领先的大数据OLAP分析平台步入了2.0时代,正逐渐从Hadoop上的传统OLAP演变为一个实时数据仓库,新的版本支持灵活的雪花模型和更加全面的SQL语法,引入了更加先进的Spark Cubing构建引擎,更好地...

    Apache Kylin v1.6 之 新Streaming OLAP实现

    Apache Kylin是一个开源的分布式分析型数据仓库,专门针对大数据集进行快速的SQL查询分析。其v1.6版本标志着Kylin在Streaming OLAP(在线分析处理)方面的一项重大进步,提供了一个新的流数据处理机制。Kylin的目标...

    Apache Kylin权威指南 (大数据技术丛书).epub

    Apache Kylin权威指南 (大数据技术丛书).epub

    韩卿 Luke-Apache Kylin开源之旅/The Journey of Apache Kylin

    在介绍Apache Kylin之前,首先需要了解几个基础知识点。Hadoop是一个开源的框架,用于存储和处理大规模数据集,而OLAP(在线分析处理)则是一种信息技术,用于快速分析、多维度数据集合以获取业务智能。而SQL是一种...

    apache kylin4.0.1 源码编译所需jar包

    apache-kylin-4.0.1 源码所需jar包,一键打包。 只包含jar,不包括js相关内容 内部列表: kylin-shaded-guava-3.1.0.jar commons-configuration-1.6.jar RoaringBitmap-0.7.36-os-kylin-r1.jar commons-compiler-...

    Apache Kylin操作流程

    ### Apache Kylin操作流程详解 #### 一、Apache Kylin简介 Apache Kylin是一款开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区...

    基于Apache Kylin的云上大数据分析平台.pdf

    Apache Kylin是一个开源的、基于Hadoop的大数据分析平台,专门设计用于提供亚秒级的查询性能,即使在处理PB级别的数据时也能实现。这个技术主要针对大数据环境中的在线分析处理(OLAP)需求,旨在解决大数据量下快速...

    如何用Apache Kylin让Hive表查询提速千百倍

    Apache Kylin是一款开源的分布式大数据查询引擎,它是针对Hadoop平台上的OLAP(在线分析处理)应用而设计的。Kylin的最大特点在于能够对存储在Hadoop上的大规模数据集进行快速查询,显著提升数据检索速度,速度可...

    Apache Kylin权威指南

    《Apache Kylin权威指南》是一本深度探讨Apache Kylin的专著,旨在为读者提供全面、深入的Kylin知识,帮助他们理解和掌握这一强大的大数据分析工具。Apache Kylin是开源的分布式分析引擎,专为Hadoop环境设计,旨在...

    Apache Kylin技术文档(包括权威指南)

    Apache Kylin是一个开源的分布式分析引擎,专为大数据分析设计,提供亚秒级查询性能,支持PB级别的数据。Kylin最初由 eBay 开发,并于2015年贡献给了Apache软件基金会,成为顶级项目。本技术文档集合包含了多个关于...

    韩卿:Apache Kylin-Hadoop上的大规模联机分析平台

    介绍Apache Kylin的背景,技术架构及演进,产品功能和性能等内容,以及开源现状和发展方向等,例如与Spark/Drill等的集成等。Apache Kylin是由eBay研发并贡献给开源社区的Hadoop上的分布式大规模联机分析(OLAP)...

Global site tag (gtag.js) - Google Analytics