写点什么

Apache Kylin 权威指南(一):背景历史和使命

  • 2020-04-13
  • 本文字数:3805 字

    阅读完需:约 12 分钟

Apache Kylin权威指南(一):背景历史和使命

编者按:本文节选自华章科技大数据技术丛书 《Apache Kylin 权威指南(第 2 版)》一书中的部分章节。

背景和历史

现今,大数据行业发展得如火如荼,新技术层出不穷,整个生态欣欣向荣。作为大数据领域最重要的技术的 Apache Hadoop 最初致力于简单的分布式存储,然后在此基础之上实现大规模并行计算,到如今在实时分析、多维分析、交互式分析、机器学习甚至人工智能等方面有了长足的发展。


2013 年年初,在 eBay 内部使用的传统数据仓库及商业智能平台碰到了“瓶颈”,传统架构只支持垂直扩展,通过在一台计算机上增加 CPU 和内存等资源来提升计算机的数据处理能力。相对于数据指数级的增长,单机扩展很快达到极限,不可避免地遇到了“瓶颈”。此外,Hadoop 大数据平台虽然能存储和批量处理大规模数据,但与 BI 平台的连接技术还不够成熟,无法提供高效的交互式查询。于是,寻找到更好的交互式大数据分析方案成为当务之急。


2013 年年中,eBay 公司启动了一个大数据项目,其中有一部分内容就是 BI on Hadoop 的预研。当时,eBay 中国卓越中心组建了一支很小的团队,他们在分析和测试了多种开源和商业解决方案后,发现没有一种方案能够完全满足当时的需求,即在超大规模数据集上提供秒级的查询性能,并基于 Hadoop 与 BI 平台无缝整合等。在研究了多种可能性后,eBay 最终决定自己来实现一套 OLAP-on-Hadoop 的解决方案,以弥补业界的此类空白。与此同时,eBay 也非常鼓励各个项目开源、回馈社区,在给负责整个技术平台的高级副总裁做汇报的时候,得到的一个反馈就是“从第一天起就做好开源的准备”。


经过一年多的研发,2014 年 9 月底,代号 Kylin 的大数据平台在 eBay 内部正式上线。Kylin 在 Hadoop 上提供标准和友好的 SQL 接口,并且查询速度非常快,原本要几分钟才能完成的查询现在几秒钟就能返回结果,BI 分析的工作效率得到几百倍的提升,获得了公司内部客户、合作伙伴及管理层的高度评价,一上线便吸引了多个种子客户。2014 年 10 月 1 日,Kylin 项目负责人韩卿将 Kylin 的源代码提交到 github.com 并正式开源。当天就得到了业界专家的关注和认可。图 1 所示为 Hortonworks 的 CTO 对 Apache Kylin 的 Twitter 评价。



图 1 Hortonworks 的 CTO 对 Apache Kylin 的 Twitter 评论


很快,Hadoop 社区的许多朋友都鼓励 eBay 将该项目贡献到 Apache 软件基金会(ASF),让它与其他大数据项目一起获得更好的发展,在经过一个月的紧张准备和撰写了无数个版本的项目建议书后,Kylin 项目于 2014 年 11 月正式加入 Apache 孵化器项目,并由多位资深的社区活跃成员做项目导师。


在接下来的一年中,项目组再次做出了极大努力,包括按照 Apache 孵化器要求组建项目管理委员会(PMC)、建立项目网站、整理知识产权并签署必要协议、吸引外部开发者、发展多元化社区、发布多个正式版本等。2015 年 11 月,Apache 软件基金会宣布 Apache Kylin 正式成为顶级项目。


这是第一个完全由中国团队贡献到全球最大的开源软件基金会的顶级项目。项目负责人韩卿成为 Apache Kylin 项目管理委员会主席,也成为 Apache 软件基金会 160 多个顶级项目中的第一个中国人,Apache Kylin 创造了历史。正如 Kylin 的导师,时任 Apache 孵化器副总裁的 Ted Dunning 在 ASF 官方新闻稿中评价的那样:“Apache Kylin 代表了亚洲国家,特别是中国,在开源社区中越来越高的参与度。”


2016 年 3 月,由 Apache Kylin 核心开发者组建的创业公司 Kyligence 正式成立。正如多数成功的开源项目背后都有一家创业公司一样(Hadoop 领域有 Cloudera、Hortonworks 等;Spark 有 Databricks;Kafka 有 Confluent 等),Kylin 也可以通过 Kyligence 公司的进一步投入保证高速研发,并且 Kylin 的社区和生态圈也会得到不断的发展和壮大,可以预见这个开源项目将会越来越好。


在业界极具盛名的技术类独立评选中,InfoWorld 的 Bossie Award 每年都会独立挑选和评论相关的技术、应用和产品等。2015 年 9 月,Apache Kylin 与 Apache Spark、Apache Kafka、H2O、Apache Zeppelin 等一同获得了 2015 年度“最佳开源大数据工具奖”。这是业界对 Apache Kylin 的充分认可和褒奖。2016 年的 InfoWorld 获奖榜单进一步收窄,获奖者数量较前一年减少一半,一些新兴项目如 Google 领导的 TensorFlow、Apache Beam 崭露头角,值得骄傲的是,Apache Kylin 再次登上领奖台,蝉联“最佳开源大数据工具奖”。


Apache Kylin 在社区开发者的共同努力下进一步发展和完善,先后发布了 1.6、2.0~ 2.5 多个版本,涵盖近实时流、Spark 引擎、RDBMS 数据源、Cube Planner,支持 Hadoop 3.0 等众多新功能,还有一些新功能正在进行公开 beta 测试,如 Parquet 存储引擎、完全实时流数据等,预计在不远的将来会正式发布。同时,Apache Kylin 用户群也在不断发展壮大,跨越亚洲、美洲、欧洲、澳洲等地。据粗略计算,全球已经有超过一千家企业将 Apache Kylin 用于自身的关键业务分析。

Apache Kylin 的使命

Apache Kylin 的使命是实现超高速的大数据 OLAP 分析,也就是要让大数据分析像使用数据库一样简单迅速,用户的查询请求可以在秒级返回,交互式数据分析以前所未有的速度释放大数据里潜藏的知识和信息,以使我们在面对未来的挑战时占得先机。

为什么要使用 Apache Kylin

自 2006 年 Hadoop 诞生以来,大数据的存储和批处理问题得到了妥善解决,而如何高速地分析数据也就成为下一个挑战。于是各种“SQL-on-Hadoop”技术应运而生,其中以 Hive 为代表,Impala、Presto、Phoenix、Drill、Spark SQL 等紧随其后,它们的主要技术是“大规模并行处理”(Massively Parallel Processing,MPP)和“列式存储”(Columnar Storage)。


大规模并行处理可以调动多台机器进行并行计算,用线性增加资源来换取计算时间的线性下降。列式存储则将记录按列存放,不仅在访问时可以只读取需要的列,更可以利用存储设备擅长连续读取的特点,大大提高读取的速率。这两项关键技术使得 Hadoop 上的 SQL 查询速度从小时级提高到了分钟级。


然而分钟级别的查询响应仍然与交互式分析的现实需求相差很远。分析师敲入查询指令,按下回车键后,需要去倒杯咖啡,静静地等待结果。得到结果后才能根据情况调整查询,再做下一轮分析。如此反复,一个具体的场景分析常常需要几个小时甚至几天才能完成,数据分析效率低下。


这是因为大规模并行处理和列式存储虽然提高了计算和存储的速度,但并没有改变查询问题本身的时间复杂度,也没有改变查询时间与数据量呈线性增长的关系这一事实。假设查询 1 亿条记录耗时 1 分钟,那么查询 10 亿条记录就需要 10 分钟,查询 100 亿条就至少需要 1 小时 40 分钟。


当然,有很多的优化技术可以缩短查询的时间,比如更快的存储、更高效的压缩算法等,但总体来说,查询性能与数据量呈线性相关这一事实无法改变。虽然大规模并行处理允许十倍或者百倍地扩张计算集群,以期保持分钟级别的查询速度,但购买和部署十倍、百倍的计算集群又很难做到,更何况还需要高昂的硬件运维成本。


另外,对于分析师来说,完备的、经过验证的数据模型比分析性能更加重要,直接访问纷繁复杂的原始数据并进行相关分析其实并不是很美好的体验,特别是在超大规模数据集上,分析师们把更多的精力花费在了等待查询结果上,而不是用在更加重要的建立领域模型上。

Apache Kylin 怎样解决关键问题

Apache Kylin 的初衷就是解决千亿、万亿条记录的秒级查询问题,其中的关键就是打破查询时间随着数据量呈线性增长的这一规律。仔细思考大数据 OLAP,我们可以注意到两个事实。


  • 大数据查询要的一般是统计结果,是多条记录经过聚合函数计算后的统计值。原始的记录则不是必需的,或者被访问的频率和概率极低。

  • 聚合是按维度进行的,而维度的聚合可能性是有限的,一般不随数据的膨胀而线性增长。


基于以上两点,我们得到一个新的思路—“预计算”。应尽量多地预先计算聚合结果,在查询时刻也尽量使用预计算的结果得出查询结果,从而避免直接扫描可能无限增长的原始记录。


举例来说,要用下面的 SQL 来查询 10 月 1 日那天销量最高的商品。


SELECT item, SUM(sell_amount)FROM sell_detailsWHERE sell_date='2016-10-01'GROUP BY itemORDER BY SUM(sell_amount) DESC
复制代码


传统的方法需要扫描所有的记录,找到 10 月 1 日的销售记录,然后按商品聚合销售额,最后排序返回。假如 10 月 1 日有 1 亿条交易,那么查询必需读取并累计至少 1 亿条记录,且查询速度会随将来销量的增加而逐步下降,如果日交易量提高至 2 亿条,那查询执行的时间可能会增加一倍。


而预计算的方法则会事先按维度[sell_date, item]计算 SUM(sell_amount)并将其存储下来,在查询时找到 10 月 1 日的销售商品就可以直接排序返回了。读取的记录数最大不超过维度[sell_date, item]的组合数。显然这个数字将远远小于实际的销售记录,比如 10 月 1 日的 1 亿条交易包含了 100 万种商品,那么预计算后就只有 100 万条记录了,是原来的百分之一。并且这些记录是已经按商品聚合的结果,省去了运行时的聚合运算。从未来的发展来看,查询速度只会随日期和商品数目的增长而变化,与销售记录总数不再有直接联系。假如日交易量提高一倍到 2 亿,但只要商品总数不变,那么预计算的结果记录总数就不会变,查询的速度也不会变。


“预计算”就是 Kylin 在“大规模并行处理”和“列式存储”之外,提供给大数据分析的第三个关键技术。


图书简介https://item.jd.com/12566389.html



2020-04-13 10:001577

评论

发布
暂无评论
发现更多内容

牛皮!GitHub上标星90.6K的Java面试指南+笔记

Java你猿哥

Java 程序员 面试 ssm java核心知识点

【4.21-4.28】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

2023 年最新版Java面试题及答案整理(纯干货,超详细)

架构师之道

Java 面试

boot-admin整合Quartz实现动态管理定时任务

Java你猿哥

Java 架构 ssm vue admin springboot整合quartz

叹服!华为高工手写344页高性能Java架构核心原理实战大神手册

做梦都在改BUG

Java 架构 高并发

软硬件负载均衡 IP 地址透传

TiDB 社区干货传送门

数据库架构设计 数据库连接

大白话讲解synchronized锁升级套路

做梦都在改BUG

TiDB x Flink 数据集成实践

TiDB 社区干货传送门

我用Bitmap实现亿级数据统计

Java你猿哥

Java redis 架构 ssm BitMap

一文理清 TiDB 与 MySQL 中的常用字符集及排序规则

TiDB 社区干货传送门

新版本/特性解读 6.x 实践

TiDB x Flink x Iceberg 实时 ODS 实践

TiDB 社区干货传送门

深度学习模型可视化-keras版

AIWeker

Python 深度学习 可视化 keras 三周年连更

BSN-DDC基础网络详解(十):官方DDC应用SDK

BSN研习社

人类 vs AI:玩梗大作战,看看谁是最后的赢家?

LigaAI

测评 ChatGPT 文心一言 GPT-4 企业号 4 月 PK 榜

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

Java你猿哥

Java 架构 面试 分布式 java基础

你真的理解 Golang 切片吗?全切片表达式及切片使用技巧

宇宙之一粟

Go 切片 三周年连更

汽车电阻:新能源时代来临,车用电阻市场机遇正在显现

华秋电子

Alibaba内部首发“M8级”500页微服务架构手册,GitHub上杀疯了

Java你猿哥

Java 架构 微服务 ssm 架构师

手把手教你成为 TiDB 的 Contributor

TiDB 社区干货传送门

实践案例 故障排查/诊断 TiDB 源码解读

中移链控制台对接4A平台功能验证介绍

BSN研习社

ShareSDK 新浪微博平台注册指南

MobTech袤博科技

任务编排:CompletableFuture从入门到精通

做梦都在改BUG

Java CompletableFuture

2023年免费的堡垒机就用行云管家!安全感满满!

行云管家

网络安全 等保 小微企业

TiSpark v3.0.3 & v3.1.3 发布

TiDB 社区干货传送门

新版本/特性解读

政务智能办体验升级、乳腺癌创新药加速研发,飞桨和文心大模型驱动应用智能涌现

飞桨PaddlePaddle

百度飞桨

eBPF的发展演进---从石器时代到成为神(五)

统信软件

操作系统 Linux Kenel

阿里大佬纯手写Angular和Spring Boot全栈技能修炼手册

做梦都在改BUG

Java Spring Boot angular 全栈

长春市做等保评测的公司有几家?名单有哪些?

行云管家

等保 等保测评 长春

太阳能是否能助力LED显示屏节能?

Dylan

节能 LED显示屏 太阳能

IM开发干货分享:IM客户端不同版本兼容运行的技术思路和实践总结

JackJiang

网络编程 即时通讯 即时通讯IM

赋能产业新发展,华秋电子携多高层板积极参与成都工博会

华秋电子

Apache Kylin权威指南(一):背景历史和使命_架构_Apache Kylin核心团队_InfoQ精选文章