2016 年 4 月 13 日,都柏林的 Liffey 河畔,Hadoop Summit 2016 在 Convention 会展中心盛大开幕。大会主要议程历时 2 天,有 100 多场演讲,与会者超过 1400 人。本文就 Apache Kylin 在大会上的内容做一个简单回顾。
The Evolution of Apache Kylin: Realtime and Plugin Architecture
Kylin 是目前唯一的由国人主创的 Apache 顶级开源项目。前身来自 eBay 中国卓越实验中心,后来开源并在 2014 年 11 月成为 Apache 顶级项目。Kylin 定位在超大数据的高速 OLAP,提供友善的 SQL、JDBC、ODBC、Rest API 接口,能在千亿数据集上稳定地完成秒级别查询。Kylin 在 eBay 和中国移动都有上千亿规模的用例,由 eBay 提供的数据显示,Kylin 秒级查询不只是针对个别 SQL,而是对上万种不同 SQL 的平均表现,生产环境下 90%ile 查询在 3 秒内返回。Kylin 优异的性能主要来自其独特的 Cube 预计算技术,在离线时预计算复杂的连接和聚合,从而大大减少在线查询的计算量,达到提速的效果。这是 Kylin 与其他大数据分析技术的关键区别。
Kylin 的最新版本 1.5 有不少让人期待的新功能。可扩展架构将 Kylin 的三大依赖 (数据源、Cube 引擎、存储) 彻底解耦,开发者和用户可以进行深度定制,比如用 Kafka 代替 Hive 作数据源,用 Spark 代替 MapReduce 作计算引擎,用 Cassandra 代替 HBase 做存储,都将变得更为简单。这也保证了 Kylin 可以随平台技术一起演进,紧跟技术潮流。
Kylin 1.5 引入了新一代 MapReduce 计算引擎。其中加入了 Fast Cubing 算法,利用 Mapper 端计算先完成大部分聚合,再将聚合后的结果交给 Reducer,从而降低对网络瓶颈的压力。对 500 多个 Cube 任务的实验显示,引入了 Fast Cubing 后,总体的 Cube 构建提速 1.5 倍。另外还对 HBase 存储结构进行调整,将大的 Cuboid 分片存储,将线性扫描改良为并行扫描。对上万查询进行测试对比,分片的存储结构能够极大提速原本较慢的查询 5-10 倍,但对原本较快的查询提速不明显,综合起来平均提速为 2 倍左右。
流式 Cube 也是备受期待的功能。延续增量构建的思路,把时间间隔缩小到 5 分钟级别,从 Kafka 实时读取数据,这样 Kylin 上的数据延迟就可以缩短到分钟级别,实现准实时大数据分析。因为会产生非常多的小 Cube Segment,自动合并也需要加强。Kylin 会自动按定义好的时间间隔合并 Cube Segment,保证 Cube 不会过度碎片化,影响性能。流式 Cube 还在实验阶段,希望听取社区的反馈并持续改善。
Kylin 新版本还提供了自定义聚合函数的接口。在原本 HyperLogLog Count Distinct 的基础上新增了 TopN、BitMap Precise Count Distinct、Raw Records 三种特殊聚合函数,用户也可以自行扩展。这里有很大的想象空间,比如在时间线上聚合用户事件归纳访问模式,比如聚合用户画像,再比如数据点的簇分析,亦或数据柱状分布等等,都可以很容易的添加到 Kylin 上。
Kylin 的演讲在大会上颇引人注目。虽然时间靠后接近大会尾声,但会场几乎座无虚席,听众提问也相当踊跃,让人感受到社区的壮大和能量的汇集。相信 Kylin 在新的一年里一定会有更长足的发展。
作者介绍:李扬,Kyligence 联合创始人兼 CTO,Apache Kylin 联合创建者及项目管理委员会成员 (PMC), 主创团队架构师和技术负责人,专注于大数据分析,并行计算,数据索引,关系数学,近似算法,压缩算法等前沿技术。曾任 eBay 全球分析基础架构部大数据资深架构师、IBM InfoSphere BigInsights 的技术负责人,负责 Hadoop 开源产品架构,“杰出技术贡献奖”的获奖者、摩根士丹利副总裁,负责全球监管报表基础架构。
评论