Kyligence Copilot - AI 数智助理,以 AI 变革企业经营与管理! 立即了解更多

Apache Kylin v2.5.0 正式发布

2018年 9月 21日

日前,Apache Kylin社区宣布,Apache Kylin v2.5.0 正式发布。

Apache Kylin是一个开源的分布式分析引擎,旨在为极大数据集提供SQL接口和多维分析(OLAP)的能力。

Apache Kylin是一个开源的分布式分析引擎,旨在为极大数据集提供SQL接口和多维分析(OLAP)的能力。

这是继Kylin v2.4.0 版本后的又一个新功能版本,该版本引入了许多极具价值的改进,包括但不限于以下几类:

  • All-in-Spark 的Cubing引擎

Kylin的Spark引擎将使用Spark运行Cube计算中的所有分布式作业,包括获取各个维度的不同值,将Cuboid文件转换为HBase HFile,合并Segment,合并词典等。默认的Spark配置也经过优化,使得用户可以获得开箱即用的体验,相关开发任务是 KYLIN-3427, KYLIN-3441, KYLIN-3442。

Spark任务管理也有所改进:一旦Spark任务开始运行,用户就可以在Web控制台上获得作业链接;如果用户丢弃该作业,Kylin将立刻终止Spark作业以及时释放资源; 如果重新启动Kylin,它可以从上一个作业恢复,而不是重新提交新作业 。

  • MySQL 做 Kylin 元数据的存储

在过去,HBase是Kylin元数据存储的唯一选择。 在某些情况下HBase不适用,例如使用多个HBase集群来为Kylin 提供跨区域的高可用,这里复制的HBase集群是只读的,所以不能做元数据存储。

现在我们引入了MySQL Metastore以满足这种需求,此功能现在处于测试阶段,更多内容参见KYLIN-3488。

  • Hybrid model 图形界面

Hybrid是一种用于组装多个Cube的高级模型,它可用于部分满足Cube的Schema要发生改变的情况。这个功能过去没有图形界面,因此只有一小部分用户知道它,现在我们在Web 界面上开启了它,以便更多用户可以尝试。

  • 默认开启Cube planner

Cube planner可以极大地优化Cube结构,减少构建的Cuboid数量,从而节省计算/存储资源并提高查询性能。它是在Kylin v2.3中引入的,但默认情况下没有开启,为了让更多用户看到并尝试它,我们默认在v2.5中启用它。 算法将在第一次构建Segment的时候,根据数据统计自动优化Cuboid集合。

  • 改进的Segment 剪枝

Segment(分区)修剪可以有效地减少磁盘和网络I / O,因此大大提高了查询性能。 过去,Kylin只按分区列(partition date column)的值进行Segment的修剪。 如果查询中没有将分区列作为过滤条件,那么修剪将不起作用,会扫描所有Segment。

现在从v2.5开始,Kylin将在Segment级别记录每个维度的最小/最大值。 在扫描Segment之前,会将查询的条件与最小/最大索引进行比较, 如果不匹配,将跳过该Segment。 更多详情请查看KYLIN-3370。

  • 在YARN上合并字典

当Segment合并时,它们的词典也需要合并。在过去,字典合并发生在Kylin的JVM中,这需要使用大量的本地内存和CPU资源,在极端情况下(如果有几个并发作业),可能会导致Kylin进程崩溃。因此,一些用户不得不为Kylin任务节点分配更多内存,或运行多个任务节点以平衡工作负载。

从Kylin v2.5开始,Kylin将把这项任务提交给Hadoop MapReduce和Spark,这样就可以解决这个瓶颈问题,更多信息请查看KYLIN-3471。

  • 改进使用全局字典的Cube构建性能

全局字典(Global Dictionary)是Bitmap精确去重计数的必要条件。如果去重列具有非常高的基数,则GD可能非常大,在Cube构建阶段,Kylin需要通过GD将非整数值转换为整数,尽管GD已被分成多个切片,可以分开加载到内存,但是由于去重列的值是乱序的,Kylin需要反复载入和载出(swap in/out)切片,这会导致构建任务非常缓慢。

该增强功能引入了一个新步骤,为每个数据块从全局字典中构建一个缩小的字典,随后每个任务只需要加载缩小的字典,从而避免频繁的载入和载出,性能比以前快3倍。查看KYLIN-3491了解更多信息。

  • 改进含TOPN, COUNT DISTINCT的cube 大小的估计

Cube的大小在构建时是预先估计的,并被后续几个步骤使用,例如决定MR / Spark作业的分区数,计算HBase region切割等,它的准确与否会对构建性能产生很大影响。当存在COUNT DISTINCT,TOPN的度量时,因为它们的大小是灵活的,因此估计值可能跟真实值有很大偏差。在过去,用户需要调整若干个参数以使尺寸估计更接近实际尺寸,这对普通用户有点困难。

现在,Kylin将根据收集的统计信息自动调整大小估计。这可以使估计值与实际大小更接近。查看KYLIN-3453了解更多信息。

  • 支持Hadoop 3.0/HBase 2.0

Hadoop 3和HBase 2开始被许多用户采用。现在Kylin提供使用新的Hadoop和HBase API编译的新二进制包。我们已经在Hortonworks HDP 3.0和Cloudera CDH 6.0上进行了测试。

所有v2.5.0相关的改动可以在release notes上找到:

要下载Apache Kylin v2.5.0源代码或二进制包,请访问下载页面

升级

参考升级指南 upgrade guide;。

反馈

如果您遇到问题或疑问,请发送邮件至Apache Kylin dev或用户邮件列表:dev@kylin.apache.org,user @ kylin.apache.org; 在发送之前,请确保您已通过发送电子邮件至dev-subscribe@kylin.apache.org或user-subscribe@kylin.apache.org订阅了邮件列表。

非常感谢所有贡献Apache Kylin的人!

添加企微

kyligence
关注我们

kyligence