小米常冰琳:Kudu在CCTC 2016中的OLAP服务构建与性能优化

4星 · 超过85%的资源 需积分: 12 392 下载量 89 浏览量 更新于2024-07-20 3 收藏 977KB PDF 举报
在2016年的中国云计算技术大会上,小米云平台软件工程师常冰琳分享了题为“使用Kudu搭建OLAP服务”的主题演讲。Kudu是当时由Cloudera于2012年10月发起并得到小米在2014年9月加入的一项重要项目。Kudu的目标是为OLAP(Online Analytical Processing,即在线分析处理)提供高效、灵活且高可用的服务。 Kudu的设计重点在于解决在线事务处理(OLTP)和在线分析处理(OLAP)的融合需求。它旨在实现以下特点: 1. **性能优化**: - 对于数据分析,Kudu支持批量扫描,提供接近Hadoop Distributed File System (HDFS)的读取性能。 - 针对在线事务,Kudu强调低延迟,尤其是使用SSD时,能达到1ms的高性能顺序读写,同时保持接近HBase的吞吐量。 - 采用列式存储,类似于Parquet格式,能有效提升分析性能。 2. **高可用性**: - 使用Raft一致性协议,提供了类关系数据库的数据模型,确保数据的一致性和可靠性。 - 支持事务处理,包括单行事务,并集成计算引擎如Impala、Spark和Drill等。 3. **适应新硬件趋势**: - 随着存储硬件的发展,如NANDFlash和3DXpoint,Kudu能利用这些新型存储介质的高性能,甚至达到接近内存的速度,同时保证持久化。 - 随着内存容量的增加,Kudu注意到CPU将成为新的瓶颈,因此存储系统需要优化以匹配CPU性能。 4. **适用场景**: - Kudu适用于HDFS的离线数据存储、ETL(Extract, Transform, Load)预处理以及复杂分析场景。 - 在HBase的应用中,Kudu可以用于在线事务处理,随机查询以及流计算的状态存储。 - Kudu特别适合在线分析,包括实时数据分析和事务相关的数据分析。 Kudu的历史发展也非常值得关注,从2014年小米加入到2015年进入Apache Incubator阶段,再到2015年底在小米生产环境中部署,并计划在2016年第三季度发布1.0版本。在这个版本中,Kudu的数据模型类似于关系数据库表,支持有限的固定列和ALTER TABLE操作,以及严格的类型检查(如bool、整数、浮点数、字符串等),并配备了主键索引,同时提供了NoSQL API接口。 常冰琳在CCTC 2016上分享的Kudu在构建OLAP服务方面的设计与应用,展示了其在大数据处理和云计算领域的前沿技术应用,特别是在实时分析和事务处理能力上的优势。随着技术的不断演进,Kudu继续为现代企业数据处理提供强大而灵活的解决方案。