Apache Kylin 在 2014 年 10 月开源并加入 Apache 软件基金会的孵化器,一年后从孵化器毕业成为 Apache 顶级项目。从第一天起,Kylin 的标语是「Extreme OLAP Engine for Big Data」。五年来,Kylin 已经成为了大数据版图中一个不可或缺的角色,帮助了全球上千家企业进行高效的大数据分析。
经过五年的发展,如今回头看,我们发现 Kylin 已经不仅仅是一个 OLAP 分析引擎。它的完整能力已经被被广大社区用户证实超越了「OLAP Engine」的范畴,被广泛应用于不同的场景,扮演更加全面的角色:
当年 eBay 发起 Kylin 项目时,寄希望它能够将部分负载从昂贵的专有商业数据仓库如 Teradata 迁移到廉价、开放的大数据平台上。五年过去了,Kylin 凭借高性能和高可用性在 eBay 内部被广泛使用,而 Teradata 逐步被替换。今天,Kylin 在 eBay 每天服务数百万次查询,且大多数查询在 1 秒钟内完成。
美团、携程、京东、滴滴、小米、华为、丁香园,OLX 集团、汽车之家、Xactly 等许多公司都使用 Kylin 打造了他们的 DaaS(数据即服务)平台,为成千上万的分析师和租户提供数据服务。
一些微软 SSAS 的用户也正在逐步迁移到 Kylin 上,以承载更大的数据容量和获得更好的体验。
中国银联和某头部保险集团从 IBM Cognos 架构升级到 Hadoop + Kylin。因为分布式架构的优势,Kylin 对传统方案具备降维打击的能力,在某些场景中,一个 Kylin Cube 取代了数百个 Cognos Cube,不但管理运维的复杂度大大降低,并且具有更好的构建性能和查询性能。
建设银行、农业银行等已经使用 Kylin + Hadoop 来构建下一代大数据分析平台,解决扩容难和并发低的难题。
从这些用户案例可以看出,社区用户们不仅仅把 Kylin 当作功能单一的引擎使用,而是使用 Kylin 来替换传统分析型数据仓库的工作。下面我们就来看一下什么是数据仓库吧。
数据仓库的定义有很多,下面是一个广泛被接纳的定义【1】:A data warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support of management’s decision-making process.
翻译一下就是:数据仓库是面向主题的、集成的、体现时间变化的,以及非易变的一组数据集合,以支持管理者做出关键决策。
对照到 Kylin 的能力:
在 Kylin 中,你可以为每个分析主题或场景,创建一个或多个OLAP Cube;每个 Cube 都是面向特定主题的。
Kylin 与 Hadoop、 Hive、Spark、Kafka 等系统实现了无缝集成,你可以在大数据平台上很容易地使用它。这也是为什么 Kylin 很容易被接纳的原因之一。
Kylin会按照时间来分区加载数据,构建 Cube,然后保存为片段(也称分区);对于维度表,Kylin 每次会生成快照。这些数据在分析过程中是稳定的,不会随意改变。
当你在分析(上滚、下钻等)过程中,Kylin 的数据是稳定一致的,所有层级的汇总结果都严格一致。
Kylin 提供了 SQL 查询接口和 JDBC/ODBC/HTTP API,用户将其与 BI/可视化工具(如 Tableau 等)轻松连接。
从这里可以看出,Kylin 的实现,与数据仓库的关键特性不谋而合。事实上,当初设计 Kylin 的时候,团队也是受了数据仓库概念非常大的影响。
Architecture of Apache Kylin
经过社区开发者们的不断努力,如今 Kylin 不再只是一个加速器,它提供了丰富完整的能力:友好的 Web 界面,向导式的设计器,自动化的任务生成和数据加载,高性能的查询和存储引擎,完善的 API 接口,完整的用户权限和安全控制等,结合 Hadoop 的分布式存储和计算框架,它已经足以构成一个完整的分析型数据仓库方案。在开源大数据技术中,Kylin 是独一无二的,融合了传统数据仓库的经典理论和大数据的前沿技术;它设计优雅,架构可扩展可插拔,能够适应从 GB 到 PB 甚至 EB 规模的数据。
|
|