设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Kylin正式发布:面向大数据的终极OLAP引擎方案

2014-10-27 16:48| 发布者: joejoe0332| 查看: 2688| 评论: 0|原作者: CSDN|来自: CSDN

摘要: 日前,eBay公司隆重宣布已经正式向开源业界推出分布式分析引擎:Kylin(http://kylin.io)。作为一套旨在对Hadoop环境下分析流程进行加速、且能够与SQL兼容性工具顺利协作的解决方案,Kylin成功将SQL接口与多维分析 ...

  日前,eBay公司隆重宣布已经正式向开源业界推出分布式分析引擎:Kylin(http://kylin.io)。作为一套旨在对Hadoop环境下分析流程进行加速、且能够与SQL兼容性工具顺利协作的解决方案,Kylin成功将SQL接口与多维分析机制(OLAP)引入Hadoop,旨在对规模极为庞大的数据集加以支持。


背景信息

  eBay公司当前面临的主要挑战在于,数据规模正随着用户群体的多样化拓展而水涨船高。我们的用户——比如在分析与业务部门当中希望能在保持最低延迟水平的前提下继续使用自己所熟悉的工具方案,例如Tableau与Excel。
 
  有鉴于此,我们与公司内部的分析部门进行紧密合作,并勾勒出eBay眼中足以构成成功产品的基本要求:


1.数百亿数据行的查询延迟需要保持在次秒级别。 
2.能够为使用SQL兼容性工具的用户提供ANSI SQL。 
3.完整的OLAP方案以实现各类高级功能。 
4.拥有对高基数与超大规模业务体系的支持能力。 
5.面向成千上万用户的高并发性处理能力。 
6.能够处理TB乃至PB级别分析任务的分布式横向扩展架构。 


  我们很快意识到,没有任何一种外部解决方案能够切实满足我们的具体要求——特别是在开源Hadoop社区当中。为了解决企业业务面临的这一系列紧急状况,我们决定从零开始自主打造一套平台。在优秀的技术团队与部分试点客户的通力配合之下,我们已经能够在将Kylin平台引入生产环境的同时、为其发布一套开源版本。 


重点特性概述

  Kylin 是一套卓越的平台方案,能够在大数据分析领域实现以下各项特性: 

•  规模化环境下的极速OLAP引擎: Kylin的设计目的在于削减Hadoop环境中处理超过百亿行数据时的查询延迟时间。 
• Hadoop上的ANSI SQL接口:Kylin能够在Hadoop之上提供ANSI SQL并支持大部分ANSI SQL查询功能。 
•交互式查询功能:用户可以通过Kylin以秒级以下延迟水平实现与Hadoop数据的交互——在面对同一套数据集时,其性能表现优于Hive查询机制。 
•  利用MOLAP cube(立方体)对数百亿行数据进行查询: 用户能够在Kylin当中定义一套数据模型对其进行预构建,其中所能包含的原始数据记录可超过百亿行。 
•  与商务智能工具进行无缝化集成:Kylin目前能够与多种商务智能工具相集成,包括Tableau以及其它第三方应用程序。 
•  开源ODBC驱动程序: Kylin的ODBC驱动程序从零开始逐步构建而成,而且能够与Tableau实现良好的协作效果。我们也已经对这部分驱动程序进行开源处理并发布至技术社区当中。 


其它特性:

  • 任务管理与监控机制
  • 通过压缩与编码机制降低存储容量需求 
  • cube的增量式更新 
  • 利用HBase协处理器实现查询延迟控制 
  •  对不同计数进行近似查询的能力(HyperLogLog) 
  • 提供易于使用的Web界面,旨在对cube进行管理、构建、监控与查询
  • cube/项目层面对ACL进行设置的安全功能 
  • 支持LDAP集成 


基本设计思路

  Kylin平台的设计思路其实并非全新产生。在过去三十年当中,已经有很多技术方案使用到同样的理论依据来实现分析流程加速。具体而言,此类技术包括将预先计算完成的结果保存起来以备分析查询、利用所有可能的维度组合为每个层级生成cuboid(基本方体)、或者是在不同层级上对全部指数进行计算。
 

  下面这幅图片所示为cuboid的拓扑结构,供大家用作参考: 



  当数据规模变得越来越大时,预计算处理机制就会变得无法实现——即使硬件性能再强大也于事无补。不过在Hadoop强大的分布式计算能力支持下,计算任务能够借助成百上千个计算节点的总体资源。这就保证了Kylin能够以并发方式对这些计算任务进行处理,并通过合并生成最终结果——这能够显著降低整体处理时间。 


从关系型到键-值型 

  下面举一个实例,假设Hive表当中所保存的几条记录代表着一套关系型结构。当其数据规模增长到极其巨大的水平时——例如上百亿甚至过万亿行数据——那么像“2010年我们在美国本土售出了多少套技术类方案”这样的简单问题也将带来涵盖巨大数据量的表内容扫描,给出应答的延时状况也会变得无法接受。由于每一次运行查询时所需要的值是固定的,因此我们完全可以预先进行计算并对结果加以存储、以备日后随时调用。这项技术被称为从关系型到键-值型(Relational to Key—Value,简称KV)处理。处理过程将生成所有维度组合并如下图所示将测得值显示出来——图片右侧为计算结果。图片的中间一列内容由左至右表示的是这类大规模数据处理流程中数据是如何由Map Reduce进行计算的。  
                

  Kylin的构建正是以这套理论为基础,而且在对大规模数据进行处理时充分发挥了Hadoop生态系统的强大能力:

1. 从Hive当中读取数据(这些数据被保存在HDFS之上) 
2. 运行Map Reduce任务以实现预计算 
3. 将cuba数据保存在HBase当中 
4. 利用Zookeeper进行任务协调 



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部