Apache Kylin权威指南1.5 Apache Kylin的主要特点

1.5 Apache Kylin的主要特点


Apache Kylin的主要特点包括支持SQL接口、支持超大数据集、秒级响应、可伸缩性、高吞吐率、BI工具集成等。

1.5.1 标准SQL接口

Apache Kylin以标准SQL作为对外服务的主要接口。因为SQL是绝大多数分析人员最熟悉的工具,同时也是大多数应用程序使用的编程接口。尽管Kylin内部以Cube技术为核心,对外却没有选用MDX(MultiDimensional eXpressions)作为接口。虽然MDX作为OLAP查询语言,从学术上来说,它是更加适合Kylin的选择,然而实践表明,SQL简单易用,代表了绝大多数用户的第一需求,这也是Kylin能够快速推广的一个关键。

SQL需要以关系模型作为支撑。Kylin使用的查询模型是数据源中的关系模型表,一般而言,也就是指Hive表。终端用户只需要像原来查询Hive表一样编写SQL,就可以无缝地切换到Kylin,几乎不需要额外的学习,甚至原本的Hive查询也因为与SQL同源,大多都无须修改就能直接在Kylin上运行。

Apache Kylin在将来也可能会推出MDX接口。事实上已经有方法可以通过MDX转SQL的工具,让Kylin也能支持MDX。

1.5.2 支持超大数据集

Apache Kylin对大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中Kylin就能支持百亿记录的秒级查询,之后在移动的应用场景下又有了千亿记录秒级查询的案例。这些都是实际场景的应用,而非实验室中的理论数据。

因为使用了Cube预计算技术,在理论上,Kylin可以支撑的数据集大小没有上限,仅受限于存储系统和分布式计算系统的承载能力,并且查询速度不会随数据集的增大而减慢。Kylin在数据集规模上的局限性主要在于维度的个数和基数。它们一般由数据模型来决定,不会随着数据规模的增长而线性增长,这也意味着Kylin对未来数据的增长有着更强的适应能力。

如今(截至2016年5月),对于Apache Kylin,除了eBay将其作为孵化公司有广泛应用之外,国内外一线的互联网公司对此几乎都有大规模的使用,包括百度、网易、京东、美团、唯品会、Expedia等。此外,其在传统行业中也有非常多的实际应用,包括中国移动、银联、国美等。据不完全统计,真实上线的Apache Kylin用户已经超过了一百多家,在开源后一年多一点的时间内能有如此大的全球用户基础,足见Kylin在处理超大规模数据集上的能力和优势。

1.5.3 亚秒级响应

Apache Kylin拥有优异的查询响应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需要的计算量,提高了响应速度。

根据可查询到的公开资料可以得知,Apache Kylin在某生产环境中90%的查询可以在3s内返回结果。这并不是说一小部分SQL相当快,而是在数万种不同SQL的真实生产系统中,绝大部分的查询都非常迅速;在另外一个真实的案例中,对1000多亿条数据构建了立方体,90%的查询性能都在1.18s以内,可见Kylin在超大规模数据集上表现优异。这与一些只在实验室中,只在特定查询情况下采集的性能数据不可同日而语。当然并不是使用Kylin就一定能获得最好的性能。针对特定的数据及查询模式,往往需要做进一步的性能调优、配置优化等,性能调优对于充分利用好Apache Kylin至关重要。

1.5.4 可伸缩性和高吞吐率

在保持高速响应的同时,Kylin有着良好的可伸缩性和很高的吞吐率。图1-5是来自网易的性能分享。图1-5中左侧是Kylin查询速度与Mondrian/Oracle的对比,可以看到在3个测试查询中,Kylin分别比Mondrian/Oracle快147倍、314倍和59倍。

同时,图1-5中右侧展现了Kylin的吞吐率及其可伸缩性。在只有1个Kylin实例的情况下,Kylin每秒可以处理近70个查询,已经远远高于每秒20个查询的一般水平。更为理想的是,随着服务器的增加,吞吐率也呈线性增加,存在4个实例时可达到每秒230个查询左右,而这4个实例仅部署在一台机器上,理论上添加更多的应用服务器后可以支持更大的并发率。

 

图1-5 Kylin的可伸缩性和吞吐率

这主要还是归功于预计算降低了查询时所需的计算总量,令Kylin可以在相同的硬件配置下承载更多的并发查询。

1.5.5 BI及可视化工具集成

Apache Kylin提供了丰富的API,以与现有的BI工具集成,具体包括如下内容。

ODBC接口,与Tableau、Excel、Power BI等工具集成。

JDBC接口,与Saiku、BIRT等Java工具集成。

Rest API,与JavaScript、Web网页集成。

分析师可以沿用他们最熟悉的BI工具与Kylin一同工作,或者在开放的API上做二次开发和深度定制。

另外,Kylin核心开发团队也贡献了Apache Zeppelin的插件,现在已经可以用Zeppelin来访问Kylin服务。

时间: 2017-05-02

Apache Kylin权威指南1.5 Apache Kylin的主要特点的相关文章

Apache Kylin权威指南2.6 SQL参考

2.6 SQL参考 Apache Kylin支持标准SQL作为查询语言,但是SQL有很多变体,Kylin支持的只是SQL所有变体中的一个子集,并不是支持所有现存的SQL语句和语法.用户在使用Kylin之前,需要对Kylin所支持的SQL有一个了解,以避免走弯路. 首先,Kylin作为OLAP引擎,只支持查询,而不支持其他操作,如插入.更新等,即所有的SQL都必须是SELECT语句,否则Kylin会报错. 第二,查询Kylin中SQL语句的表名.列名.度量.连接关系时,需要至少跟一个Cube的模型

Apache Kylin权威指南1.2 Apache Kylin的使命

1.2 Apache Kylin的使命 Kylin的使命是超高速的大数据OLAP(Online Analytical Processing),也就是要让大数据分析像使用数据库一样简单迅速,用户的查询请求可以在秒内返回,交互式数据分析将以前所未有的速度释放大数据里潜藏的知识和信息,让我们在面对未来的挑战时占得先机. 1.2.1 为什么要使用Apache Kylin 自从10年前Hadoop诞生以来,大数据的存储和批处理问题均得到了妥善解决,而如何高速地分析数据也就成为了下一个挑战.于是各式各样的"

Apache Kylin权威指南导读

前 言 "麒麟出没,必有祥瑞." --中国古谚语 "于我而言,与Apache Kylin团队一起合作使Kylin通过孵化成为顶级项目是非常激动人心的,诚然,Kylin在技术方面非常振奋人心,但同样令人兴奋的是Kylin代表了亚洲国家,特别是中国,在开源社区中越来越高的参与度." --Ted Dunning Apache孵化项目副总裁,MapR首席应用架构师 今天,随着移动互联网.物联网.AI等技术的快速兴起,数据成为了所有这些技术背后最重要,也是最有价值的"

Apache Kylin权威指南3.2 设计增量Cube

3.2 设计增量Cube 3.2.1 设计增量Cube的前提 并非所有的Cube都适用于增量构建,Cube的定义必须包含一个时间维度,用来分割不同的Segment,我们将这样的维度称为分割时间列(Partition Date Column).尽管由于历史原因该命名中存在"date"的字样,但是分割时间列既可以是Hive中的Date类型.也可以是Timestamp类型或String类型.无论是哪种类型,Kylin都要求用户显式地指定分割时间列的数据格式,例如精确到年月日的Date类型(或

Apache Kylin权威指南1.4 Apache Kylin的技术架构

1.4 Apache Kylin的技术架构 Apache Kylin系统可以分为在线查询和离线构建两部分,技术架构如图1-4所示,在线查询的模块主要处于上半区,而离线构建则处于下半区.   图1-4 Kylin的技术架构 我们首先来看看离线构建的部分.从图1-4可以看出,数据源在左侧,目前主要是Hadoop Hive,保存着待分析的用户数据.根据元数据的定义,下方构建引擎从数据源抽取数据,并构建Cube.数据以关系表的形式输入,且必须符合星形模型(Star Schema)(更复杂的雪花模型在成文

Apache Kylin权威指南2.2 在Hive中准备数据

2.2 在Hive中准备数据 2.1节介绍了Kylin中的常见概念.本节将介绍准备Hive数据的一些注意事项.需要被分析的数据必须先保存为Hive表的形式,然后Kylin才能从Hive中导入数据,创建Cube. Apache Hive是一个基于Hadoop的数据仓库工具,最初由Facebook开发并贡献到Apache软件基金会.Hive可以将结构化的数据文件映射为数据库表,并可以将SQL语句转换为MapReduce或Tez任务进行运行,从而让用户以类SQL(HiveQL,也称HQL)的方式管理和

Apache Kylin权威指南1.6 与其他开源产品比较

1.6 与其他开源产品比较 与Apache Kylin一样致力于解决大数据查询问题的其他开源产品也有不少,比如Apache Drill.Apache Impala.Druid.Hive.Presto(Facebook).SparkSQL等.本节试图将Kylin与它们做一个简单的比较. 从底层技术的角度来看,这些开源产品有很大的共性,一些底层技术几乎被所有的产品一致采用,Kylin也不例外. 大规模并行处理:可以通过增加机器的方式来扩容处理速度,在相同的时间里处理更多的数据. 列式存储:通过按列存

Apache Kylin权威指南1.7 小结

1.7 小结 本章介绍了Apache Kylin的历史背景和技术特点.尤其是它基于预计算的大数据查询原理,理论上可以在任意大的数据规模上达到O(1)常数级别的查询速度,这一点也是Apache Kylin与传统查询技术的关键区别,如图1-6所示.传统技术,如大规模并行计算和列式存储的查询速度都在O(N)级别,与数据规模增线性关系.如果数据规模增长10倍,那么O(N)的查询速度就会下降到十分之一,无法满足日益增长的数据需求.依靠Apache Kylin,我们不用再担心查询速度会随着数据量的增长而减慢

Apache Kylin权威指南1.3 Apache Kylin的工作原理

1.3 Apache Kylin的工作原理 Apache Kylin的工作原理本质上是MOLAP(Multidimensional Online Analytical Processing)Cube,也就是多维立方体分析.这是数据分析中相当经典的理论,在关系数据库年代就已经有了广泛的应用,下面将对其做简要介绍. 1.3.1 维度和度量简介 在说明MOLAP Cube之前需要先介绍一下维度(Dimension)和度量(Measure)这两个 概念. 简单来讲,维度就是观察数据的角度.比如电商的销售