Apache Kylin与Parquet集成:高性能OLAP分析

需积分: 11 1 下载量 162 浏览量 更新于2024-07-16 收藏 3.09MB PDF 举报
"Kylin on Parquet.pdf 是一份由Kyligence工程师王汝鹏在2020.04.13分享的文档,主要介绍了开源OLAP分析引擎Kylin对Parquet存储的支持以及使用Spark构建cube的技术细节。文档涵盖了架构设计、选择Parquet的原因、cube构建与查询流程、性能表现以及现场演示等内容。" Apache Kylin是一个高效的大数据OLAP引擎,最初设计时使用Hive作为元数据存储,Hadoop MapReduce作为计算引擎,而数据存储在HBase中。然而,随着大数据技术的发展,Kylin引入了对Parquet的支持,这是一种列式存储格式,能够提供更好的性能和效率。 **Parquet的优势** 1. **分布式查询执行**: Kylin on Parquet实现了分布式查询执行,降低了单一故障点的问题,提升了系统的可用性和扩展性。 2. **调试友好**: 使用Spark作为引擎后,可以通过DataFrame添加断点进行调试,使得问题定位更为便捷。 3. **真正的列式存储**: Parquet是一种列式存储格式,对于分析查询来说,可以显著提高读取速度,因为列式存储只需读取所需列的数据,而非整个行。 4. **操作维护简单**: 相比于HBase,Parquet的管理和操作更加简便,更适用于大数据分析场景。 **Kylin on Parquet的架构变化** 1. **插件化设计**: Kylin引入Parquet并不意味着完全摒弃原有架构,而是采用了插件化设计,允许用户根据需求选择不同的存储和计算引擎。 2. **Spark引擎**: 采用Spark替代MapReduce作为cube构建的计算引擎,Spark提供了更强大的计算能力,同时具备良好的交互性和易用性。 3. **REST服务器和SQL路由**: 通过REST API和SQL接口,Kylin提供了一种统一的方式来处理来自各种3rd Party应用(如Webapp,移动应用)的查询请求。 **Cubebuild&Query流程** 1. **Cube构建**: Kylin使用预计算技术创建多维立方体,以加速查询。在Parquet支持下,这一过程可能更快,因为Spark可以并行处理大量数据。 2. **查询处理**: 用户通过SQL语句发起查询,Kylin解析SQL并生成执行计划,利用Parquet的列式存储优势进行快速过滤、投影和聚合操作。 **性能提升** 1. **查询性能**: 列式存储的Parquet和Spark的组合大大提高了查询速度,尤其对于分析型查询,减少了I/O操作,提高了数据处理效率。 2. **运维成本**: 由于Parquet的易管理和Spark的可调试性,运维成本相对降低,使得整体系统更加健壮。 Kylin on Parquet的引入旨在解决Kylin在HBase上的局限性,通过引入Spark和Parquet,提供了更好的查询性能、易用性和可扩展性,满足大数据场景下快速分析的需求。同时,这种架构变化也为开发者和管理员带来了更友好的开发和维护体验。