日前,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实现良好的协作效果。我们也已经对这部分驱动程序进行开源处理并发布至技术社区当中。
其它特性:
基本设计思路
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进行任务协调
架构
以下图表所示为Kylin的高层架构。
以上图表勾勒出Cube构建引擎(Cube Build Engine)是如何以离线处理方式将关系型数据转化成键-值型数据的。其中的黄线部分还表现出在线分析数据的处理流程。数据请求可以利用基于SQL的工具由SQL提交而产生,或者利用第三方应用程序通过Kylin的RESTful服务来实现。RESTful服务会调用Query Engine,后者则检测对应的目标数据集是否真实存在。如果确实存在,该引擎会直接访问目标数据并以次秒级延迟返回结果。如果目标数据集并不存在,该引擎则会根据设计将无匹配数据集的查询路由至Hadoop上的SQL处、即交由Hive等Hadoop集群负责处理。
以下为关于Kylin平台内所有组件的详细描述。
•元数据管理工具(Metadata Manager): Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。
•任务引擎(Job Engine): 这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。
•存储引擎(Storage Engine): 这套引擎负责管理底层存储——特别是cuboid,其以键-值对的形式进行保存。存储引擎使用的是HBase——这是目前Hadoop生态系统当中最理想的键-值系统使用方案。Kylin还能够通过扩展实现对其它键-值系统的支持,例如Redis。
•REST Server: REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。
•ODBC驱动程序:为了支持第三方工具与应用程序——例如Tableau——我们构建起了一套ODBC驱动程序并对其进行了开源。我们的目标是让用户能够更为顺畅地采用这套Kylin平台。
•查询引擎(Query Engine):当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。
在Kylin当中,我们使用一套名为Apache Calcite的开源动态数据管理框架对代码内的SQL以及其它插入内容进行解析。Calcite架构如下图所示。(Calcite最初被命名为Optiq,由Julian Hyde所编写,但如今已经成为Apache孵化器项目之一。)
Kylin在eBay公司中的应用
在对Kylin进行开源化处理的同时,我们已经在eBay公司的多个业务部门当中将其应用于生产实践。其中规模最大的用例就是对由120多亿条源记录所生成的超过14TB cube数据进行分析。90%的查询请求都能在5秒钟之内获取到返回结果。现在,我们拥有更多面向分析师以及业务用户的用例,他们能够访问这些分析机制并轻松通过Tableau仪表板获取相关结果——而不再需要借助Hive查询或者shell命令等复杂机制。
下一步发展规划
• 在高基数维度上支持TopN算法(即对大量对象进行排序并从中选取前N位结果):目前的MOLAP技术在高基数维度上进行查询时的表现尚算不上完美——例如对单一列中的数百万个不同值进行TopN运算。
与各类搜索引擎类似(正如众多研究人员所指出),倒排索引是此类预构建结果的理想匹配机制。
• 支持混合OLAP(简称HOLAP):MOLAP在历史数据查询领域拥有出色的实际表现,但由于越来越多数据需要以实时方式加以处理,因此我们需要尽快将实时/近实时处理结果与历史结果结合起来、以作为业务决策中的参考信息。很多内存内技术方案已经能够以关系型OLAP(简称ROLAP)的方式满足上述需求。而Kylin的下一代版本将成为混合OLAP(简称HOLAP),即结合MOLAP与ROLAP双方的优势以带来单一一套面向前端查询的入口点方案。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03